MATLAB與數學實驗 MATLAB 求解方程

2021-09-26 08:58:13 字數 1599 閱讀 6819

一.常用函式

matlab裡solve、fzero、fsolve、root等函式用於求解方程(組)

1.solve函式

主要用於求解代數方程和非線性方程

[x1,……]=solve(『f』,……,『var』,……)

f表示方程,var表示求解變數。 x1表示求解結果。

求解單個方程

>> syms x a b c

>> ff=a*x^2+b*x+c;

>> solve(ff)

ans =

-(b + (b^2 - 4*a*c)^(1/2))/(2*a)

-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

求解方程組

>> syms x  y a b

>> f1=x^2+2*y-a;

>> f2=3*x-4*y-b;

>> [x,y]=solve(f1,f2,x,y)

x =- (2*((9*a)/4 + (9*b)/8 + 81/64)^(1/2))/3 - 3/4

(2*((9*a)/4 + (9*b)/8 + 81/64)^(1/2))/3 - 3/4

y =

- b/4 - ((9*a)/4 + (9*b)/8 + 81/64)^(1/2)/2 - 9/16

((9*a)/4 + (9*b)/8 + 81/64)^(1/2)/2 - b/4 - 9/16

2.fzero函式

用於求非線性方程的最優解。兩種格式

function f=exam2_10(x)

f=x+2*sin(x)*exp(x)-1;

>> fzero(@exam2_10,[0,1])   第乙個引數為求解方程,第二個是求解區間

ans =

0.2774

>> fzero(@exam2_10,0.8)    同上,第二個引數為迭代初值

ans =

0.2774

>> test=@(x)[x+2*sin(x)*exp(x)-1];

>> fzero(test,0.8);

>> fzero(test,0.8)

ans =

0.2774

3 fsolve

用於求解非線性方程組的最優解。

function f=exam2_11(x)

f(1)=x(1)-sin(x(1))-5*x(2);

f(2)=2*x(1)+x(2)-cos(x(2));

>> fsolve(@exam2_11,[0,0])

equation solved.

ans =

0.4980    0.0041

4.roots函式

用於在複數範圍內求多項式方程的所有根。

>> syms x

>> a=[1,-6,0,5,-3,8];

>> roots(a)

ans =

5.8626 + 0.0000i

-1.2901 + 0.0000i

1.2681 + 0.0000i

0.0797 + 0.9098i

0.0797 - 0.9098i

Matlab與數學建模

數學建模中,時常用到matlab畫圖,而繪製雙縱軸圖形有一定難度,在此提供一種雙縱軸繪圖函式 plotyy。具體 如下 t 0 0.02 pi 7 x cos t y exp t ax,ha,hb plotyy t,x,t,y ax 153.0322 156,0292 ha 155.1194 hb ...

空間剛架matlab 基本平面剛架MATLAB程式

平面剛架 matlab 程式 2003.9.16 2007.2.28 2008.4.1 2009.10 2011.10 2013.9 2014.09 變數說明 npoin nelem nvfix nfpoin nfpres 總結點數 單元數約束個數 受力結點數 非結點力數 coord lnods y...

matlab的開方演算法 常見演算法的MATLAB實現

順序刪去圖中的邊,若不形成迴路則將此邊加入最小生成樹。function find v integer integer var i integer begin i 1 while i n and not v in vset do inc i if i n then find i else find 0...