声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: mumianhua

[稳定性与分岔] 跪求 各位亲 请教非自治系统的LYapunov指数程序相关问题

[复制链接]
发表于 2014-7-1 11:28 | 显示全部楼层
  1. tic
  2. clear
  3. clc
  4. [T,Res]=lyapunov(4,@lorenz_ext,@ode15s,0,0.5,0.5,[0.0001 0 0.0001 0]',10);
  5. %plot(T,Res);
  6. figure;
  7. plot(T,Res(:,1));
  8. title('Dynamics of Lyapunov exponents x');
  9. xlabel('Time'); ylabel('Lyapunov exponents x');
  10. figure;
  11. plot(T,Res(:,3));
  12. title('Dynamics of Lyapunov exponents y');
  13. xlabel('Time'); ylabel('Lyapunov exponents y');
  14. toc

复制代码
相轨迹图.jpg
回复 支持 反对
分享到:

使用道具 举报

发表于 2014-7-1 11:29 | 显示全部楼层
  1. function [Texp,Lexp]=lyapunov(n,rhs_ext_fcn,fcn_integrator,tstart,stept,tend,ystart,ioutp);
  2. %
  3. %    Lyapunov exponent calcullation for ODE-system.
  4. %
  5. %    The alogrithm employed in this m-file for determining Lyapunov
  6. %    exponents was proposed in
  7. %
  8. %         A. Wolf, J. B. Swift, H. L. Swinney, and J. A. Vastano,
  9. %        "Determining Lyapunov Exponents from a Time Series," Physica D,
  10. %        Vol. 16, pp. 285-317, 1985.参考的论文
  11. %
  12. %    For integrating ODE system can be used any MATLAB ODE-suite methods.
  13. % This function is a part of MATDS program - toolbox for dynamical system investigation
  14. %    See:    http://www.math.rsu.ru/mexmat/kvm/matds/相关的网址
  15. %
  16. %    Input parameters:输入参数
  17. %      n - number of equation微分方程个数
  18. %      rhs_ext_fcn - handle of function with right hand side of extended ODE-system.
  19. %              This function must include RHS of ODE-system coupled with
  20. %              variational equation (n items of linearized systems, see Example). 定义微分方程组的函数句柄名                  
  21. %      fcn_integrator - handle of ODE integrator function, for example: @ode45 所调用求微分方程的MATLAB函数名                 
  22. %      tstart - start values of independent value (time t)时间的初始值
  23. %      stept - step on t-variable for Gram-Schmidt renormalization
  24. %      procedure.进行Gram_Schmidt正交化的迭代次数
  25. %      tend - finish value of time时间的终止数值
  26. %      ystart - start point of trajectory of ODE system.求解微分方程的初值
  27. %      ioutp - step of print to MATLAB main window. ioutp==0 - no print,
  28. %              if ioutp>0 then each ioutp-th point will be
  29. %              print.每隔ioutp个点输出相应的时间和李雅普诺夫指数数值
  30. %
  31. %    Output parameters:输出参数
  32. %      Texp - time values时间的数值
  33. %      Lexp - Lyapunov exponents to each time value.李雅普诺夫指数的数值
  34. %
  35. %    Users have to write their own ODE functions for their specified
  36. %    systems and use handle of this function as rhs_ext_fcn - parameter.      
  37. %用户如果要计算其他方程,需要写出自己的常微分方程组来替换lorenz_ext文件内容得到相应的函数表达式。
  38. %    Example. Lorenz system:
  39. %               dx/dt = sigma*(y - x)     = f1
  40. %               dy/dt = r*x - y - x*z = f2
  41. %               dz/dt = x*y - b*z     = f3
  42. %
  43. %    The Jacobian of system:
  44. %        | -sigma  sigma  0 |
  45. %    J = |   r-z    -1   -x |
  46. %        |    y      x   -b |
  47. %
  48. %    Then, the variational equation has a form:
  49. %
  50. %    F = J*Y
  51. %    where Y is a square matrix with the same dimension as J.
  52. %    Corresponding m-file:
  53. %        function f=lorenz_ext(t,X)
  54. %         SIGMA = 10; R = 28; BETA = 8/3;
  55. %         x=X(1); y=X(2); z=X(3);
  56. %
  57. %         Y= [X(4), X(7), X(10);
  58. %             X(5), X(8), X(11);
  59. %             X(6), X(9), X(12)];
  60. %         f=zeros(9,1);
  61. %         f(1)=SIGMA*(y-x); f(2)=-x*z+R*x-y; f(3)=x*y-BETA*z;
  62. %
  63. %         Jac=[-SIGMA,SIGMA,0; R-z,-1,-x; y, x,-BETA];
  64. %  
  65. %         f(4:12)=Jac*Y;
  66. %
  67. %    Run Lyapunov exponent calculation:
  68. %     
  69. %    [T,Res]=lyapunov(3,@lorenz_ext,@ode45,0,0.5,200,[0 1 0],10);   
  70. %   
  71. %    See files: lorenz_ext, run_lyap.   
  72. %  
  73. % --------------------------------------------------------------------
  74. % Copyright (C) 2004, Govorukhin V.N.
  75. % This file is intended for use with MATLAB and was produced for MATDS-program
  76. % http://www.math.rsu.ru/mexmat/kvm/matds/
  77. % lyapunov.m is free software. lyapunov.m is distributed in the hope that it
  78. % will be useful, but WITHOUT ANY WARRANTY.
  79. %



  80. %
  81. %       n=number of nonlinear odes非线性方程个数
  82. %       n2=n*(n+1)=total number of odes
  83. %

  84. n1=n; n2=n1*(n1+1);

  85. %  Number of steps步数

  86. nit = round((tend-tstart)/stept);

  87. % Memory allocation 内存分配

  88. y=zeros(n2,1); cum=zeros(n1,1); y0=y;
  89. gsc=cum; znorm=cum;

  90. % Initial values初值

  91. y(1:n)=ystart(:);

  92. for i=1:n1 y((n1+1)*i)=1.0; end;

  93. t=tstart;

  94. % Main loop

  95. for ITERLYAP=1:nit

  96. % Solutuion of extended ODE system

  97.   [T,Y] = feval(fcn_integrator,rhs_ext_fcn,[t t+stept],y);  
  98.   
  99.   t=t+stept;
  100.   y=Y(size(Y,1),:);

  101.   for i=1:n1
  102.       for j=1:n1 y0(n1*i+j)=y(n1*j+i); end;
  103.   end;

  104. %
  105. %       construct new orthonormal basis by gram-schmidt
  106. %

  107.   znorm(1)=0.0;
  108.   for j=1:n1 znorm(1)=znorm(1)+y0(n1*j+1)^2; end;

  109.   znorm(1)=sqrt(znorm(1));

  110.   for j=1:n1 y0(n1*j+1)=y0(n1*j+1)/znorm(1); end;

  111.   for j=2:n1
  112.       for k=1:(j-1)
  113.           gsc(k)=0.0;
  114.           for l=1:n1 gsc(k)=gsc(k)+y0(n1*l+j)*y0(n1*l+k); end;
  115.       end;

  116.       for k=1:n1
  117.           for l=1:(j-1)
  118.               y0(n1*k+j)=y0(n1*k+j)-gsc(l)*y0(n1*k+l);
  119.           end;
  120.       end;

  121.       znorm(j)=0.0;
  122.       for k=1:n1 znorm(j)=znorm(j)+y0(n1*k+j)^2; end;
  123.       znorm(j)=sqrt(znorm(j));

  124.       for k=1:n1 y0(n1*k+j)=y0(n1*k+j)/znorm(j); end;
  125.   end;

  126. %
  127. %       update running vector magnitudes
  128. %

  129.   for k=1:n1 cum(k)=cum(k)+log(znorm(k)); end;

  130. %
  131. %       normalize exponent
  132. %

  133.   for k=1:n1
  134.       lp(k)=cum(k)/(t-tstart);
  135.   end;

  136. % Output modification

  137.   if ITERLYAP==1
  138.      Lexp=lp;
  139.      Texp=t;
  140.   else
  141.      Lexp=[Lexp; lp];
  142.      Texp=[Texp; t];
  143.   end;

  144.   if (mod(ITERLYAP,ioutp)==0)
  145.      fprintf('t=%6.4f',t);
  146.      for k=1:n1 fprintf(' %10.6f',lp(k)); end;
  147.      fprintf('\n');
  148.   end;

  149.   for i=1:n1
  150.       for j=1:n1
  151.           y(n1*j+i)=y0(n1*i+j);
  152.       end;
  153.   end;

  154. end;
复制代码
发表于 2014-7-1 11:30 | 显示全部楼层
  1. function f=lorenz_ext(t,X)
  2. %
  3. %  Lorenz equation
  4. %
  5. %               dx/dt = SIGMA*(y - x)
  6. %               dy/dt = R*x - y -x*z
  7. %               dz/dt= x*y - BETA*z
  8. %
  9. %        In demo run SIGMA = 10, R = 28, BETA = 8/3
  10. %        Initial conditions: x(0) = 0, y(0) = 1, z(0) = 0;
  11. %        Reference values for t=10 000 :
  12. %              L_1 = 0.9022, L_2 = 0.0003, LE3 = -14.5691
  13. %
  14. %        See:
  15. %    K. Ramasubramanian, M.S. Sriram, "A comparative study of computation
  16. %    of Lyapunov spectra with different algorithms", Physica D 139 (2000) 72-86.
  17. %
  18. % --------------------------------------------------------------------
  19. % Copyright (C) 2004, Govorukhin V.N.


  20. % Values of parameters
  21. %SIGMA = 10;
  22. %R = 28;
  23. %BETA = 8/3;

  24. %x=X(1)
  25. %y=X(2)
  26. %z=X(3)
  27. %赋初值
  28. r=0.0003;%m
  29. l1=0.130;%m
  30. l2=0.308;%m
  31. l4=0.520;%m
  32. ls2=0.154;%m
  33. ls3=0.0797;%m
  34. m2=8.516;%kg
  35. m3=1.161;%kg
  36. %k=7.15e4;%N/mm
  37. Js2=0.0616;%转动惯量kg.mm^2
  38. Js3=0.005772;%转动惯量kg.mm^2
  39. J4=0.007105;
  40. if sqrt(X(1)^2+X(3)^2)>r
  41.     k=7.15e10;%N/m
  42. else
  43.     k=0;
  44. end
  45. n=10;
  46. theta1=n*pi*t;
  47. theta11=n*pi;
  48. theta12=0;
  49.     aa1=-l1*sin(theta1);
  50.     aa2=l4-l1*cos(theta1);
  51. if aa1<0
  52. theta20=-asin(l2/sqrt(aa1^2+aa2^2))-atan(aa2/aa1);
  53. else
  54.     theta20=pi-asin(l2/sqrt(aa1^2+aa2^2))-atan(aa2/aa1);
  55. end
  56. l0=(l1*sin(theta1)+l2*sin(theta20))/cos(theta20);
  57. a1=-(l2*cos(theta20)+l0*sin(theta20))/l0;
  58. a2=-(l2*sin(theta20)-l0*cos(theta20))/l0;
  59. b1=-cos(theta20)./l0;
  60. b2=-sin(theta20)./l0;
  61. theta201=(l1*theta11*sin(theta1-theta20))/(l1*sin(theta1)*cos(theta20)+(l4-l1*cos(theta1))*sin(theta20));
  62. theta202=(l1*theta12*sin(theta1-theta20)-theta201^2*(l4-l1*cos(theta1))*cos(theta20)+theta201^2*l1*sin(theta1)*sin(theta20)+l1*theta11^2*cos(theta1-theta20))/(l1*sin(theta1)*cos(theta20)+(l4-l1*cos(theta1))*sin(theta20));
  63. l01=(l1*theta11*cos(theta1)+l2*theta201*cos(theta20)+l0*theta201*sin(theta20))/cos(theta20);
  64. l02=(l1*theta12*cos(theta1)-l1*theta11^2*sin(theta1)+l2*theta202*cos(theta20)-l2*theta201^2*sin(theta20)+2*l01*theta201*sin(theta20)+l0*theta202*sin(theta20)+l0*theta201^2*cos(theta20))/cos(theta20);
  65. b11=(l0*theta201*sin(theta20)+l01*cos(theta20))/l0^2;
  66. b12=(-2*b11*l0*l01+l02*cos(theta20)+l0*theta201^2*cos(theta20))/l0^2;
  67. b21=(l01*sin(theta20)-l0*theta201*cos(theta20))/l0^2;
  68. b22=(l02*sin(theta20)-l0*theta202*cos(theta20)+l0*theta201^2*sin(theta20)-2*l0*l01*b21)/l0^2;
  69. a11=l2*b11-theta201*cos(theta20);
  70. a12=l2*b12-theta202*cos(theta20)+theta201^2*sin(theta20);
  71. a21=l2*b21-theta201*sin(theta20);
  72. a22=l2*b22-theta202*sin(theta20)--theta201^2*cos(theta20);
  73. %dtheta2=b1*X(1)+b2*X(3);
  74. dl=a1*X(1)+a2*X(3);
  75. dl1=a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4);
  76. dtheta21=b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4);
  77. %theta2=theta20+b1*X(1)+b2*X(3);
  78. A=Js2+Js3+J4+m2*ls2^2+m3*ls3^2;
  79. B=(m2+m3)*(l0+dl)^2-2*m3*ls3*(l0+dl);
  80. A1=(A+B)*b1^2-2*m2*ls2*a1*b1+(m2+m3)*a1^2;
  81. B1=(A+B)*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2;
  82. A2=(A+B)*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2;
  83. B2=(A+B)*b2^2-2*m2*ls2*a2*b2+(m2+m3)*a2^2;
  84. H=((A+B)*(m2+m3)-m2^2*ls2^2)/(l0^2);
  85. C=2*((m2+m3)*(l0+dl)-m3*ls3)*(l01+dl1)*(theta201+dtheta21);
  86. D=theta202+2*b11*X(2)+2*b21*X(4)+b12*X(1)+b22*X(3);
  87. E=l02+2*a11*X(2)+2*a21*X(4)+a12*X(1)+a22*X(3);
  88. F=((m2+m3)*(l0+dl)-m3*ls3)*(theta201+dtheta21)^2;

  89. Y= [X(5), X(9),  X(13), X(17);
  90.     X(6), X(10), X(14), X(18);
  91.     X(7), X(11), X(15), X(19);
  92.     X(8), X(12), X(16), X(20)];

  93. f=zeros(20,1);
  94. %Lorenz equation
  95. %f(1)=SIGMA*(y-x);
  96. %f(2)=-x*z+R*x-y/(x^2+5);
  97. %f(3)=x*y-BETA*z/(y^2+5);
  98. f(1)=X(2);
  99. f(3)=X(4);
  100. f(2)=-D*(l2*sin(theta20)-l0*cos(theta20))+E*sin(theta20)-C/H*(m2*ls2*(-sin(theta20)/(l0^2))+(m2+m3)*(-a2/l0))-F/H*((A+B)*(-sin(theta20)/(l0^2))+m2*ls2*(-a2/l0))-k*(1-r/sqrt(X(1)^2+X(3)^2))/H*(X(1)*B2-X(3)*B1);
  101. f(4)=D*(l2*cos(theta20)+l0*sin(theta20))-E*cos(theta20)+C/H*(m2*ls2*(-cos(theta20)/(l0^2))+(m2+m3)*(-a1/l0))+F/H*((A+B)*(-cos(theta20)/(l0^2))+m2*ls2*(-a1/l0))+k*(1-r/sqrt(X(1)^2+X(3)^2))/H*(X(1)*A2-X(3)*A1);
  102. %Linearized system
  103. %Jac=[-SIGMA, SIGMA,     0;
  104. %        R-z,    -1/(x^2+5),    -x;
  105. %          y,     x, -BETA/(y^2+5)];
  106. %f=f(2),g=f(4),X1=X(1),X2=X(2),X3=X(3),X4=X(4)
  107. %J21=diff(f,'X1')
  108. %J22=diff(f,'X2')
  109. %J23=diff(f,'X3')
  110. %J24=diff(f,'X4')
  111. %J41=diff(g,'X1')
  112. %J42=diff(g,'X2')
  113. %J43=diff(g,'X3')
  114. %J44=diff(g,'X4')
  115. I=l2*sin(theta20)-l0*cos(theta20);
  116. I1=l2*cos(theta20)+l0*sin(theta20);
  117. J=m2*ls2*(-sin(theta20)/(l0^2))+(m2+m3)*(-a2/l0);
  118. J1=m2*ls2*(-cos(theta20)/(l0^2))+(m2+m3)*(-a1/l0);
  119. K=(A+B)*(-sin(theta20)/(l0^2))+m2*ls2*(-a2/l0);
  120. K1=(A+B)*(-cos(theta20)/(l0^2))+m2*ls2*(-a1/l0);
  121. P=k*(1-r/sqrt(X(1)^2+X(3)^2))*(X(1)*B2-X(3)*B1);
  122. P1=k*(1-r/sqrt(X(1)^2+X(3)^2))*(X(1)*A2-X(3)*A1);

  123. Bx=2*((m2+m3)*(l0+dl)-m3*ls3)*a1;
  124. By=2*((m2+m3)*(l0+dl)-m3*ls3)*a2;
  125. Hx=Bx*(m2+m3)/l0^2;
  126. Hy=By*(m2+m3)/l0^2;
  127. Cx=2*(m2+m3)*a1*(l01+dl1)*(theta201+dtheta21)+2*((m2+m3)*(l0+dl)-m3*ls3)*(a11*(theta201+dtheta21)+(l01+dl1)*b11);
  128. Cy=2*(m2+m3)*a2*(l01+dl1)*(theta201+dtheta21)+2*((m2+m3)*(l0+dl)-m3*ls3)*(a21*(theta201+dtheta21)+(l01+dl1)*b21);
  129. Cx1=2*((m2+m3)*(l0+dl)-m3*ls3)*((l01+dl1)*b1+(theta201+dtheta21)*a1);
  130. Cy1=2*((m2+m3)*(l0+dl)-m3*ls3)*((l01+dl1)*b2+(theta201+dtheta21)*a2);
  131. Fx=(m2+m3)*a1*(theta201+dtheta21)^2+2*((m2+m3)*(l0+dl)-m3*ls3)*(theta201+dtheta21)*b11;
  132. Fy=(m2+m3)*a2*(theta201+dtheta21)^2+2*((m2+m3)*(l0+dl)-m3*ls3)*(theta201+dtheta21)*b21;
  133. Fx1=2*((m2+m3)*(l0+dl)-m3*ls3)*(theta201+dtheta21)*b1;
  134. Fy1=2*((m2+m3)*(l0+dl)-m3*ls3)*(theta201+dtheta21)*b2;

  135. Kx=Bx*(-sin(theta20)/(l0^2));
  136. Ky=By*(-sin(theta20)/(l0^2));
  137. K1x=Bx*(-cos(theta20)/(l0^2));
  138. K1y=By*(-cos(theta20)/(l0^2));

  139. B2x=Bx*b2^2;
  140. B1x=Bx*b2*b1;
  141. B2y=By*b2^2;
  142. B1y=By*b2*b1;
  143. A2x=Bx*b2*b1;
  144. A1x=Bx*b1^2;
  145. A2y=By*b2*b1;
  146. A1y=By*b1^2;
  147. Px=k*(1-r/sqrt(X(1)^2+X(3)^2))*(B2+B2x*X(1)-X(3)*B1x)+k*r*X(1)*(X(1)*B2-X(3)*B1)/((X(1)^2+X(3)^2)^(3/2));
  148. Py=k*(1-r/sqrt(X(1)^2+X(3)^2))*(B2y*X(1)-X(3)*B1y-B1)+k*r*X(3)*(X(1)*B2-X(3)*B1)/((X(1)^2+X(3)^2)^(3/2));
  149. P1x=k*(1-r/sqrt(X(1)^2+X(3)^2))*(A2+A2x*X(1)-X(3)*A1x)+k*r*X(1)*(X(1)*A2-X(3)*A1)/((X(1)^2+X(3)^2)^(3/2));
  150. P1y=k*(1-r/sqrt(X(1)^2+X(3)^2))*(A2y*X(1)-X(3)*A1y-A1)+k*r*X(3)*(X(1)*A2-X(3)*A1)/((X(1)^2+X(3)^2)^(3/2));

  151. J21=-b12*I+a12*sin(theta20)-(Cx*J+Fx*K+Kx*F+Px)/H+(C*J+F*K+P)*Hx/H^2;
  152. J22=-2*b11*I+2*a11*sin(theta20)-(Cx1*J+Fx1*K)/H;
  153. J23=-b22*I+a22*sin(theta20)-(Cy*J+Fy*K+Ky*F+Py)/H+(C*J+F*K+P)*Hy/H^2;
  154. J24=-2*b21*I+2*a21*sin(theta20)-(Cy1*J+Fy1*K)/H;
  155. J41=b12*I1-a12*cos(theta20)+(Cx*J1+Fx*K1+K1x*F+P1x)/H-(C*J1+F*K1+P1)*Hx/H^2;
  156. J42=2*b11*I1-2*a11*cos(theta20)+(Cx1*J1+Fx1*K1)/H;
  157. J43=b22*I1-a22*cos(theta20)+(Cy*J1+Fy*K1+K1y*F+P1y)/H-(C*J1+F*K1+P1)*Hy/H^2;
  158. J44=2*b21*I1-2*a21*cos(theta20)+(Cy1*J1+Fy1*K1)/H;
  159. %J21 =-b12*(l2*sin(theta20)-l0*cos(theta20))+a12*sin(theta20)-(2*(m2+m3)*a1*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))+2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a11-2*m3*ls3*a11*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b11)*(-m2*ls2*sin(theta20)/l0^2-(m2+m3)*a2/l0)-(m2+m3)*a1*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)-2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)*b11+((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*(m2+m3)+((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*sin(theta20)-k*r/(X(1)^2+X(3)^2)^(3/2)*X(1)/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b2^2-2*m2*ls2*a2*b2+(m2+m3)*a2^2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2))+k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b2^2-2*m2*ls2*a2*b2+(m2+m3)*a2^2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2))*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*(m2+m3)-k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b2^2-2*m2*ls2*a2*b2+(m2+m3)*a2^2+X(1)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*b2^2-X(3)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*b1*b2);
  160. %J22 =-2*b11*(l2*sin(theta20)-l0*cos(theta20))+2*a11*sin(theta20)-(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b1)*(-m2*ls2*sin(theta20)/l0^2-(m2+m3)*a2/l0)-2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)*b1;
  161. %J23 =-b22*(l2*sin(theta20)-l0*cos(theta20))+a22*sin(theta20)-(2*(m2+m3)*a2*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))+2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a21-2*m3*ls3*a21*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b21)*(-m2*ls2*sin(theta20)/l0^2-(m2+m3)*a2/l0)-(m2+m3)*a2*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)-2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)*b21+((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*(m2+m3)+((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*sin(theta20)-k*r/(X(1)^2+X(3)^2)^(3/2)*X(3)/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b2^2-2*m2*ls2*a2*b2+(m2+m3)*a2^2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2))+k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b2^2-2*m2*ls2*a2*b2+(m2+m3)*a2^2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2))*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*(m2+m3)-k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(X(1)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*b2^2-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2+m2*ls2*(a1*b2+b1*a2)-(m2+m3)*a1*a2-X(3)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*b1*b2);
  162. %J24 =-2*b21*(l2*sin(theta20)-l0*cos(theta20))+2*a21*sin(theta20)-(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b2)*(-m2*ls2*sin(theta20)/l0^2-(m2+m3)*a2/l0)-2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*sin(theta20)/l0^2-m2*ls2*a2/l0)*b2;
  163. %J41 =b12*(l2*cos(theta20)+l0*sin(theta20))-a12*cos(theta20)+(2*(m2+m3)*a1*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))+2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a11-2*m3*ls3*a11*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b11)*(-m2*ls2*cos(theta20)/l0^2-(m2+m3)*a1/l0)+(m2+m3)*a1*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)+2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)*b11-((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*(m2+m3)-((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*cos(theta20)+k*r/(X(1)^2+X(3)^2)^(3/2)*X(1)/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1^2-2*m2*ls2*a1*b1+(m2+m3)*a1^2))-k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1^2-2*m2*ls2*a1*b1+(m2+m3)*a1^2))*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*(m2+m3)+k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2+X(1)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*b1*b2-X(3)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1)*b1^2);
  164. %J42 =2*b11*(l2*cos(theta20)+l0*sin(theta20))-2*a11*cos(theta20)+(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a1-2*m3*ls3*a1*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b1)*(-m2*ls2*cos(theta20)/l0^2-(m2+m3)*a1/l0)+2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)*b1;
  165. %J43 =b22*(l2*cos(theta20)+l0*sin(theta20))-a22*cos(theta20)+(2*(m2+m3)*a2*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))+2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a21-2*m3*ls3*a21*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b21)*(-m2*ls2*cos(theta20)/l0^2-(m2+m3)*a1/l0)+(m2+m3)*a2*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)+2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)*b21-((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*(m2+m3)-((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))^2/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*cos(theta20)+k*r/(X(1)^2+X(3)^2)^(3/2)*X(3)/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1^2-2*m2*ls2*a1*b1+(m2+m3)*a1^2))-k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)^2*l0^2*(X(1)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1*b2-m2*ls2*(a1*b2+b1*a2)+(m2+m3)*a1*a2)-X(3)*((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1^2-2*m2*ls2*a1*b1+(m2+m3)*a1^2))*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*(m2+m3)+k*(1-r/(X(1)^2+X(3)^2)^(1/2))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(X(1)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*b1*b2-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*b1^2+2*m2*ls2*a1*b1-(m2+m3)*a1^2-X(3)*(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2)*b1^2);
  166. %J44 =2*b21*(l2*cos(theta20)+l0*sin(theta20))-2*a21*cos(theta20)+(2*(m2+m3)*(l0+a1*X(1)+a2*X(3))*a2-2*m3*ls3*a2*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))-2*m3*ls3*(l01+a11*X(1)+a1*X(2)+a21*X(3)+a2*X(4))*b2)*(-m2*ls2*cos(theta20)/l0^2-(m2+m3)*a1/l0)+2*((m2+m3)*(l0+a1*X(1)+a2*X(3))-m3*ls3)*(theta201+b11*X(1)+b1*X(2)+b21*X(3)+b2*X(4))/((A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*(m2+m3)-m2^2*ls2^2)*l0^2*(-(A+(m2+m3)*(l0+a1*X(1)+a2*X(3))^2-2*m3*ls3*(l0+a1*X(1)+a2*X(3)))*cos(theta20)/l0^2-m2*ls2*a1/l0)*b2;
  167. Jac=[0, 1, 0, 0;
  168.      J21,J22,J23,J24;
  169.      0 , 0, 0, 1;
  170.      J41,J42,J43,J44];   
  171. %Variational equation   
  172. f(5:20)=Jac*Y;
  173. %Output data must be a column vector
复制代码
 楼主| 发表于 2014-7-1 15:02 | 显示全部楼层

你是在计算Lorenz方程的Lyapunov指数的基础上改了一下,后面再计算Jac的时候,你没有必要直接 对各个项进行求导计算Jac;只需要利用matlab,其中有求Jac矩阵简单的调用语句;在你自己计算Lyapunov之前,你先编辑调用Jac语句,先把Jac算出来,让后再代入到Lorenz方程中的计算Lyapunov指数的JAc,进行替换,就可以了 我就是这样算出来的   而且不会出现错误  你试试看

评分

2

查看全部评分

 楼主| 发表于 2014-7-1 15:04 | 显示全部楼层

而且你的是自治系统好像    计算更简单, 不用将非自治变为自治系统
发表于 2014-7-1 15:14 | 显示全部楼层
而且你的是自治系统好像    计算更简单, 不用将非自治变为自治系统

我的也是非自治系统啊。分母中含有x,y,对x求偏导之后还含有x。非自治系统一定要化成自治系统吗?怎么化啊?
截图00.jpg
发表于 2014-7-1 15:16 | 显示全部楼层
你是在计算Lorenz方程的Lyapunov指数的基础上改了一下,后面再计算Jac的时候,你没有必要直接 对各个项进行求导计算Jac;只需要利用matlab,其中有求Jac矩阵简单的调用语句;在你自己计算Lyapunov之前,你先编辑调用Jac语句,先把Jac算出来,让后再代入到Lorenz方程中的计算Lyapunov指数的JAc,进行替换,就可以了 我就是这样算出来的   而且不会出现错误  你试试看

的确是在Lorenz方程的Lyapunov指数的基础上改了一下。只需要利用matlab,其中有求Jac矩阵简单的调用语句?怎么调用啊。
发表于 2014-7-1 15:21 | 显示全部楼层
而且你的是自治系统好像    计算更简单, 不用将非自治变为自治系统

补充上面方程的。这方面的知识了解的不是很多,多谢指导。
截图01.jpg
 楼主| 发表于 2014-7-1 15:25 | 显示全部楼层
wystar 发表于 2014-7-1 15:16
的确是在Lorenz方程的Lyapunov指数的基础上改了一下。只需要利用matlab,其中有求Jac矩阵简单的调用语句 ...

MATLAB中jacobian是用来计算Jacobi矩阵的函数。
  syms r l f
  x=r*cos(l)*cos(f);
  y=r*cos(l)*sin(f);
  z=r*sin(l);
  J=jacobian([x;y;z],[r l f])              调用计算 非常简单

评分

1

查看全部评分

 楼主| 发表于 2014-7-1 15:26 | 显示全部楼层
mumianhua 发表于 2014-7-1 15:25
MATLAB中jacobian是用来计算Jacobi矩阵的函数。
  syms r l f
  x=r*cos(l)*cos(f);

一定必须是符号计算哦  别忘记了 不然计算不出来哦
 楼主| 发表于 2014-7-1 15:27 | 显示全部楼层
wystar 发表于 2014-7-1 15:21
补充上面方程的。这方面的知识了解的不是很多,多谢指导。

MATLAB中jacobian是用来计算Jacobi矩阵的函数。
  syms r l f
  x=r*cos(l)*cos(f);
  y=r*cos(l)*sin(f);
  z=r*sin(l);
  J=jacobian([x;y;z],[r l f])              调用计算 非常简单             你先试试 计算一下Jac矩阵,然后再代入到你 的Lya计算中去
发表于 2014-7-1 15:40 | 显示全部楼层
MATLAB中jacobian是用来计算Jacobi矩阵的函数。
  syms r l f
  x=r*cos(l)*cos(f);
  y=r*cos(l)*sin(f);
  z=r*sin(l);
  J=jacobian([x;y;z],[r l f])              调用计算 非常简单             你先试试 计算一下Jac矩阵,然后再代入到你 的Lya计算中去

好的,谢谢!我试一下。
发表于 2014-7-1 18:32 | 显示全部楼层
你先试试 计算一下Jac矩阵,然后再代入到你 的Lya计算中去。
  1. [T,Res]=lyapunov(4,@lorenz_ext,@ode45,0,0.5,50,[0.0001 0 0.0001 0],10);
复制代码

雅克比是在matlab中直接调用的,求解还有问题。然后我将求解器改为ode45,求解时间设为50s,只是取几个值验证结果是否正确;结果求出来的Lyapunov指数为无穷大,而且求解的特别缓慢。
t=5.0000        NaN        NaN        NaN        NaN
t=10.0000        NaN        NaN        NaN        NaN
t=15.0000        NaN        NaN        NaN        NaN
t=20.0000        NaN        NaN        NaN        NaN
t=25.0000        NaN        NaN        NaN        NaN
t=30.0000        NaN        NaN        NaN        NaN
t=35.0000        NaN        NaN        NaN        NaN
t=40.0000        NaN        NaN        NaN        NaN
t=45.0000        NaN        NaN        NaN        NaN
t=50.0000        NaN        NaN        NaN        NaN
Elapsed time is 5803.389644 seconds.
untitled.jpg
发表于 2014-7-1 18:35 | 显示全部楼层
而且你的是自治系统好像    计算更简单, 不用将非自治变为自治系统

是不是由于我没有将它变为自治系统的原因而导致求解结果无穷大。
发表于 2014-7-1 19:13 | 显示全部楼层
我现在调整了步长和求解时间,结果是下面的两幅图,结果对吗?
  1. [T,Res]=lyapunov(4,@lorenz_ext,@ode45,0,0.001,1,[0.0001 0 0.0001 0],10);
复制代码

为什么当求解时间增大的时候,Lyapunov指数就变成了无穷大?
untitled1.jpg
untitled2.jpg
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-18 23:23 , Processed in 0.092407 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表