problem solving nonlinear equation system with fsolve

3 ビュー (過去 30 日間)
Peter Uwsen
Peter Uwsen 2019 年 3 月 4 日
回答済み: Alex Sha 2019 年 4 月 22 日
Hi,
I'm trying to solve the following equation system
P = 1;
lambda = 1;
Maugis = @(X) [lambda*X(1)^2/2*(sqrt(X(3)^2-1)+(X(3)^2-2)*atan(sqrt(X(3)^2-1)))
+4/3*lambda^2*X(1)*(sqrt(X(3)^2-1)*atan(sqrt(X(3)^2-1))-X(3)+1)-1;
X(1)^2-4/3*X(1)*lambda*sqrt(X(3)^2-1)-X(2);
X(1)^3-lambda*X(1)^2*(sqrt(X(3)^2-1)+X(3)^2*atan(sqrt(X(3)^2-1)))-P];
X0 = [1;1;1];
sol = fsolve(Maugis,X0);
but did not succeed using fsolve:
Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems; using Levenberg-Marquardt algorithm
instead.
> In fsolve (line 298)
In solve_equs (line 8)
No solution found.
fsolve stopped because the last step was ineffective. However, the vector of function
values is not near zero, as measured by the default value of the function tolerance.
<stopping criteria details>
I'm happy for any help!

採用された回答

Torsten
Torsten 2019 年 3 月 4 日
Try
Maugis = @(X) [lambda*X(1)^2/2*(sqrt(X(3)^2-1)+(X(3)^2-2)*atan(sqrt(X(3)^2-1)))+4/3*lambda^2*X(1)*(sqrt(X(3)^2-1)*atan(sqrt(X(3)^2-1))-X(3)+1)-1;...
X(1)^2-4/3*X(1)*lambda*sqrt(X(3)^2-1)-X(2);...
X(1)^3-lambda*X(1)^2*(sqrt(X(3)^2-1)+X(3)^2*atan(sqrt(X(3)^2-1)))-P];
Best wishes
Torsten.
  1 件のコメント
Peter Uwsen
Peter Uwsen 2019 年 3 月 4 日
Simple solution indeed..
Thanks a lot!

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

その他の回答 (1 件)

Alex Sha
Alex Sha 2019 年 4 月 22 日
here are solutions:
x1: 1.80929329243556
x2: 1.67586180846898
x3: 1.19942316545143

カテゴリ

Help Center および File ExchangeSystems of Nonlinear Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by