MATLAB与高等数学--方程组相平面图(弹簧的阻尼振动图像)

编程入门 行业动态 更新时间:2024-10-23 19:25:47

MATLAB与高等数学--<a href=https://www.elefans.com/category/jswz/34/1716210.html style=方程组相平面图(弹簧的阻尼振动图像)"/>

MATLAB与高等数学--方程组相平面图(弹簧的阻尼振动图像)

绘制弹簧的位置和动量随时间变化的图像
x(t)表示弹簧系统所在的位置,p(t)表示它的动量,并且遵循方程:

  clear,clc;syms x(t) p(t);q1 = 2*diff(x,t,2)+diff(x,t,1)+8*x==0;q2 = diff(p,t,1)==-p-8*x;cond1 = x(0)==2;cond2 = p(0)==0;cond3 = diff(x,t,1);s = dsolve(q1,q2,cond1,cond2,cond3(0)==0);s.xs.pezplot(s.x,[0 10])title('质心所在位置')ezplot(s.p,[0 10])title('动量')

质心随时间变化的图像:

动量随时间变化图像:

使用ezplot()命令绘制p-x图像:

我们可以修改一下其它参数让这个图变得好看一些,首先我们定义下时间间隔值:

 t1 = [0:0.1:10];

现在我们使用subs命令在这个时间间隔产生表示位置与动量函数的数值:

   x1 = subs(s.x,'t',t1);p1 = subs(s.p,'t',t1);

现在我们有了数据点,所以我们可以使用plot命令来绘制相图:

   plot(x1,p1),xlabel('x'),ylabel('p'),title('质心动量相图');

现在结果好多了:


让我们看看临界阻尼震荡的情况:

求解方程:

clear,clc;
syms x(t) p(t);
q1 = diff(x,t,2)+diff(x,t)+x/4==0;
q2 = diff(p,t,1)==-p/2-x/4;
cond1 = x(0)==4;
cond2 = diff(x,t,1);
cond3 = p(0)==0;
s = dsolve(q1,q2,cond1,cond2(0)==0,cond3);
s.x
s.p

解:

ans =
4*exp(-t/2) + 2*t*exp(-t/2) 
ans =
- t*exp(-t/2) - (t^2*exp(-t/2))/4

我们绘制位置随时间变化的图像:

ezplot(s.x,[0 15])
axis([0 15 0 4]);
title('位置');


现在绘制动量图像:

explot(s.p,[0 15])
title('动量');

更多推荐

MATLAB与高等数学--方程组相平面图(弹簧的阻尼振动图像)

本文发布于:2023-07-27 22:09:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1226540.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方程组   阻尼   平面图   弹簧   高等数学

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!