利用Matlab解方程?

Tags: 方程, 解方程,

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

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

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

工具/原料

Matlab

解一元方程

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

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

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

見下圖

利用Matlab解方程

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

見下圖

利用Matlab解方程

再舉一例

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

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

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

見下圖

利用Matlab解方程

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

見下圖.

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

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

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

利用Matlab解方程

解二元方程

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

9x+8y=10 式1

13x+14y=12 式2

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

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

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

利用Matlab解方程

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

見下圖

利用Matlab解方程

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

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')

利用Matlab解方程

x^2+y^2=10 式1

2x+3y=0 式2

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

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

利用Matlab解方程

解其他方程

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

相信聰明的讀者讀到這裡,也發現matlab的這個解方程的功能十分簡單實用吧。

前面舉的例子都是比較簡單的,其實matlab一般能解出所有存在解的方程的。

大家加油!

相關問題答案