How to run function within for loop

1 visualización (últimos 30 días)
Mirlan Karimov
Mirlan Karimov el 21 de Mzo. de 2019
Comentada: Mirlan Karimov el 22 de Mzo. de 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 ;
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 comentarios
Geoff Hayes
Geoff Hayes el 21 de Mzo. de 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.
Mirlan Karimov
Mirlan Karimov el 22 de Mzo. de 2019
No plotting, I just want to store the data of sol.y(1,:) at each time iteration. Oh sorry it is p and d. There are some additional steps that turn po and do to p and d respectively depending on conditions but it has nothing to do now so I removed them.

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 22 de Mzo. de 2019
Editada: Jan el 22 de Mzo. de 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

Más respuestas (0)

Categorías

Más información sobre Delay Differential Equations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by