How to use loops for inputting initial parameter values while solving system of non linear equations?
Afficher commentaires plus anciens
Hello everyone,
I have a system of 4 non-linear equations with 4 unknowns. I am able to solve the equations using the following code:
function solveeqs()
guess=[sqrt(0.5),0,0,sqrt(0.5)];
[result,fval,exit,output] = fsolve(@eqns,guess);
result
fval
eqns(guess)
output
end
function fcns = eqns(z)
a=z(1);
b=z(2);
c=z(3);
d=z(4);
fcns(1)=a^2+b^2-0.5023;
fcns(2)=c^2+d^2-0.4977;
fcns(3)=a*c+b*d+0.06585;
fcns(4)=b*c-a*d+0.49565;
end
But i need to solve the equation multiple times(1000) using different guess values and different function values. I need to create a loop (using lists) for doing so. Can you suggest a way to include loops for guess values and function values( fcns(1),fcns(2),fcns(3),fcns(4)) in above code? Thanks in advance.
8 commentaires
darova
le 20 Nov 2019
Do you have values for 1000 guesses?
harsha yegireddi
le 20 Nov 2019
Modifié(e) : harsha yegireddi
le 20 Nov 2019
darova
le 20 Nov 2019
Then just
for i = 1:1000
guess = [a(i) b(i) c(i) d(i)]];
[result,fval,exit,output] = fsolve(@eqns,guess);
end
harsha yegireddi
le 20 Nov 2019
harsha yegireddi
le 21 Nov 2019
darova
le 21 Nov 2019
- But function @eqns is not taking 'i' as input
You can pass it:
[result,fval,exit,output] = fsolve(@(x)eqns(x,i),guess);
%% ...
function fcns = eqns(z,i)
harsha yegireddi
le 21 Nov 2019
harsha yegireddi
le 21 Nov 2019
Réponses (0)
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
