首頁 > 軟體

利用Matlab解方程

2019-12-25 17:21:42

 一些簡單方程的解我們可以很快地手算出來,但是還有很多方程的解我們手算很難算出或者根本無法算出。

比如解一道一元高次非線性方程,我們一般的解法是先確定方程的解所在的大致範圍,然後用牛頓疊代法來算,很複雜。

這裡我介紹用matlab來解方程,一個命令即可輕鬆得出方程的所有解。

1

 先舉一例,解方程"x^2+100*x+99=0"

在matlab 」Command Window"中輸入如下命令:

x=solve('x^2+100*x+99=0','x')

見下圖


2

 回車後,matlab就求出了這個一元二次方程的解。

見下圖


3

 再舉一例

解一元三次方程"x^3+1=0"

在matlab 」Command Window"中輸入如下命令:

x=solve('x^3+1=0','x')

見下圖


4

  回車後,matlab就求出了這個一元三次方程"x^3+1=0"的解。

見下圖.

matlab解出來的解有三個,其中有一個實數解,兩個虛數解。

我們都知道一元三次方程在複數範圍內的解有3個,matlab的解是對的。

如果我們只要"x^3+1=0」的實數解,我們只要取下面圖中的第一個解「-1」。


1

 首先來求一個二元一次方程組

9x+8y=10          式1

13x+14y=12      式2

 

我們一般的解法是代入法,或者加減消去法。比較繁瑣。

這裡我們只需輸入如下命令即可求出解:

[x,y]=solve('9*x+8*y=10','13*x+14*y=12','x','y')

 


2

 回車後,matlab就求出了這個二元一次方程組的解。

見下圖


3

再來求一個二元非線性方程組

x^2+y^2=10          式1

2x+3y=0               式2

 

這裡我們只需輸入如下命令即可求出解:

[x,y]=solve('x^2+y^2=10','2*x+3*y=0','x','y')


4

x^2+y^2=10          式1

2x+3y=0               式2

其實不少人能看出來,上面的二元非線性方程組的解是一個圓與一條直線的交點坐標,我們的一般解法是先消去y,整理成關於x的一元二次方程,然後求出x值,再求出對應y值。

 

但這裡,我們只用到了上面圖片裡的的一句命令,就求了這兩個交點坐標。見下圖。


1

解三元方程或更高方程的具體操作步驟我就不再說明了,大家可以參考前面所說的解一元方程到解二元方程的命令的變化,從而類比出來。

2

?相信聰明的讀者讀到這裡,也發現matlab的這個解方程的功能十分簡單實用吧。前面舉的例子都是比較簡單的,其實matlab一般能解出所有存在解的方程的。大家加油!

IT145.com E-mail:sddin#qq.com