Asked by Denis Stanescu
on 27 Feb 2018

I try to solve a non=linear equtions system, but it doesn't work. I missed something?

F=@(x)[sqrt((x(1)-5)^2 + x(2)^2 + x(3)^2 )-sqrt( x(1)^2 + (x(2)+10)^2 + x(3)^2) +0.34;

sqrt(x(1)^2 + (x(2)+10)^2 + x(3)^2 )-sqrt( x(1)^2 + (x(2)-10)^2 + x(3)^2);

sqrt( x(1)^2 + (x(2)-10)^2 + x(3)^2 )-sqrt( x(1)^2 + x(2)^2 + x(3)^2)];

x0=[50;0;0];

fsolve(F,x0)

Answer by Alan Weiss
on 27 Feb 2018

You have an errant space just before "+0.34" that is confusing the parser. Try this:

F=@(x)[sqrt((x(1)-5)^2 + x(2)^2 + x(3)^2 )-sqrt( x(1)^2 + (x(2)+10)^2 + x(3)^2)+0.34;

sqrt(x(1)^2 + (x(2)+10)^2 + x(3)^2 )-sqrt( x(1)^2 + (x(2)-10)^2 + x(3)^2);

sqrt( x(1)^2 + (x(2)-10)^2 + x(3)^2 )-sqrt( x(1)^2 + x(2)^2 + x(3)^2)];

x0=[50;0;0];

fsolve(F,x0)

You might need to include some options or a better start point for a good answer.

Alan Weiss

MATLAB mathematical toolbox documentation

Denis Stanescu
on 28 Feb 2018

Walter Roberson
on 1 Mar 2018

Sign in to comment.

Answer by Roger Stafford
on 28 Feb 2018

To solve these you would have to satisfy both

x(1)^2 + (x(2)+10)^2 + x(3)^2 = x(1)^2 + (x(2)-10)^2 + x(3)^2

x(1)^2 + (x(2)-10)^2 + x(3)^2 = x(1)^2 + x(2)^2 + x(3)^2)

and since the x(1) and x(3) terms cancel would require simply

(x(2)+10)^2 = (x(2)-10)^2

(x(2)-10)^2 = x(2)^2

The first of these requires that x(2) = 0 while the second requires that x(2) = 5. These are mutually incompatible and therefore there are no simultaneous solutions to your equations. That is why "it doesn't work".

Denis Stanescu
on 28 Feb 2018

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.