怎么用Matlab解方程?
工具/材料
matlab 2016a
操作方法
- 01
打開matlab,首先定義變量x:
syms x; - 02
matlab中solve函數(shù)的格式是solve(f(x), x),求解的是f(x) = 0的解。
第一個(gè)例子,求解最常見(jiàn)的一元二次方程x^2-3*x+1=0:
solve(x^2-3*x+1,x),解出的結(jié)果用精確的根式表示。 - 03
matlab解出的根不僅包含實(shí)根,也包含復(fù)根,例如求解三次方程x^3+1=0:
solve(x^3+1,x)
我們知道該方程有一對(duì)共軛復(fù)根,matlab也可以解出它的解。 - 04
對(duì)于超出5次(含)以上的一元函數(shù),有時(shí)無(wú)法用solve指令求的對(duì)應(yīng)的根,如下圖所示。這時(shí)可以使用roots命令求解。roots命令的參數(shù)是方程的各個(gè)系數(shù)按高次冪到低次冪排列成的向量,例如x^5+3*x^4-5*x^3+4*x^2-6*x+2=0,如果用solve指令得到的結(jié)果不能令人滿意,而用roots就可以得到滿意的結(jié)果。
- 05
對(duì)于非多項(xiàng)式方程,只能使用solve求解。例如求解exp(-x)-x^2+3=0的解如下。通過(guò)黃色的警告可以看出,這樣的方程沒(méi)有解析解,與我們已知的知識(shí)相同。
- 06
最后一類方程,是一元一次方程組。這是matlab最擅長(zhǎng)的運(yùn)算,可以使用矩陣進(jìn)行求解。對(duì)于齊次線性方程來(lái)講,使用null(A,'r')。其中'r'表示使用簡(jiǎn)化階梯型行列式求解。對(duì)于如下的方程,可以解得線性無(wú)關(guān)的一組解。這樣,我們還可以引入常量k1與k2表達(dá)通解。
- 07
對(duì)于線性非齊次的解,可以使用linsolve(A,b)。其中A是系數(shù)矩陣,b是非齊次項(xiàng)(如果b是多列矩陣,意味著解多個(gè)砼系數(shù)不同齊次項(xiàng)的方程組)。對(duì)于圖中的方程組,可已這樣求解。
特別提示
matlab求解方程的方法有很多,要找到適合自己需要的方法,需要多加練習(xí)。
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。