How to use loops for inputting initial parameter values while solving system of non linear equations?
Show older comments
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 Comments
darova
on 20 Nov 2019
Do you have values for 1000 guesses?
harsha yegireddi
on 20 Nov 2019
Edited: harsha yegireddi
on 20 Nov 2019
darova
on 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
on 20 Nov 2019
harsha yegireddi
on 21 Nov 2019
darova
on 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
on 21 Nov 2019
harsha yegireddi
on 21 Nov 2019
Answers (0)
Categories
Find more on Solver Outputs and Iterative Display in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!