数学建模(生物数学篇)之 MATLAB在求解高阶微分方程时的应用实例(3/3)

一、实验目的:

理解并掌握利用MATLAB在求解高阶微分方程时的应用。

二、实验内容
求解高阶微分方程时,可想办法将其变为几个一阶微分方程组成的微分方程组。
例1   ,选择变量 可得出一阶微分方程组为


 
例2  设系统模型以二元方程组形式给出 , 试将其转化为一阶微分方程组。
解  选择变量 ,再消去其中一个高阶导数。
从第一个式子可得出 ,再将其代入第二个式子中,解出

 

 

 

练习1  求初值问题的数值解,并画出的图形和数值解的相图。

 

练习2  考虑Vanderpol方程,与之等价的方程组有

 

 

 

       对参数时,求出此方程组3个不同初值的解并绘制相图,并尝试在同一个坐标系里将它们的相轨线绘制出来。

  1. 练习一

程序代码:

被调用的untitled10_diaoyong.mlx文件(实时编辑器脚本)

function dx=untitled10_diaoyong(t,x)

dx=zeros(2,1);

dx(1)=x(2);

dx(2)=7.5*cos(t)-x(1)^3-0.05*x(2);

return

end

运行的untitled10.mlx文件

[t,x]=ode45('untitled10_diaoyong',[0:0.05:40],[3,4]);

plot(t,x);

figure;

plot(x(:,1),x(:,2));

程序测试及运行结果:

 

 

  1. 练习二

程序代码:

被调用的untitled11_diaoyong.mlx文件(实时编辑器脚本)

function dy=untitled11_diaoyong(t,y)

u=0.1;dy=zeros(2,1);

dy(1)=y(2)-u*((y(1)^3)/3-y(1));

dy(2)=-y(1);

return

end

运行的untitled11.mlx文件

[t1,Y1]=ode45('untitled11_diaoyong',[-10:0.1:10],[-2,-2]);

[t2,Y2]=ode45('untitled11_diaoyong',[-10:0.1:10],[0.7,-0.7]);

[t3,Y3]=ode45('untitled11_diaoyong',[-10:0.1:10],[2,0]);

numso15=[t1,Y1,t2,Y2,t3,Y3];

subplot(3,1,1),plot(t1,Y1,'-r');

subplot(3,1,2),plot(t2,Y2,'-b');

subplot(3,1,3),plot(t3,Y3,'-g');

figure;

plot(Y1(:,1),Y1(:,2),'-r');

hold on;

plot(Y2(:,1),Y2(:,2),'-b');

plot(Y3(:,1),Y3(:,2),'-g');

程序测试及运行结果:

分析与讨论:

  1. MATLAB求解高阶微分方程的ode45方法应用。 

ode45实际上是数值分析中数值求解微分方程组的一种方法,4阶五级Runge-Kutta算法。其调用方法为:

[t,x]=ode45(Fun,tspan,x,options,pars)

Fun就是你要求解的微分方程组,微分方程组必须化成现代控制理论中的一阶微分方程组形式,之后定义.m函数亦或是匿名函数

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君无戏言。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值