function ks, sstr_v=[]; for j=1:16, if j<10, sstr_v(j,:)=['vQ','0',num2str(j)]; else sstr_v(j,:)=['vQ',num2str(j)]; end end sstr_Q=[]; for j=1:16, if j<10, sstr_Q(j,:)=['Q','0',num2str(j)]; else sstr_Q(j,:)=['Q',num2str(j)]; end end sstr_kQ1=[]; for j=1:16, sstr_kQ1(j,:)=['k',sstr_Q(j,:),'1']; end sstr_kQ2=[]; for j=1:16, sstr_kQ2(j,:)=['k',sstr_Q(j,:),'2']; end sstr_kQ3=[]; for j=1:16, sstr_kQ3(j,:)=['k',sstr_Q(j,:),'3']; end sstr_kQ4=[]; for j=1:16, sstr_kQ4(j,:)=['k',sstr_Q(j,:),'4']; end for j=1:16, sstr_Revised_Q(j,:)=[sstr_Q(j,:),'(i)']; end str_Revised_Q='Q00(i)'; for j=1:16, str_Revised_Q=[str_Revised_Q,',',sstr_Revised_Q(j,:)]; end for j=1:16, sstr_Revised_Q_1(j,:)=[sstr_Q(j,:),'(i)+',sstr_kQ1(j,:),'/2']; end str_Revised_Q_1='Q00(i)+kQ001/2'; for j=1:16, str_Revised_Q_1=[str_Revised_Q_1,',',sstr_Revised_Q_1(j,:)]; end for j=1:16, sstr_Revised_Q_2(j,:)=[sstr_Q(j,:),'(i)+',sstr_kQ2(j,:),'/2']; end str_Revised_Q_2='Q00(i)+kQ002/2'; for j=1:16, str_Revised_Q_2=[str_Revised_Q_2,',',sstr_Revised_Q_2(j,:)]; end for j=1:16, sstr_Revised_Q_3(j,:)=[sstr_Q(j,:),'(i)+',sstr_kQ3(j,:)]; end str_Revised_Q_3='Q00(i)+kQ003'; for j=1:16, str_Revised_Q_3=[str_Revised_Q_3,',',sstr_Revised_Q_3(j,:)]; end str_v='vQ00'; for j=1:16, str_v=[str_v,',',sstr_v(j,:)]; end str_Q='Q00'; for j=1:16, str_Q=[str_Q,',',sstr_Q(j,:)]; end Q00=1; for j=1:16, eval([sstr_Q(j,:),'(1)','=1;']); %initializing end plot(Q01,'b*'); Q01 hold on; dt=0.0001; i=0; mu=4; while(i<10), i=i+1; eval(['[',str_v,']=vel(mu,',str_Revised_Q,');']); %calculate v's the 1st time kQ001=dt*vQ00; for j=1:16, eval([sstr_kQ1(j,:),'=dt*',sstr_v(j,:),';']) %update kQ??1 end eval(['[',str_v,']=vel(mu,',str_Revised_Q_1,');']); %calculate v's the 2nd time kQ002=dt*vQ00; for j=1:16, eval([sstr_kQ2(j,:),'=dt*',sstr_v(j,:),';']) %update kQ??2 end eval(['[',str_v,']=vel(mu,',str_Revised_Q_2,');']); %calculate v's the 3rd time kQ003=dt*vQ00; for j=1:16, eval([sstr_kQ3(j,:),'=dt*',sstr_v(j,:),';']) %update kQ??3 end eval(['[',str_v,']=vel(mu,',str_Revised_Q_3,');']); %calculate v's the 4th time kQ004=dt*vQ00; for j=1:16, eval([sstr_kQ4(j,:),'=dt*',sstr_v(j,:),';']) %update kQ??4 end %update Q's for the i'th time Q00(i+1)=Q00(i)+kQ001/6+kQ002/3+kQ003/3+kQ004/6; for j=1:16, eval([sstr_Q(j,:),'(i+1)=',sstr_Q(j,:),'(i)+',sstr_kQ1(j,:),'/6+',sstr_kQ2(j,:),'/3+',sstr_kQ3(j,:),'/3+',sstr_kQ4(j,:),'/6;']); end plot(Q01,'b*'); end function [vQ0,vQ1,vQ2,vQ3,vQ4,vQ5,vQ6,vQ7,vQ8,vQ9,vQ10,vQ11,vQ12,vQ13,vQ14,vQ15,vQ16]=vel(mu,Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q12,Q13,Q14,Q15,Q16), for k=0:16, sig=0; for i=0:k , eval(['sig=sig+Q',num2str(i),'*','Q',num2str(k-i),';']); end if k~=16, for i=(k+1):16, eval(['sig=sig-2*Q',num2str(i),'*','Q',num2str(16-i),';']); end end eval(['vQ',num2str(k),'=(k*k-mu*k*k*k*k)*Q',num2str(k),'-k*sig;']); end