用matlab求解常系数微分方程组并画出图像

哪位大神帮我用matlab解以下微分方程组并作出图像
麻烦给出语句
万分感谢!

dx1/dt=x1*(1-x1/150000-0.5*x2/30000)
dx2/dt=x2*(-1-x2/30000+0.5*x1/150000-2*x3/2200)
dx3/dt=x3*(-1-x3/2200+2*x2/30000)

x1(0)=121000
x2(0)=27000
x3(0)=2000

1定义函数:

function y=fun(t,x)

y=zeros(3,1);

x1=x(1);x2=x(2);x3=x(3);

y(1)=x1*(1-x1/150000-0.5*x2/30000);

y(2)=x2*(-1-x2/30000+0.5*x1/150000-2*x3/2200);

y(3)=x3*(-1-x3/2200+2*x2/30000);

2解方程并画图

[t,x]=ode23(@fun,[0,1],[121000,27000,2000]);

hold on

plot(t,x(:,1))

plot(t,x(:,2))

plot(t,x(:,3))

3结果

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-21
>> f=@(t,x)[x(1)*(1-x(1)/150000-0.5*x(2)/30000); ...
x(2)*(-1-x(2)/30000+0.5*x(1)/150000-2*x(3)/2200); ...
x(3)*(-1-x(3)/2200+2*x(2)/30000)];
t_final=100;
x0=[121000;27000;2000];
[t,x]=ode45(f,[0 t_final],x0);
plot(t,x),figure;
plot3(x(:,1),x(:,2),x(:,3));
t_final是设定的仿真终止时间,可以自己修改其值,即题中t的变化
,第一个绘图绘制出系统各个状态和时间关系的二维曲线,第二个绘图
绘制出三个状态的相空间曲线。如果要显示出对应的t值与对应的x值,用
disp([t,x])
第2个回答  2011-08-21
利用ode45函数,基本上所有的MATLAB参考书上都有
http://zhidao.baidu.com/question/111304564.html

用matlab求解常系数微分方程组并画出图像
function y=fun(t,x)y=zeros(3,1);x1=x(1);x2=x(2);x3=x(3);y(1)=x1*(1-x1\/150000-0.5*x2\/30000);y(2)=x2*(-1-x2\/30000+0.5*x1\/150000-2*x3\/2200);y(3)=x3*(-1-x3\/2200+2*x2\/30000);2解方程并画图 [t,x]=ode23(@fun,[0,1],[121000,27000,2000])...

如何用matlab求解微分方程并画图
1、找到关于求解常微分方程的习题。2、这里用matlab求解,主要用到的就是“dsolve”,具体的格式如下,但是不仅仅局限下面两种,其中eq就是代表方程式,而con为初始条件。3、这里的“x”关于x的函数。知道语法就可以进行计算了。4、在matlab中输入如下,dsolve('D2y+2*Dy+exp(x)=0','x'),并直接...

求解常微分方程?作图。matlab
可以用下列方法来实现:1、首先,建立自定义常微分方程函数, ode_fun(t,y)2、其二,用ode45函数求解其常微分方程的数值解[t,y]=ode45(@ode_fun,tspan,X0);其中:tspan为时间范围,X0为初始条件3、最后,用plot函数绘制t—y(t),t—y'(t)关系图,以及y(t)—y'(t)关系图。编程后运行,...

如何用matlab画出曲线图形
(1)求解微分方程:y '' + y = 0 输入:DSolve[y''[x] + y[x] == 0, y[x], x] (按shift+Enter)输出:{{y[x] -> C[1] Cos[x] + C[2] Sin[x]}} (2)求解微分方程:x y '' + 2 y ' - x y = sin x 输入:DSolve[x y''[x] + 2 y'[x] - x y[...

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如何求解微分方程并画图的呢?
如何用matlab求解微分方程并画图,可以先用dsolve()或ode()求出其微分方程(组)的解析解或数值解,然后用plot()绘制其图形。例如:解微分方程 y'=y-2t\/y,y(0)=1,0<t<4 1、用dsolve()求解,代码及结果如下 2、用ode45()求解,代码及结果如下 3、当然喽,使用dsolve()或ode(...

如何用matlab求解下述的二阶变系数常微分方程,并且画出图像
>> y=(C1*exp(gamma^(1\/2)*x)+C2*exp(-gamma^(1\/2)*x))\/x;>> p=diff(y);>> simpliyf(diff(p)+p*2\/x-gamma*y)ans = 0 表明确实是方程的解.然后求解初始条件:>> p_x_equ_0=subs(p,x,0)错误使用 symengine Division by zero.提示错误,因为x=0时解无意义,因此需要在...

如何用matlab解出如下微分方程组并作图?
)];[t,x]=ode45(dx,[0 1],[0.5 0.5]);plot(t,x(:,2))你现在的问题有很多不清楚的地方:1、第一个表达式很乱,我不确定是不是正确理解了你的意图;2、没给初始条件;3、常数n是多大?这个微分方程似乎属于刚性的,不同的n可能会有影响,而使用不同的ode求解器结果可能也不一样。

Matlab怎么画常微分方程的图像
首先D2y(0)他不可能等于0,二阶微分方程只可能有两个初始值。你想想Dy(0)=0,y(0)=1带进去D2y(0)-Dy(0)+y(0)=0 ,D2y(0)自然就出来了 先定义微分方程组函数,建立rigid.m文件 function dy = rigid(t,y)dy = zeros(2,1); % a column vector dy(1) = y(2) ;...

如何用matlab求解一个二阶常系数微分方程组
第一种方法:利用dsolve函数求微分方程的符号解(通解):对于一些不是很难,要求出通解的微分方程,用dsolve函数求解。1、 打开Matlab软件-->点击新建脚本菜单,新建一个脚本文件用于编写微分方程求解程序。2、 输入微分方程求解程序-->点击保存-->点击运行。3、在matlab的命令窗口即可看到求解结果,是...

相似回答