How to run function within for loop
    2 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Mirlan Karimov
      
 il 21 Mar 2019
  
    
    
    
    
    Commentato: Mirlan Karimov
      
 il 22 Mar 2019
            The code given below solves the delayed type differential equation. I want to run this code for >10,000 different combinations of  and
 and  . That is,
. That is,  and
 and  ;
; 
 and
 and  . That is,
. That is,  and
 and  ;
; function [sol]=system_simulation
po=1.4; do=8; tau=0.5; xth=0.2; vth=0.2;ksi=0.25; 
option=odeset('RelTol', 1e-4, 'AbsTol', 1e-4);
sol = dde23(@syst,[tau],@hystory,[0 100],option);
figure(1), plot(sol.x,sol.y(1,:));
% --------------------------------------------------------------------------
    function s = hystory(t)
        % Constant history function for inverted pendulum.
        s = [0.4;0.1];
    end
% --------------------------------------------------------------------------
    function xprime = syst(t,x,Z)
        xlag=Z(:,1);
        xprime=zeros(2,1);
        xprime(1)=x(2);
        xprime(2)=x(1)-p*xlag(1)-d*xlag(2);
    end
end
2 Commenti
  Geoff Hayes
      
      
 il 21 Mar 2019
				Mirlan - you want to iterate over po and do but nowhere do you reference them. How should they be used? (It is also doubtful you want to plot the results for all 10000 iterations so please discuss what you want to save/store from each iteration.
Risposta accettata
  Jan
      
      
 il 22 Mar 2019
        
      Modificato: Jan
      
      
 il 22 Mar 2019
  
      I prefer providing parameters by anonymous functions instead of nested function. See Answers: Anonymous function for params . Then:
pv = 0.5:0.1:14;
dv = 0.5:0.1:14;
Result = cell(numel(pv), numel(dv));
ip = 0;
for p = pv
    ip = ip + 1;
    id = 0;
    for d = dv
        sol = dde23(@(t,x,Z) syst(t,x,Z, p, d), tau, ...
                    @hystory, [0, 100], option);
        id  = id + 1;
        Result{ip, id} = sol.y(1,:);
    end
end
Più risposte (0)
Vedere anche
Categorie
				Scopri di più su Delay Differential Equations in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


