![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/272359/image.png)
Solve equations in a loop with fsolve
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi there,
I have two problems solving an equation:
Problem 1:
The equation below is to be solved component by component and the results are to be stored line by line in the vector F1. So far so good, how do I teach the loop to use the correct column for the calculations (e.g. f1 (f ,:) or f8 (f ,:) without integrating the function into fsolve?
tau = 0.1
f4 = [3; 2; 6; 8]
f8 = [2; 6; 7; 3]
eq = @(s) s*tau-(0.1.*s^2+3.54.*s-9.53).*f4.^2-f8;
for f = 1:1:length (f4)
F1 (f,:) = fsolve (eq, 0)
end
Problem 2:
The eq described above actually consists of two equations:
eq1 = 0.01*s.^2+3.54.*s-y*9.53
eq2 = y.*f4.^2-f8-s.*tau
It would be desirable to be able to insert both equations separately. Here is the variable y, which disappears after summarizing. Is there a way to combine this with the "problem" above?
Thanks a lot!
2 commentaires
Réponse acceptée
Matt J
le 18 Fév 2020
Modifié(e) : Matt J
le 18 Fév 2020
Your equations are quadratic and therefore generally have two solutions, s. Fsolve cannot find them both for you. Why aren't you using roots()? Regardless, here are the code changes pertaining to your question:
Problem 1
tau = 0.1
f4 = [3; 2; 6; 8]
f8 = [2; 6; 7; 3]
for i = 1:1:length (f4)
eq = @(s) s*tau-(0.1.*s^2+3.54.*s-9.53).*f4(i).^2-f8(i);
F1 (i,:) = fsolve (eq, 0);
end
Problem 2
for i = 1:1:length (f4)
eq1 = @(sy) [0.01*sy(1).^2+3.54.*sy(1)-sy(2)*9.53 ; ...
sy(2).*f4(i).^2-f8(i)-sy(1).*tau];
F2 (i,:) = fsolve (eq, [0,0]);
end
4 commentaires
Plus de réponses (1)
darova
le 18 Fév 2020
This is the correct form
tau = 0.1
f4 = [3; 2; 6; 8]
f8 = [2; 6; 7; 3]
eq = @(s,f4,f8) s*tau-(0.1.*s^2+3.54.*s-9.53).*f4.^2-f8;
for f = 1:1:length (f4)
F1 (f,:) = fsolve (@(s)eq(s,f4(f),f8(f), 0);
end
3 commentaires
Voir également
Catégories
En savoir plus sur Quadratic Programming and Cone Programming 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!