matlab查错小问题 急求!!!

来源:百度知道 编辑:UC知道 时间:2024/04/28 01:44:31
高手看一下,我运行不出来,哪里错了

弹簧摆模拟实验
function thb
%
% 12 弹簧摆模拟实验源程序
%
% 转自:http://physics.bnu.edu.cn/include/elearn/physics/
%
theta0=pi/10 %\fs{初始角度,可由读者设不同的值}
m = 1; k = 80; ; g = 9.8;
L0 = 1; L = L0 + m*g/k; %\fs{L0为弹簧原来长度,L为弹簧静止时长度}
[t,u1] = ode45('thbfun',[0 : 0.005 : 15],[L0 0 theta0 0],[],L,k,m,g);
[y1,x1] = pol2cart(u1(:,3),u1(:,1)); y1 = -y1;%\fs{将极坐标换为直角坐标}
ymax = max(abs(y1));
axis([-1.2 1.2 -1.2*ymax 0.2]);%\fs{设置坐标范围}
axis off
title('弹簧摆','fontsize',14)
hold on;
R =0.055 ; %\fs{设置弹簧半径}
yy = -L0 : 0.01 : 0;
xx = R*sin(yy./L0*30*pi);%\fs{用正弦曲线表示弹簧}
[a,r] = cart2pol(xx,yy); %\fs{用坐标变换来画初始位置的弹簧}
a = a + theta0;
[xx,yy] = pol2cart(a,r);%\fs{弹簧的数据}
line([-1 1],[0 0],'color','r','linew

动了两个地方
【1】第10行
[t,u1] = ode45(@thbfun,[0 : 0.005 : 15],[L0 0 theta0 0],[],L,k,m,g);
【2】第42行,子函数里加入
m = 1; k = 80; ; g = 9.8;

程序通了。

版本差别啊!
@ 确实比较标准