Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-07-09, 19:32   #1
meichengguang
初级会员
 
注册日期: 2009-07-09
帖子: 3
声望力: 0
meichengguang 正向着好的方向发展
眨眼 【原创】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));
meichengguang 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:34


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.