如何用matlab求解微分方程並畫圖

2021-05-05 14:36:57 字數 1126 閱讀 6810

1樓:匿名使用者

1、找到關於求解常微分方程的習題。

2、這裡用matlab求解,主要用到的就是「dsolve」,具體的格式如下,但是不僅僅侷限下面兩種,其中eq就是代表方程式,而con為初始條件。

3、這裡的「x」關於x的函式。知道語法就可以進行計算了。

4、在matlab中輸入如下,dsolve('d2y+2*dy+exp(x)=0','x'),並直接回車就可以顯示計算結果了。

5、框中為最終求解的通解。

2樓:匿名使用者

由於方程比較複雜,解析解不能用初等函式表示

只是要獲得影象的話,用數值計算的辦法可能更方便

fun=@(t,y) 1.44*(10^9)*(1-y).*exp(-109170./(8.314*t));

[t,y] = ode23t(fun,500:600,0);

dy=fun(t,y);

ax=plotyy(t,y,t,dy);

set(get(ax(1),'xlabel'),'string','t');

set(get(ax(1),'ylabel'),'string','\alpha');

set(get(ax(2),'ylabel'),'string','d\alpha/dt');

t是自變數,y是變數也就是alpha

dy是,y對t的導數

得到得到結果如下圖

從影象看出,在t=500時,alpha=0

大概在t=600時,d(alpha)/dt趨向於0,alpha趨向於1不變

但是由於是數值解,在t不斷增加的時候,d(alpha)/dt會在0附近振盪

所以t的取值不宜取得太大,這裡取500到600之間

而採用ode23t函式,減少振盪

實際上,當t增大到一定值的時候,d(alpha)/dt趨向於0,

函式趨向於保持恆定值,所以後續的振盪是不合理的

取一定的區間如上圖,已經可以很好地得到函式的變化趨勢了

3樓:匿名使用者

>> y = dsolve('dy=y*cos(x)/(1+2*y^2)','y(0)=1','x');

>> ezplot(y,[-10,10]) % [-10,10]為x區間

求解微分方程,求解微分方程的方法

上面答的是都是什麼呀。y 明顯的是對x求導。這是乙個高等數學問題,絕對的本科內容。dy dx a y b a by y dx dy y a by dx y a by dy 1 b a b b y a dy 兩邊同時積分,得 x y b a ln b b y a b b c得到了x關於y的函式。可以反...

matlab微分方程求解用ode23函式

請給初始值,o o謝謝!比如我給初始值 初始值 0 0.5 0 0 下面用y代表 然後,函式程式 function yprime verderpol t,y global g global l g 9.8 l 10 yprime y 2 g l sin y 1 end主程式 clc clear al...

解微分方程mxkx,如何用二階微分方程來解mx kx 0,聽說用這個很簡單,但是不知道怎麼用,請高手詳細解答,謝謝

又是你提問來了麼?呵呵,你還在對那個簡諧運動的問題耿耿於懷吧!你應該說明白x 是位移x對時間t的二階變化率,也就是加速度。否則會引起象樓上這樣的誤解。我已經說過,這個方程的通解是x t c1 cos w t c2 sin w t 其中c1,c2為任意常數,而w等於k m的平方根。也可以用三角公式整合...