![]() |
【原创】matlab动画演示数学摆
出于对matlab和物理问题的喜爱,无聊时编了一个动画程序,供大家分享。
本人也是初学matlab,程序中是用极坐标画的图像,我想把坐标去掉,但是用axis off又不行,怎么解决呢? 还有,动画看起来显得很不连续,应该是点取少了。matlab的函数ode45能不能设置步长呢?如果可以,就可以取更多的点,使动画连续感更强。 上面两个问题,还请高人指教........ 程序如下: function danbai(a,b) %a 初始角度 %b初始角速度 %当参数为0 时,默认a为pi,b为0 %当参数为1时,默认b为0 if nargin>2 disp('error'); elseif nargin==1 b=0; elseif nargin==0 a=pi;b=0; else end [x,y]=ode45(@danbai0,[0,200],[a;b]); m=length(y(:,1)); line([0 0],[-10 10]); hold on for j=1:m hold off polar([0 y(j,1)],[0,9.8]); hold on polar(y(j,1),9.8,'*r'); view(270,100) pause(0.05) end function dy=danbai0(t,y) %大角度单摆问题 D2y-g/l*sin(y)=0 的微风方程 用于ode45 求数值解 这里g=l=9.8 g=9.8;l=9.8; dy=zeros(2,1); dy(1)=y(2); dy(2)=-g/l*sin(y(1)); |
所有时间均为北京时间。现在的时间是 11:10。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.