1.dsolve函式
這是最簡單的一種求解微分方程的一種方法-符號解法。一般來說,在matlab中解常微分方程有兩種方法,一種是符號解法,另一種是數值解法。在本科階段的微分數學題,基本上可以通過符號解法解決。
用matlab解決常微分問題的符號解法的關鍵命令是dslove命令。該命令中可以用d表示微分符號,其中d2表示二階微分,d3表示三階微分,以此類推。值得注意的是該微分預設是對自變數t求導,也可以很容易在命令中改為對其他變數求導。
①求解析解
y』『= a*y+ bx;
s = dsolve('d2y=a*y+b*x','x');
d2y用以表示y的二階導數,預設是以t為自變數的,所以最好指明自變數為x.
②初值問題
y』 = y – 2*t / y , y(0) = 1;
s = dsolve('dy == y - 2*t / y','y(0) ==1');
③邊值問題
x*y』』 – 3*y』 = x^2 , y(1) = 0 , y(5) = 0;
s = dsolve('x*d2y - 3*dy ==x^2','y(1)=0','y(5) == 0','x');
函式最後乙個引數指明自變數為x.
④高階方程
求解y』』 = cos(2x) – y , y(0) = 1 , y』(0) = 0;
s=dsolve('d2y == cos(2*x) - y','y(0) =1','dy(0) = 0','x');
simplify(s);
⑤方程組問題
f』 = f + g , g』 = -f + g,f(0) = 1, g(0) =2;
[f,g]= dsolve('df == f + g','dg = -f + g','f(0)==1','g(0) == 2','x');
另外,對於常係數線性微分方程,尤其是高階線性常係數微分方程
可用特徵根法
求得相應齊次微分方程的基本解,再用
常數變易法
求特解。
如:求x'' + 0.2x' +3.92x = 0的通解
解: 特徵方程為:x^2 + 0.2x + 3.92 = 0
roots( [ 1 0.2 3.92 ] )
然後求出來繼續做就好啦。
2.ode45
常用格式
[ t , y ] = ode45( odefun , tspan , y0 )
odefun
用以表示f(t,y)的函式控制代碼或inline函式i,t是標量,y是標量或向量
tspan
若是二維向量[t0,tf],表示自變數初值t0和終值tf;若是高維向量[t0,t1,...,tn],則表示輸出結點列向量
y0初值向量y0
t表示結點列向量(t0,t1,...,tn)^t
y數值解矩陣,每一列對應y的乙個分量
ode是最常用的求解微分方程的指令,它採用變步長
四、五階runge-kutta-felhberg法適合高精度問題,ode23與ode45類似,只是精度低一些。
如:
1. 建立乙個函式檔案eq2.m,在函式檔案中描述這個解的微分方程組:
%eq2.m檔案
%描述微分方程組
function dy=eq2(t,y)
%說明微分變數是二維的,令y(1)=x,y(2)=y
dy=zeros(2,1);
%微分方程組
dy(1)=5*(1-y(1))/sqrt((1-y(1))^2+(t-y(2))^2);
dy(2)=5*(1-y(2))/sqrt((1-y(1))^2+(t-y(2))^2);
end
2.外部呼叫ode45函式求解微分方程組:
[t,y]=ode45(@eq2,[0,2],[0,0]);
ode45函式說明:第乙個引數是方程的名稱,第二個引數是指求解時t的範圍,第三組引數是指y中每個元素的初值。
[t,y]=ode45(@eq2,[t1,t2],[y1(0),y2(0)]);
這部分來自於
MATLAB解一階微分方程
matlab裡ode45命令用4階龍格 庫塔解一階微分方程 常係數 變係數 都能解。首先把微分方程化為dx dt f x 的標準形式寫成函式放在乙個檔案裡,再寫主程式用ode45呼叫這個檔案。舉例如下 函式檔案 方程的定義 一定要用函式名命名 di dt l 1u l 1 wl r i functi...
Matlab求微分方程de符號解
1.dsolve 函式 在求通解問題 syms y x y dsolve x 2 y x 2 y diff y 0 這裡插入 片 syms y x 定義符號變數 dy diff y 一階導數 d2y diff y,2 二階導數,用於初值或邊值條件的賦值 y dsolve diff y,3 diff ...
解方程及微分方程 MATLAB
x1,x2,x3,solve eq1 eq2 eq3 x1 x2 x3 s solve eq1 eq2 eq3 x1 x2 x3 第一種方式,對solve的括號中的x1,x2,x3的次序會有要求 與前面的一致 第二種無要求。eq都是等式,不是表示式。最好都打引號,不打引號也可以,但是一定要預先用sy...