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 回表示 (過去 30 日間)
古いコメントを表示
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!
0 件のコメント
採用された回答
Walter Roberson
2016 年 2 月 9 日
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 件のコメント
Walter Roberson
2016 年 2 月 10 日
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.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Special Values についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!