matlab關于ode45解二階微分方程的困惑
matlab關于ode45解二階微分方程的困惑
一個二階微分方程:
y''+y'+y=sin(t)
初始條件為y(0)=5,y'(0)=6。
過程:
先降階為一階微分方程組
y'=z
z'=-z-y+sin(t)
編制如下函數m檔案
function dy=weifen(t,x)
dy=zeros(2,1);
%y=x(1)
%z=x(2)
dy(1)=x(2);
dy(2)=sin(t)-x(2)-x(1);
*******************
然後用ode45解方程
[t,y]=ode45(@weifen,[0 20],[5 6])
plot(t,y)就可以畫出y和y'的圖像
但是我用同樣的思路,是不過在函數檔案的編制時候将函數的代表意義換一下,結果出來的圖形就完全不一樣了?
即我的m檔案重新編制為
function dy=weifen(t,x)
dy=zeros(2,1);
%y=x(2)
%z=x(1)
dy(1)=x(1);
dy(2)=sin(t)-x(1)-x(2);
*******************
然後同樣用ode45解方程,根據函數檔案隻需将初始條件換一下位置
[t,y]=ode45(@weifen,[0 20],[6 5])
plot(t,y)就可以畫出y和y'的圖像,但是結果完全不一樣了,怎麼回事?
難道必須有一定的順序麼?