How to fix the error?
이전 댓글 표시
Hi I am not sure how to fix the error in this program, thanks in advance.
clc, clear all, close all
l=0.3; sampling=0.01; runningstep=200; timespan=sampling*runningstep;
x0=[pi/6 0];
%main program for numberical solution k=l; while(k<1000) [t,y]=ode45(@pendulum,[0 sampling], x0, [], l); if k==1 yp(1,:)=y(1,1:2); tp(1,:)=t(1,1); else yp(k,:)=y(size(y,1),1:2); tp(k,1)=sampling*k; end %update date x0=y(size(y,1),1:2); %change initial value k=k+1; end
%animation xa=l*sin(yp(:,1)); ya=-l*cos(yp(:,1)); hp=plot([0,0],[xa(1),ya(1)],'linewidth',2,'Marker','o','Erasemode','xor'); axis([-l -0.1 l+0.1 -l-0.1 l+0.1]); for i=1: size(tp) set(hp,'xdata',[0,xa(i)],'ydata',[0,ya(i)]); drawnow pause(0.001); grid on mov(i)=getframe; end movie2avi(mov,'pendulum.avi')
2nd Function file ------------------------------------------- function dy=pendulum(t,y,l) dy(1,1)=y(2,1); dy(2,1)=-9.81/l*sin(y(1,1));
댓글 수: 2
Gazza Dazzle
2014년 9월 2일
Pierre Benoit
2014년 9월 2일
Please format and indent your code, it is hardly readable this way. You can look at this : http://www.mathworks.com/matlabcentral/answers/help/markup
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Classical Mechanics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!