首页 > 解决方案 > 求解 6 个不工作的变量的 6 个非线性方程

问题描述

我正在尝试为 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]

标签: wolfram-mathematicaalgebraequation-solving

解决方案


不是答案,但评论太长了。)

xk, yk, zk定义点Pk,然后由三角形不等式的相等情况exp4意味着三个点P1, P2, P3共线,P2介于P1和之间P3

这等价于P2 = a P1 + (1-a) P3for some a ∈ [0,1],并且在这种情况下exp5exp6遵循,所以最后两个等式是多余的。

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

这是一个有 4 个未知数的 3 个方程组{x1, y1, x3, y3}。在一般情况下,它可以没有、几个或无限多个解,尽管计算起来不一定很漂亮。


推荐阅读