求解微分方程組的matlab程式

時間 2021-08-30 11:18:36

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求解非線性高階微分方程組方法

信科濱 參考 回答的一樣的問題,還有下面的程式 function dy odefun t,y y 1 x y 2 x y 3 y y 4 y y 5 z y 6 z u 9.8 1 dy zeros 6,1 dy 1 y 2 dy 2 u y 1 sqrt y 1 2 y 3 2 y 5 2 3 d...

matlab解常微分方程組並畫圖的語句

說明 求解常微分方程一般使用ode系列函式 其中最常用的是ode45 基本做法就是把微分方程用函式表示出來,然後呼叫ode函式求解即可。對於本題而言,使用匿名函式描述微分方程更為方便一些。參考 k0 8 k1 1 k 1 k2 5 n 2 常數定義 ds t,s k0 k1 1 s 2 k n s ...

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

花開勿敗的雨季 方程或者初始條件有問題,請認真核實。原因 如果按照現在的初始條件,則第一個微分方程各項為0,方程不起作用。而且就演算法而言,二階 最高階 導數的係數為0,會導致數值積分演算法無法啟動。參考 大致如下 12 3456 78910 1112 1314 1516 17m 1 g 9.8 k...