求解微分方程組的matlab程式

時間 2021-08-30 11:17:35

1樓:匿名使用者

一般解非線性微分方程組可以用ode45,ode23等命令,程式設計時將p,v,th,x,y

記為x(5),x(1),x(2),x(3),x(4)(方便方程組函式的編寫就這麼記號)

下面便方程組函式,檔案命名為myfun.m

function dx=myfun(t,x)

c=;n=;cx=;g=;r=;ta=;%引數項值自賦

dx=[c*n*x(5)/ta*x(1).^2*cx+g*sin(x(2))

g*cos(x(2))/x(1)

x(1)*cos(x(2))

x(1)*sin(x(2))

x(5)/r*ta*x(1)*sin(x(2))];

在另啟檔案,寫入:

x0=[;;;;];%初值自賦

options=odeset('reltol',1e-8);%可以不寫

tic[t,y]=ode45(@myfun,[0,1],x0,options) %[0,20]範圍可以自賦

toc這種常微分方程組的求解可能會因為引數的給定和初值的賦值而死迴圈,要是碰到程式不能執行,就在命令視窗按下ctrl+c.停止執行,並重新修改語句。

我也只是用過幾回,希望能幫上忙。

2樓:匿名使用者

dsolve('dv=c*n*p/ta*v.^2*cx+gg*sin(th)')

二元二階微分方程組求數值解的matlab程式 15

3樓:花開勿敗的雨季

方程或者初始條件有問題,請認真核實。

原因:如果按照現在的初始條件,則第一個微分方程各項為0,方程不起作用。而且就演算法而言,二階(最高階)導數的係數為0,會導致數值積分演算法無法啟動。

參考**大致如下:12

3456

78910

1112

1314

1516

17m=1;

g=9.8;

k=100;

l0=1.1;

x0=[0.1 0 0 0];

% 定義x1=l, x2=l', x3=a, x4=a'

dx=#(t,x)[x(2); (m*x(1)*x(4)^2-m*g*cos(x(3))-k*(x(1)-l0))/m; ...

x(4); (-2*m*x(1)*x(2)*x(4)+m*g*x(1)*sin(x(3)))/(m*x(1)^2)];

[t,x]=ode15s(dx,[0 10],x0);

lstr = ''', '\alpha', '\alpha''' };

for i=1:length(lstr)

subplot(2,2,i)

plot(t, x(:,i));

xlabel('time')

ylabel( lstr )end

4樓:匿名使用者

function dz=yueh(t,z) %儲存為 yueh.m 檔案

dz=[z(2);

10-z(1)-0.001*z(3);

z(4);

-0.0001*z(1)-0.001*z(3)];

執行一下:

[t,z]=ode45('yueh',[0 1],[0 0 0 0]);

% 感覺初始值不完整啊,這裡假設x(0)=θ(0)=x'(0)=θ'(0)=0

plot(z(:,1),z(:,3)) % 這裡是 x-θ 影象

5樓:光之痕跡

微分方程初值問題,用ode45可以解

matlab使用ode45解微分方程組的基本問題,下面有一個簡單的微分方程組求**

6樓:匿名使用者

^建立myfun.m檔案,把以下**

複製進去

function dx=myfun(t,x)dx=zeros(2,1);

dx(1)=4*x(1)+x(2).^2;

dx(2)=8*x(1)+2*x(2).^2+5*x(2);

執行以內下**

t=[0 0.1];

x0=[1 1];

[tt,xx]=ode45('myfun',t,x0);

plot(tt,xx(:,1),'-',tt,xx(:,2),'-.')%畫出兩者影象容

用matlab來解有5個變數的微分方程組

如何利用matlab 用尤拉方法解這個微分方程組?求解思路 1 用function函式體,自定義微分方程組函式,其函式格式為。function f func t,x 微分方程組表示式。end2 確定t的範圍及步長,如t 0 10 t0 0 起始點。tf 10 終止點。n 100 等份。h tf t0...

matlab ode45解微分方程組

dy zeros 1,3 這說明返回值是個行向量,但是ode要求返回值是列向量。改成 dy zeros 3,1 就對了。matlab裡ode45解決二階常係數微分方程用法 求助,用 matlab 的 ode45 求解微分方程組 例如 求解下列微分方程組。求解步驟 自定義函式。functiondy r...

變係數非線性常微分方程組用mathematica怎麼求解

不要理會那些廣告商。用dsolve函式。如輸入 dsolve y x x y x 2 1,y,x 輸出 c 1 1 2 2 sqrt 1 4 x 2 log 1 sqrt 1 4 x c 1 1 2 2 sqrt 1 4 x 2 log 1 sqrt 1 4 x 再如輸入 dsolve x quie...