solve the question ( fsolve , vpasolve)

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 件のコメント

onur karakurt
onur karakurt 2021 年 5 月 22 日
what is the correct y values
Torsten
Torsten 2021 年 5 月 23 日
編集済み: Torsten 2021 年 5 月 23 日
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 2021 年 5 月 23 日
編集済み: Torsten 2021 年 5 月 23 日
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.

サインインしてコメントする。

回答 (1 件)

John D'Errico
John D'Errico 2021 年 5 月 22 日

0 投票

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 件のコメント

onur karakurt
onur karakurt 2021 年 5 月 22 日
solve function is not sufficient to answer the question, ı tried this fsolve function. How can I get correct y values.
onur karakurt
onur karakurt 2021 年 5 月 22 日
what is the correct function to solve the equation

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeSymbolic Math Toolbox についてさらに検索

製品

リリース

R2020a

質問済み:

2021 年 5 月 22 日

編集済み:

2021 年 5 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by