標籤:

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 |