How to solve a system of equations?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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)
0 Commenti
Risposte (2)
Alan Weiss
il 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
2 Commenti
Walter Roberson
il 1 Mar 2018
They are the value of the vector x at the time that fsolve figured out that the system could not be solved.
Roger Stafford
il 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".
Vedere anche
Categorie
Scopri di più su Systems of Nonlinear Equations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!