plotting maximal lyapunov exponent using ode45
    8 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
 i m in need to plot the lyapunov exponent 'f vs lyapunov,' but i am     unable to run the program due to some error in the program. can anyone  pls help me to get the plot and any suggestions to make it perfect.
with kind regards
matlab codes:
 clc
 global f
 for f=0.0:0.1:30
 f
 initialx(1)=0.0100;initialx(2)=0.01;
 lyap(1)=.01;
 [t,x]=ode45('loreeneq',0:1:500,[initialx(1),initialx(2)]);
 lyap1=lyap([t,x(:,1)]);
 plot(f,lyap1,'r');
 hold on
 drawnow
 end
 xlabel ('f');ylabel('lyap')
--------------------------------------------------------------------------
 function dxdt=loreeneq(t,x) 
 global r
 dxdt1=10*(x(2)-x(1));
 dxdt2=(r*x(1))-x(2)-(x(1)*x(3));
 dxdt3=(x(1)*x(2))-(2.67*x(3));
 dxdt=[dxdt1;dxdt2;dxdt3];
2 commentaires
  Walter Roberson
      
      
 le 9 Jan 2012
				It is faster for us if you show us the error message and the line it is complaining about. 
Réponse acceptée
  Walter Roberson
      
      
 le 9 Jan 2012
        In the top portion you have "global f", but you do not use "f" in the other portion. In the bottom portion you have "global r" but you do not use "r" in the other portion.
"global" shares by variable name. There is not just one global variable available. If you want to use the value of f in the bottom routine and you want to pass it via a global then you need to use "global f" in the bottom routine and reference f there instead of r.
If that is what you are trying to do then there are better approaches, which the ode45 documentation links to when it says to see the documentation on "parameterizing functions"
0 commentaires
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Matrix Computations dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

