In solving equation using 'solve', I tried to change the constant part by a small value say 0.1. But, If I change the value by 0.1 the solution is completely different and far away from the exact solution. Is there any solution?

1 view (last 30 days)
syms x y z
a = (sqrt((x-SatPos(1,1))^2+(y-SatPos(1,2))^2+(z-SatPos(1,3))^2)==Dis(1));
b = (sqrt((x-SatPos(2,1))^2+(y-SatPos(2,2))^2+(z-SatPos(2,3))^2)==Dis(2));
c = (sqrt((x-SatPos(3,1))^2+(y-SatPos(3,2))^2+(z-SatPos(3,3))^2)==Dis(3));
d = (sqrt((x-SatPos(4,1))^2+(y-SatPos(4,2))^2+(z-SatPos(4,3))^2)==Dis(4));
sol= solve(a,b,c,d);
If I change the value of Dis(1), Dis(2), Dis(3) and Dis(4) by small amount (say by <0.5), the final value of x,y,z are not nearby the exact solution. Is there any way to solve it?
Your suggestion would guide my project a lot.
Thanks in advance!

Accepted Answer

Walter Roberson
Walter Roberson on 9 Feb 2016
No, you are solving 4 equations in 3 unknowns. The only time there would be a solution would be if the system is over-determined, which is unlikely to be the case in these equations.
  7 Comments
Walter Roberson
Walter Roberson on 10 Feb 2016
Imagine that you have a 1 cm x 1cm by 1 cm block of wood. You can balance it easily on your finger tips. If you make it 1 cm x 1 cm x 2 cm and put that tall side upward, you can probably still handle it quite easily on your finger tips. If you make it 1 cm x 1 cm x 10 cm tall side pointing upwards, then small movements in your fingertips are going to be magnified a fair bit, tiny little tremors ("errors") get magnified, but with a small bit of practice you could probably still do a fair job of keeping it balanced. Now make it 1 cm x 1 cm x 90 cm tall side upwards. Tiny tremors are going to cause it to swing wildly. A tremor as big as 1/10th cm is going to have a major effect on the position of the top of the block.
Is there a way different way of balancing the block that would allow a tremor as large as 1/10th cm to barely move the top of the block? Obviously not. The "solution" to keep the block balanced is to find a way to reduce your tremors (shaking) considerably.
The errors in your input distances correspond to the "tremors" I describe for the balancing task. If you are not able to measure your inputs to within 0.01 then your output is going to change by more you are willing to accept. That is not the fault of the equations or the technique used to solve them: it is the fault of your expectations about the calculations you are doing.
Prajan Pradhan
Prajan Pradhan on 10 Feb 2016
Edited: Prajan Pradhan on 10 Feb 2016
Thank you very much for your suggestion. I will keep that in my mind and try to have lower shifts as possible.
But, the actual problem is the shifts I am making is too low. Actually I am trying to solve GPS positioning problem.
I will try to look for other alternatives.
Anyways thanks for your time and suggestion.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!