function fig621 % solve IVP using MATLAB routines % y' = f(t,y) with y(0) = y0 % where y = (y1, y2, y3 , ..., yn) is an n-vector % clear all previous variables and plots clear * clf % get(gcf) set(gcf,'Position', [1677 1122 665 250]); hold on tmax=500; y0=[0.1 0 2 2]; % calculate solution using a MATLAB routine [t,y] = ode45(@rhs,[0 tmax],y0); %[t,y] = ode23s(@rhs,[0 tmax],y0); z=y(:,4)-y(:,2); [tt,yy] = ode45(@rhs2,[0 tmax],y0); %[t,y] = ode23s(@rhs,[0 tmax],y0); zz=yy(:,4)-yy(:,2); plot(t,z,'k','LineWidth',1.1) plot(tt,zz,'--k','LineWidth',1.1) axis([0 500 -0.2 4]); % commands to label each axes xlabel('t-axis','FontSize',14,'FontWeight','bold') ylabel('\phi - axis','FontSize',14,'FontWeight','bold') set(gca,'xtick',[0 100 200 300 400 500]); grid on % command to put legend into plot legend(' a = 1',' a = -1','Location','East'); % have MATLAB use certain plot options (all are optional) box on % Set the fontsize to 14 for the plot set(gca,'FontSize',14); % Set legend font to 14/bold set(findobj(gcf,'tag','legend'),'FontSize',14,'FontWeight','bold'); hold off figure set(gcf,'Position', [993 1123 666 247]); hold on plot(t,y(:,1),'k') plot(t,y(:,3),'--k') %plot(tt,yy(:,1),'k') %plot(tt,yy(:,3),'--k') axis([0 10 0 2]); % commands to label each axes xlabel('t-axis','FontSize',14,'FontWeight','bold') ylabel('r - axis','FontSize',14,'FontWeight','bold') %set(gca,'xtick',[0 100 200 300 400 500]); grid on % command to put legend into plot legend(' r_1',' r_2','Location','NorthEast'); % have MATLAB use certain plot options (all are optional) box on % Set the fontsize to 14 for the plot set(gca,'FontSize',14); % define f(t,y) function dy=rhs(t,y) global a0 % y(1)=r(1) y(2)=theta(1) y(3)=r(2) y(4)=theta(2) dy=zeros(4,1); ep=0.01; a=1; b=1; a1=1; b1=1; k1=1; a2=a1; b2=b1; k2=k1; z1=y(3)*cos(y(4)) - y(1)*cos(y(2)); z2=y(3)*sin(y(4)) - y(1)*sin(y(2)); f1 = -a*z1 - b*z2; g1 = b*z1-a*z2; f2 = a*z1 + b*z2; g2=-b*z1+a*z2; F1=f1*cos(y(2))+g1*sin(y(2)); G1=(g1*cos(y(2))-f1*sin(y(2)))/y(1); F2=f2*cos(y(4))+g2*sin(y(4)); G2=(g2*cos(y(4))-f2*sin(y(4)))/y(3); dy(1)=-b1*y(1)*(y(1)^2-k1^2)+ep*F1; dy(2)=-a1+ep*G1; dy(3)=-b2*y(3)*(y(3)^2-k2^2)+ep*F2; dy(4)=-a2+ep*G2; % define f(t,y) function dy=rhs2(t,y) global a0 % y(1)=r(1) y(2)=theta(1) y(3)=r(2) y(4)=theta(2) dy=zeros(4,1); ep=0.01; a=-1; b=1; a1=1; b1=1; k1=1; a2=a1; b2=b1; k2=k1; z1=y(3)*cos(y(4)) - y(1)*cos(y(2)); z2=y(3)*sin(y(4)) - y(1)*sin(y(2)); f1 = -a*z1 - b*z2; g1 = b*z1-a*z2; f2 = a*z1 + b*z2; g2=-b*z1+a*z2; F1=f1*cos(y(2))+g1*sin(y(2)); G1=(g1*cos(y(2))-f1*sin(y(2)))/y(1); F2=f2*cos(y(4))+g2*sin(y(4)); G2=(g2*cos(y(4))-f2*sin(y(4)))/y(3); dy(1)=-b1*y(1)*(y(1)^2-k1^2)+ep*F1; dy(2)=-a1+ep*G1; dy(3)=-b2*y(3)*(y(3)^2-k2^2)+ep*F2; dy(4)=-a2+ep*G2;