用matlab画相图的教程
1、首先,获取系统模型方程。
2、其次,调用dsolve 函数求得方程的解:>> s = dsolve('2*D2x+Dx+8*x = 0',&垆杪屑丝#39;Dp = -p - 17*x','x(0)=4',' Dx(0)=0','p(0)=0')
3、接着,访问方程的解:>> s.xans =exp(-1/4*t)*(4/21*sin(3/4*7^(1/2)*t)*7^(1/2)+4*cos(3/4*7^(1/2)*t))>> s.pans =-68/9*cos(3/4*7^(1/2)*t)*exp(-1/4*t)-748/63*7^(1/2)*exp(-1/4*t)*sin(3/4*7^(1/2)*t)+68/9*exp(-t)
4、绘制位置随时间变化的函数图象:>> ezplot(s.x,[0 10])>> title('质量的位置')
5、绘制在相同时间内的动量:>> ezplot(s.p,[0 10])>> title('动量')
6、调用plot 产生相图:>> plot(xval,pval),xlabel('x'),ylabel('p'),title('质量弹簧的相图')
7、代码总结:>> s = dsolve('2*D2x+Dx+8*x = 0','Dp = -p - 17忮氽阝另*x','x(0)=4',' Dx(0)=0','p(0)=0');>> s.xans =exp(-1/4*t)*(4/21*sin(3/4*7^(1/2)*t)*7^(1/2)+4*cos(3/4*7^(1/2)*t))>> s.pans =-68/9*cos(3/4*7^(1/2)*t)*exp(-1/4*t)-748/63*7^(1/2)*exp(-1/4*t)*sin(3/4*7^(1/2)*t)+68/9*exp(-t)>> ezplot(s.x,[0 10])>> title('质量的位置')>> ezplot(s.p,[0 10])>> title('动量')>> ezplot(s.x,s.p,[-5 5])>> axis([-8 8 -25 20])>> title('参量图')>> tvalues = (0:0.1:10);>> xval = subs(s.x,'t',tvalues);>> pval = subs(s.p,'t',tvalues);>> plot(xval,pval),xlabel('x'),ylabel('p'),title('质量弹簧的相图')