我正在尝试求解由6个变量组成的6个非线性方程组的系统,但笔记本计算机连续运行了2天。我究竟做错了什么? (附带笔记本)
exp1 = ExpandAll[(xd1 - x1)^2 + (yd1 - y1)^2 + z1^2 == h1^2];
exp2 = ExpandAll[(xd2 - x2)^2 + (yd2 - y2)^2 + z2^2 == h2^2];
exp3 = ExpandAll[(xd3 - x3)^2 + (yd3 - y3)^2 + z3^2 == h3^2];
exp4 = ExpandAll[((x1 - x2)^2 + (y1 - y2)^2 + (z1 - z2)^2)^(1/2) + ((x2 - x3)^2 + (y2 -y3)^2 + (z2 - z3)^2)^(1/2) == ((x1 - x3)^2 + (y1 - y3)^2 + (z1 - z3)^2)^(1/2)];
exp5 = ExpandAll[((z2 - z1)/(((x1 - x2)^2 + (y1 - y2)^2 + (z1 - z2)^2)^(1/2))) == ((z3 - z2)/(((x2 - x3)^2 + (y2 - y3)^2 + (z2 - z3)^2)^(1/2)))];
exp6 = ExpandAll[((z3 - z1)/(((x1 - x3)^2 + (y1 - y3)^2 + (z1 - z3)^2)^(1/2))) == ((z3 - z2)/(((x2 - x3)^2 + (y2 - y3)^2 + (z2 - z3)^2)^(1/2)))];
NSolve[{exp1, exp2, exp3, exp4, exp5, exp6}, {x1, y1, x2, y2, x3, y3}, Reals]
(不是答案,但是评论太久了。]。]
让xk, yk, zk
定义点Pk
,然后通过等式三角形不等式exp4
意味着三个点P1, P2, P3
是共线的,P2
在P1
和P3
之间。
对于某些P2 = a P1 + (1-a) P3
,这等效于a ∈ [0,1]
,在这种情况下,exp5
和exp6
紧随其后,因此最后两个等式是多余的。
然后,比率a
可以从zk
坐标确定为a = (z3 - z2) / (z3 - z1)
。当计算的a
落在允许的间隔[0,1]
内时,其余等式为:
(xd1 - x1)^2 + (yd1 - y1)^2 + z1^2 == h1^2 (xd2 - a x1 - (1-a) x3)^2 + (yd2 - a y1 - (1-a) y3)^2 + z2^2 == h2^2 (xd3 - x3)^2 + (yd3 - y3)^2 + z3^2 == h3^2
这是一个由3个方程式组成的系统,其中有4个未知数
{x1, y1, x3, y3}
。在一般情况下,它可以不具有任何,多个或无限多个解决方案,尽管不一定要精确地计算。