Mathematica 與 Matlab 常見復雜指令集匯編

  • Mathematica 常見指令匯編

Mathematica 常見指令

NDSolve 求解結果的保存

sol = NDSolve[{y'[x] == x^2, y[0] == 0, g'[x] == -y[x]^2, g[0] == 1}, {y, g}, {x, 0, 1}];
numericSoly = sol[[1, 1, 2]];
numericSolg = sol[[1, 2, 2]];
data = Table[{x, numericSoly[x], numericSolg[x]}, {x, 0, 1, 0.01}];
dataset = Dataset[AssociationThread[{"x", "y", "g"}, #] & /@ data];
Export["C:\\Users\\LX\\Desktop\\data.csv", dataset]Plot[{numericSoly[x], numericSolg[x]}, {x, 0, 1}]

?

FindMinimum 求解結果的保存

f[x_, y_] := x^2 + y^2;
constraint = {x + y >= 1, Abs[x - y] >= 0.5};
sol = FindMinimum[{f[x, y], constraint}, {{x, 0}, {y, 0}}]minimizedVariables = sol[[2]];
minimumValue = sol[[1]];data = {{"x", "y", "f(x, y)"}, {minimizedVariables[[1]][[2]], minimizedVariables[[2]][[2]], minimumValue}};
Export["C:\\Users\\LX\\Desktop\\result.xlsx", data]

FindMinimum 不支持在整數規劃以外的不等約束與域約束

?

  • 要解決這個問題,我們需要借助Matlab 的力量

Matlab 常見指令

odefun

g = @(t, w) t - w;%f = @(x, y) x^2 + y^2 - integral2(@(t, w) g(t, w), x, y, y, x);
f = @(x) x(1)^2 + x(2)^2 - integral2(@(t, w) g(t, w), x(1), x(2), x(1), x(2));nonlcon = @nonlinearConstraint;
A = [-1 -1;1 -1;1 -1];
b = [-1;-0.5;-0.5];
odefun = @(t, y) [-2*y(1) + y(2); y(1) - 2*y(2)];
tspan = [0 100];
y0 = [1; 0];
[t, y] = ode45(odefun, tspan, y0);
%plot(t, y(:, 1), 'r', t, y(:, 2), 'b');
%legend('y_1', 'y_2')
plot(y(:, 1), y(:, 2))
xlabel('y1')
ylabel('y2')

Optimization tools 的 matlab 替代

  • 針對FindMinimum 不支持在整數規劃以外的不等約束與域約束
  • 問題

\begin{matrix} min=x_1^2+x_2^2-\int_{x_1}^{x_2}\int_{x_1}^{x_2}g(t,w)dtdw \\ g(t,w)=t-w\\ abs(x_1-x_2)>=0.5\\ x_1+x_2>=1\\ \int_{x_1}^{x_2}\int_{x_1}^{x_2}h(p,q)dpdq>=0.25\\ h(p,q)=p+2q \end{matrix}

Untitled.m?

g = @(t, w) t - w;%f = @(x, y) x^2 + y^2 - integral2(@(t, w) g(t, w), x, y, y, x);
f = @(x) x(1)^2 + x(2)^2 - integral2(@(t, w) g(t, w), x(1), x(2), x(1), x(2));nonlcon = @nonlinearConstraint;
A = [-1 -1;1 -1;1 -1];
b = [-1;-0.5;-0.5];

nonlinearConstraint.m?

function [c, ceq] = nonlinearConstraint(x)h = @(p, q) p + 2 * q;%k = @(x) integral2(@(p, q) h(p, q), x(1), x(2), x(1), x(2))-0.25;c = [0.25 - integral2(@(p, q) h(p, q), x(1), x(2), x(1), x(2))];ceq = [0];
end 

Optimizaation Tool?

Optimizaation Tool 微操

% 定義目標函數
fun = @(x) f(x);% 定義非線性約束函數
nonlcon = @(x) constraints(x);% 定義變量邊界
lb = [-10, -10];
ub = [10, 10];% 設置優化選項
options = optimoptions('ga', 'Display', 'iter');% 調用遺傳算法進行求解
[x, fval] = ga(fun, 2, [], [], [], [], lb, ub, nonlcon, options);% 輸出結果
disp('最優解:');
disp(x);
disp('最小值:');
disp(fval);% 定義目標函數 f(x)
function y = f(x)y = x(1)^2 + x(2)^2;
end% 定義非線性約束函數
function [c, ceq] = constraints(x)c = x(1) - x(2) - 2;g = @(t) t^2 - t + 5;h = @(t) t^3;ceq = g(x(1)) - h(x(2));
end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41007.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41007.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41007.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM——類加載器

回顧一下類加載過程 類加載過程:加載->連接->初始化。連接過程又可分為三步:驗證->準備->解析。 一個非數組類的加載階段(加載階段獲取類的二進制字節流的動作)是可控性最強的階段,這一步我們可以去完成還可以自定義…

【計算機網絡篇】UDP協議

?作者簡介:大家好,我是小楊 📃個人主頁:「小楊」的csdn博客 🐳希望大家多多支持🥰一起進步呀! UDP協議 1,UDP 簡介 UDP(User Datagram Protocol)是一種無連…

Flink學習筆記(一)

流處理 批處理應用于有界數據流的處理,流處理則應用于無界數據流的處理。 有界數據流:輸入數據有明確的開始和結束。 無界數據流:輸入數據沒有明確的開始和結束,或者說數據是無限的,數據通常會隨著時間變化而更新。 在…

Kaptcha的基本應用

Kaptcha Kaptcha 是一個用于生成和驗證驗證碼的 Java 庫,提供了豐富的生成和驗證功能,并支持自定義配置。它可以用于增加應用程序的安全性,防止機器人和惡意攻擊。 Kaptcha 可以生成各種類型的驗證碼,包括數字、字母、數字字母組…

KDD 2023 獲獎論文公布,港中文、港科大等獲最佳論文獎

ACM SIGKDD(國際數據挖掘與知識發現大會,KDD)是數據挖掘領域歷史最悠久、規模最大的國際頂級學術會議,也是首個引入大數據、數據科學、預測分析、眾包等概念的會議。 今年,第29屆 KDD 大會于上周在美國加州長灘圓滿結…

HTTP--Request詳解

請求消息數據格式 請求行 請求方式 請求url 請求協議/版本 GET /login.html HTTP/1.1 請求頭 客戶端瀏覽器告訴服務器一些信息 請求頭名稱: 請求頭值 常見的請求頭: User-Agent:瀏覽器告訴服務器,我訪問你使用的瀏覽器版本信息 可…

藍橋杯每日N題 (消滅老鼠)

大家好 我是寸鐵 希望這篇題解對你有用,麻煩動動手指點個贊或關注,感謝您的關注 不清楚藍橋杯考什么的點點下方👇 考點秘籍 想背純享模版的伙伴們點點下方👇 藍橋杯省一你一定不能錯過的模板大全(第一期) 藍橋杯省一你一定不…

【日常積累】HTTP和HTTPS的區別

背景 在運維面試中,經常會遇到面試官提問http和https的區別,今天咱們先來簡單了解一下。 超文本傳輸協議HTTP被用于在Web瀏覽器和網站服務器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果…

09- DMA(DirectMemoryAccess直接存儲器訪問)

DMA 09 、DMA(DirectMemoryAccess直接存儲器訪問)DMA配置流程 09 、DMA(DirectMemoryAccess直接存儲器訪問) DMA配置流程 dma.c文件 main.c文件 詳見《stm32中文參考手冊》表57。

tsconfig.json和jsconfig.json配置

{// 編譯選項"compilerOptions": {// 生成代碼的語言版本:將我們寫的 TS 代碼編譯成哪個版本的 JS 代碼// 命令行: tsc --target es5 11-測試TS配置文件.ts"target": "es5",// 指定要包含在編譯中的 library"lib&quo…

3年 Android 開發的面試心經(后悔當初沒有拿 N+1)

作者:勇闖天涯 當某人順利通過大廠面試時,總會有人認為這是運氣比較好罷了,但他們不曾得知對方之前受過多少苦和委屈,又付出了多少努力一步步去突破這些困境。正是因為他們的努力付出,在合適的時間與地點,用…

SSH連接工具匯總

xshell 這是個熟悉的軟件啦,目前我正在使用Xshell_7 鏈接:https://www.xshell.com/zh/xshell/ FinalShell 國產軟件,有windows和MAC版本;使用方便而且免費,但是軟件比較占用內存。但是都2021年了,筆記本…

AlphaZero能否從圍棋和國際象棋飛躍到量子計算?

一項新的研究表明,DeepMind驚人的游戲算法AlphaZero可以幫助釋放量子計算的力量和潛力。 自兩年多前出現以來,AlphaZero一再證明了其快速學習能力,將自己提升到圍棋,國際象棋和將棋(日本象棋)的特級大師級別…

VHDL記錄

文章目錄 使用function名稱作為“常量”numeric_std包集中使用乘法的注意項variable的使用對于entity設置屬性的方法在entity聲明中嵌入function的定義VHDL仿真讀寫文件File declaration/File handingFile readingFile writing小例子 使用函數 模塊中打印出調試信息 使用functi…

RTC實驗

一、RTC簡介 RTC(Real Time Clock)即實時時鐘,它是一個可以為系統提供精確的時間基準的元器件,RTC一般采用精度較高的晶振作為時鐘源,有些RTC為了在主電源掉電時還可以工作,需要外加電池供電BCD碼,四位二進制表示一位…

Java Persistence APl(JPA)——JPA是啥? SpringBoot整合JPA JPA的增刪改查 條件模糊查詢 多對一查詢

目錄 引出Jpa是啥?Jpa的使用創建實體類寫dao接口類寫服務類 crud增刪改查增加修改根據id刪除全查詢分頁查詢 條件查詢模糊查詢單條件查詢多條件查詢模糊查詢排序查詢 多對一查詢定義實體類auto主鍵策略下新增進行全查詢測試 全部代碼application.yml配置類pom配置文…

Java反射機制是什么?

Java反射機制是 Java 語言的一個重要特性。 在學習 Java 反射機制前,大家應該先了解兩個概念,編譯期和運行期。 編譯期是指把源碼交給編譯器編譯成計算機可以執行的文件的過程。在 Java 中也就是把 Java 代碼編成 class 文件的過程。編譯期只是做了一些…

Python學習筆記第五十二天(Pandas 安裝)

Python學習筆記第五十二天 Pandas 安裝查看安裝版本 安裝驗證后記 Pandas 安裝 安裝 pandas 需要基礎環境是 Python,開始前我們假定你已經安裝了 Python 和 Pip。 使用 pip 安裝 pandas: pip install pandas安裝成功后,我們就可以導入 pandas 包使用&…

iPhone(iPad)安裝deb文件

最簡單的方法就是把deb相關的文件拖入手機對應的目錄,一般是DynamicLibraries文件夾 參考:探討手機越獄和安裝deb文件的幾種方式研究 1、在 Mac 上安裝 dpkg 命令 打包 deb 教程之在 Mac 上安裝 dpkg 命令_xcode打包root權限deb_qq_34810996的博客-CS…

神經網絡基礎-神經網絡補充概念-26-前向和反向傳播

簡單比較 前向傳播(Forward Propagation): 前向傳播是神經網絡中的正向計算過程,用于從輸入數據開始,逐層計算每個神經元的輸出值,直到得到最終的預測值。在前向傳播過程中,我們按以下步驟進行…