作者zupo (回文MATLAB版囧)
看板MATLAB
標題Re: [問題] 線性矩陣與非線性方程式的聯立
時間Wed Oct 17 16:26:05 2007
不好意思.文章有點太長.所以刪除
雖說有人解了.但我還是用MATLAB內建的 fsolve 函數解了一下
速度還蠻快的
------------------------------ 程式 ---------------------------------
function pttex18()
global a b c A B C
a=1;b=1;c=1;
A=[3 3 3;4 4 4;5 5 5];
B=[6 6 6;7 7 7;8 8 8];
C=[10;15;20];
data=fsolve(@pttpro,[1 2 3])
% -------------------------------------
function f=pttpro(y)
global a b c A B C
y=[y(1);y(2);y(3)];
x=a+b*exp(y/c);
f=zeros(3,1);
f=A*x+B*y-C;
------------------------------- 結束 ---------------------------------
其實 G 兄的程式非常好 .
但有鑒於可能需要疊代.所以我寫成較容易變成應用函數的方式
放上來.裡面的值是我試給的.你可以改看看
自己使用時.
可以把該程式掛在疊代程式下面 . 不然就是利用 全域變數 global 指令
來進行疊代
疊代可以分為三種
1.起猜值改變: 對應[1 2 3]那項
2.A 或 B 值改變
3.C 值改變
4.混合改變
我原本的程式也可以寫成可輸入的變數型式函數(在pttex那後面的括號裡)
自己可以用看看吧
--
Basic -> Advance -> Master -> Expert -> Great-Master
Skill: AspenPlus AspenDynamic MATLAB Numerical-Method
Level: Master Advance Expert Master
-----------......什麼時候升級呢? 囧> --------------
Fortran Tecplot Sigmaplot Corldraw
Basic Basic Basic Basic
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.160.163
推 gamer:我用的那個方法是一般的數值解法,因為我比較少用matlab內建 10/17 17:57
→ gamer:的函數。其實如果熟的話,它內建很多函數會比較好用 10/17 17:58
→ gamer:至少不用像我那樣自己寫code來解問題 10/17 17:58
推 zupo:不過自己寫可以訓練邏輯能力.也可以了解數值方法 ^^b 10/17 20:32
→ Homus2:感謝^^ 10/18 10:05