Matlab求解方程組?
最近有個類型的題目無從下手啊。已知dx/dt=ax+bxy dy/dt=cx + dxy然後告訴了一堆在t取一些值的時候對應的x和y。然後求abcd。這種類型的題目怎麼處理呢?只會在已知abcd和初始值的時候求近似解,,,倒過來就不會了
最近有多人問如何用matlab解方程組的問題,其實在matlab中解方程組還是很方便的,例如,對於代數方程組Ax=b(A為係數矩陣,非奇異)的求解,MATLAB中有兩種方法: (1)x=inv(A)*b — 採用求逆運算解方程組; (2)x=A — 採用左除運算解方程組。 例: x1+2x2=8 2x1+3x2=13
&>&>A=[1,2;2,3];b=[8;13]; &>&>x=inv(A)*b x = 2.00 3.00 &>&>x=A x = 2.00 3.00;即二元一次方程組的解x1和x2分別是2和3。
對於同學問到的用matlab解多次的方程組,有符號解法,方法是:先解出符號解,然後用vpa(F,n)求出n位有效數字的數值解.具體步驟如下: 第一步:定義變數syms x y z ...;
第二步:求解[x,y,z,...]=solve("eqn1","eqn2",...,"eqnN","var1","var2",..."varN"); 第三步:求出n位有效數字的數值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。 如:解二(多)元二(高)次方程組: x^2+3*y+1=0 y^2+4*x+1=0 解法如下:&>&>syms x y;
&>&>[x,y]=solve("x^2+3*y+1=0","y^2+4*x+1=0"); &>&>x=vpa(x,4); &>&>y=vpa(y,4); 結果是: x = 1.635+3.029*i 1.635-3.029*i -.283 -2.987 y = 1.834-3.301*i 1.834+3.301*i -.3600 -3.307。二元二次方程組,共4個實數根;
還有的同學問,如何用matlab解高次方程組(非符號方程組)?舉個例子好嗎? 解答如下:
基本方法是:solve(s1,s2,…,sn,v1,v2,…,vn),即求表達式s1,s2,…,sn組成的方程組,求解變數分別v1,v2,…,vn。 具體例子如下: x^2 + x*y + y = 3 x^2 - 4*x + 3 = 0 解法:&>&> [x,y] = solve("x^2 + x*y + y = 3","x^2 - 4*x + 3 = 0") 運行結果為 x = 1 3 y =
1 -3/2 即x等於1和3;y等於1和-1.5 或 &>&>[x,y] = solve("x^2 + x*y + y = 3","x^2 - 4*x + 3= 0","x","y") x = 1 3 y = 1 -3/2 結果一樣,二元二方程都是4個實根。 通過這三個例子可以看出,用matlab解各類方程組都是可以的,方法也有多種,只是用到解方程組的函數,注意正確書寫參數就可以了,非常方便。迄今為止的高票回答似乎是借鑒了參考資料,但是沒有引用出來
把參考原文貼在這裡,作者不詳
matlab解方程組.doc
你把x,y對t求導之後,不就變成線性方程組了么。。。
推薦閱讀:
※Python有沒有類似Matlab中xlswrite這種寫入數據到Excel的方式?
※機械的學生,MATLAB 應該學些什麼?
※四旋翼可不可以用地面站(PC機)來實現姿態結算和控制,機載處理器只做讀數據和收發數據用?
※如何評價 MATLAB R2017a (Prerelease)?
※matlab怎麼把圓周率按照這種方式環形排列?
TAG:MATLAB |