MATLAB數值求解帶引數方程

2021-10-08 06:16:16 字數 1102 閱讀 6345

matlab裡面數值求解方程的函式為fsolve,matlab自帶的幫助文件裡有如何直接使用的例子,但沒有如何解帶引數方程的例子,其實只需要對待求解方程稍作修改即可。比如我們求如下關於x

1x_1

x1​和x

2x_2

x2​的方程:

e −e

−(x1

+x2)

−x2(

1+x1

2)−c

1=0x

1cos⁡(

x2)+

x2

sin⁡(x

1)−c

2=

0e^}-x_2(1+x_1^2)-c_1=0\\ x_1\cos(x_2)+x_2\sin(x_1)-c_2=0

e−e−(x

1​+x

2​)−

x2​(

1+x1

2​)−

c1​=

0x1​

cos(x2

​)+x

2​sin(x1

​)−c

2​=0

其中c

1c_1

c1​和c

2c_2

c2​為外部設定的引數,那麼首先自定義乙個函式:

function myfun1 = root2d(x,c1,c2)

myfun1(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2)-c1;

myfun1(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) -c2;

然後在主程式檔案中給定c

1c_1

c1​和c

2c_2

c2​的值,以及x

1x_1

x1​和x

2x_2

x2​的迭代初值,利用@符號將待求解變數進行區分,即可呼叫fsolve進行求解。

c1=0;

c2=0.5;

x0 = [0,0];

fun = @(x)root2d(x,c1,c2);

x = fsolve(fun,x0)

Matlab 數值微積分與方程求解

專題六 數值微積分與方程求解 目錄 一 數值微分與數值積分 1.數值微分 2.數值積分 二 線性方程組求解 先說差分。差分可以分為向前差分,向後差分和中心差分。三者分別如下表述 matlab提供了求向前差分的函式diff,其呼叫格式有3種 舉個例子 求向量 1,34,54,32,56,78 的一階向...

Matlab數值求解超越方程的根

有時候我們要數值求解超越方程的多個根,但是數值方法都要給定乙個初值。matlab有內建函式fsolve求解非線性方程 組 但是只能求一組給定初值的解,如果要求多個根 如頻率方程 可以先用mathematica畫圖,然後觀察得到零點個數和大概位置,然後呼叫fsolve求解。這裡提供了乙個程式,在區間 ...

matlab求解振動方程

看了一篇柱塞幫浦離散化動力學建模的文章,感覺還挺有意思,於是嘗試做一下 二 matlab下的動力學方程總結 斜盤式軸向柱塞幫浦是一類常見的柱塞幫浦,本文以 型斜盤式軸向柱塞幫浦為研究物件,研究幫浦內機械振動的傳遞問題。由於該幫浦傳動軸與缸體之間為過盈配合,且柱塞滑靴元件位於缸體的柱塞腔內,因此,將傳...