How to run function within for loop
1 visualizzazione (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
. That is,
and
;
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/209715/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/209716/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/209717/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/209718/image.png)
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!