fsolve in a for loop
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am using fsolve to solve a system of nonlinear equations. The constants in the equations are design variables. I would like to use a for loop to vary one of the design parameters through a range and then save the different outputs (I am only interested in one of the unknowns for this part) into an array. I have attached the code. When I run it, only the first value of the parameter I would like to change is ran through fsolve.
Any help is appreciated. Im sure theres plenty of places my code could improve, but this is my question.
0 commentaires
Réponses (1)
Star Strider
le 1 Nov 2016
Modifié(e) : Star Strider
le 1 Nov 2016
The colon operator increments by 1 by default, so this line:
for t_CP = .01:.1
will execute only once because after the first iteration the terminating condition, 0.1, is satisfied.
You need to do something like this:
% Solve non-linear equations by iteration
t_CP = .01 : 0.01 : 0.1;
for k1 = 1:length(t_CP)
... DO SOMETHING HERE ...
end
I am not certain what you want to do (I’m actually lost) so I’ve no idea what you’re looping through.
This might be an option:
% Solve non-linear equations by iteration
x0=[250 250 250 250 250 250 250 250 250 250 250 250 250 250 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 250 250 250 250 250 250 250 250 250 250 250 250 250 250]; %guesses for variables
for t_CP = 1:length(x0)
options=optimset('Display','off');
fsol = fsolve(@equation_function_model_2,x0(k1),options)
X(k1) = fsol(1)
end
This is just a guess.
2 commentaires
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!