Loop in solve system of nonlinear equations

17 views (last 30 days)
Krystian Fornal
Krystian Fornal on 17 Oct 2019
Commented: Krystian Fornal on 17 Oct 2019
I have a problem with loop "for" in Solve system of nonlinear equations. I can solve nonlinear equations like this:
R=68.4043297;
V = [teta1; teta2];
F = @(V) [R-(37.5*sqrt(3))+(75*cos(V(1)))-(75*cos(V(2))); 97.5+37.5+(75*sin(V(1))) - (54.4818+75*sin(V(2)))];
XYA= fsolve(F, InitialGuess, Options);
but I have to change parametr R.
R=45:0.1:95
How do it?

Answers (1)

Wiley Mosley
Wiley Mosley on 17 Oct 2019
By calling the index of R in the for loop you should be able to save the XYA in an array so that you have the solutions for all values of R.
R=45:0.1:95;
for ii = 1:numel(R);
V = [teta1; teta2];
F = @(V) [R(ii)-(37.5*sqrt(3))+(75*cos(V(1)))-(75*cos(V(2))); 97.5+37.5+(75*sin(V(1))) - (54.4818+75*sin(V(2)))];
XYA(ii)= fsolve(F, InitialGuess, Options);
end
  2 Comments
Krystian Fornal
Krystian Fornal on 17 Oct 2019
But now i've got a solution:
R=linspace(45,95,11);
for i=1:11
V = [teta1; teta2];
F = @(V) [R(1,i)-(37.5*sqrt(3))+(75*cos(V(1)))-(75*cos(V(2))); 97.5+37.5+(75*sin(V(1))) - (54.4818+75*sin(V(2)))];
InitialGuess = [2;2];
Options=optimset('Display','off');
XY(2:3,i)= fsolve(F, InitialGuess, Options);
XY(1,i)=R(1,i);
end

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!

Translated by