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)
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Ahmed Ibrahim
el 3 de Sept. de 2018
Comentada: Ahmed Ibrahim
el 4 de Sept. de 2018
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 comentario
Respuesta aceptada
Stephan
el 3 de Sept. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Equations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!