solve the question ( fsolve , vpasolve)

8 vues (au cours des 30 derniers jours)
onur karakurt
onur karakurt le 22 Mai 2021
Modifié(e) : Torsten le 23 Mai 2021
is there any other way to solve the equation below.
clear all;clc;
a=0.5;
x=linspace(-2*a,2*a,100);
eqn=@(x,y,a)(y.^2./(x.^2+y.^2)).*(1-2.*(1-(x./(2*a)).^2-(y./(2*a)).^2))-(y./a).^2;
for k = 1:numel(x)
options = optimoptions('fsolve','Display','iter');
yv(k,:) = fsolve(@(y)eqn(x(k),y,a), 1, options);
end
plot(x,yv)
when ı change initial value for iteration, answers and graph is changing.
  3 commentaires
Torsten
Torsten le 23 Mai 2021
Modifié(e) : Torsten le 23 Mai 2021
If you multiply your equation by x^2+y^2, you see that you try to solve a quadratic equation in y^2. This equation might have 0, 1, 2 or 4 real solutions. Use symbolic computation using "solve" instead of "fsolve" to sort out the solution that makes sense for your problem.
Torsten
Torsten le 23 Mai 2021
Modifié(e) : Torsten le 23 Mai 2021
Solving your equation by hand gives y=0 as the only solution for all values of a and x different from 0. For x=0, no solution for y exists.

Connectez-vous pour commenter.

Réponses (1)

John D'Errico
John D'Errico le 22 Mai 2021
I think you do not understand optimization. When you change the initial value, it is EXPECTED that the solver MAY converge to a different solution.
  2 commentaires
onur karakurt
onur karakurt le 22 Mai 2021
solve function is not sufficient to answer the question, ı tried this fsolve function. How can I get correct y values.
onur karakurt
onur karakurt le 22 Mai 2021
what is the correct function to solve the equation

Connectez-vous pour commenter.

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by