首页/文章/ 详情

二阶微分方程的matlab解法,以动力学方程为例

3年前浏览4531

image.png

 过冷水诚挚邀请你加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载,**:927550334

QQ图片20210424105303.png

过冷水最近有接触一点点动力学的知识。作为动力学入门,当然的会解动力学方程了。于是本期过冷就教大家解动力学微分方程。

上图是两个小车通过弹簧链接起来的做来回摆动运动。应用拉克朗日方程建立系统的运动微分方程:

    需要二阶微分方程组转化为一阶微分方程组:

    根据得到的一阶微分方程组进行差微分求解就可以解得x1、x2随时间的变换。采用差分法就可以得到小车的运动轨迹

具体代码为:

x_chuzh1=[0;0.2;0;0];
c1=0.1;
c2=0.4;
k1=2;
k2=3;
m1=4;
m2=6;
[t,x]=ode45('dyna',[0,50],x_chuzh1,[],m1,m2,c1,c2,k1,k2);
plot(t,x(:,4),'--b');
hold on
set(gca,'FontSize',10,'Fontname','Times New Roman');
function xp=dyna(t,x,***,m1,m2,c1,c2,k1,k2)
xp=zeros(4,1);
xp(1)=x(2);
xp(2)=-(c1/m1)*(x(2)-x(4))-(k1/m1)*(x(1)-x(3));
xp(3)=x(4);
xp(4)=-(c1/m2)*(x(4)-x(2))-(k1/m2)*(x(3)-x(1))-(c2/m2)*x(4)-(k2/m2)*(x(3)-x(1))-(k2/m2)*x(3);
end

        其实动力学方程本质上就是解微分方程的问题,不是很复杂,本期需要注意的是ode45函数可以直接识别自定义的方程组。根据该思路过冷水就可以尝试封闭小盒中的粒子自由运动了。最近过冷水会持续和大家分享有关动力学的知识,感兴趣的请持续关系过冷水的推文。

图片

        过冷水发表于仿真秀 平台原创文章,未经授权禁止私自转载,如需转载请需要和作者沟通表明授权声明,未授权文章皆视为侵权行为,必将追责。如果您希望加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载均可加群:927550334。

精品回顾

matlab绘制农夫过河动态图

分子动力学的原子空间运动轨迹演示编程

过冷水带你用matlab制作演示动画

python批量移动文件&重命名代码分享

过冷水和你分享 matlab读取存储各种文件的方法 文末有独家金曲分享

image.png

冶金MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-04-11
最近编辑:3年前
过冷水
博士 | 讲师 讨论号:927550334
获赞 355粉丝 175文章 109课程 11
点赞
收藏

作者推荐

未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈