精華區beta MATLAB 關於我們 聯絡資訊
不好意思.文章有點太長.所以刪除 雖說有人解了.但我還是用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