I have two equations with two variables each is a function of another, so I'm using ''fsolve'' for solving two nonlinear equations. but if I have an equation with a specific constant which I want to give it a range (e.g. 1:50)
3 views (last 30 days)
Show older comments
function F = root2d(x,n)
F(1)= x(1)-1+((1-x(2))^n);
F(2)= (x(2)*(33*(1-2*x(1))+32*x(1)*(1-(2*x(1))^3)))-2*(1-(2*x(1)));
%%%%%%%
I want to obtain the values of two variables x(1),x(2) at each value of n which takes a range (i.e. 1--->50).
How can I do that?
1 Comment
Accepted Answer
Stephan
on 3 Sep 2018
Hi,
i guess you are searching for this (rename the outer function or save it as some_stuff_with_n.m in your matlab search path:
function some_stuff_with_n
sol = zeros(50,2);
for k = 1:50
n = k;
sol(k,1:2) = fsolve(@root2d,[1, 1]);
end
function F = root2d(x,~)
F(1) = x(1)-1+((1-x(2))^n);
F(2) = (x(2)*(33*(1-2*x(1))+32*x(1)*(1-(2*x(1))^3)))-2*(1-(2*x(1)));
end
end
This calculates the function root2d 50x for n=1...50, calculates the x(1) and x(2) values corresponding to this n and saves it in the variable you want. Use:
sol = some_stuff_with_n
to call it.
Best regards
Stephan
7 Comments
More Answers (0)
See Also
Categories
Find more on Systems of Nonlinear Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!