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
2sin(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下的動力學方程總結 斜盤式軸向柱塞幫浦是一類常見的柱塞幫浦,本文以 型斜盤式軸向柱塞幫浦為研究物件,研究幫浦內機械振動的傳遞問題。由於該幫浦傳動軸與缸體之間為過盈配合,且柱塞滑靴元件位於缸體的柱塞腔內,因此,將傳...