MATLAB: Problem solving nonlinear equation system with fsolve

atanfsolvenonlinear

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!

Best Answer

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.