0

我试图找到这个符号非线性向量方程的解决方案:

P = a*(V0*t+P0) + b*(V1*t+P1) + (1-a-b)*(V2*t+P2) for a, b and t

其中 P, V0, V1, V2, P0, P1, P2 是已知的 3d 向量。

我试图在 Matlab 中这样做:

P = sym('P', [3,1])
P0 = sym('P0', [3,1])
P1 = sym('P1', [3,1])
P2 = sym('P2', [3,1])
V0 = sym('V0', [3,1])
V1 = sym('V1', [3,1])
V2 = sym('V2', [3,1])
syms a b t
F = a*(V0*t+P0) + b*(V1*t+P1) + (1-a-b)*(V2*t+P2) - P
solve(F,a,b,t)

我明白了

Warning: Explicit solution could not be found.

我开始不知道如何解决它,这不是我尝试的第一个数学包。

有趣的是,这个方程有一个简单的几何解释。如果您想象点 P0-P2 是三角形的顶点,V0-V2 大致是顶点法线并且点 P 位于三角形上方,那么对于包含点 P 的三角形满足该等式,它的三个顶点位于三条射线(V *t+P),共享相同的参数 t 值。a、b 和 (1-ab) 成为点 P 的重心坐标。

因此,如果情况不是退化的,那么 t 应该只有一个定义明确的解。

4

1 回答 1

1

作为符号方程,这个方程有 3 个变量,所以没有办法有一个单一的解决方案。

想象一下,您为 b 和 t 选择任何值。然后在几乎所有情况下,您都可以解决 a,因此您会得到许多不同的解决方案。

如果你想从几何角度思考,想象 V0 和 V1 指向 (P0,P1,P2) 三角形的上半空间,但 V2 指向下半空间。V0,V1 也垂直于三角形平面,V0 和 V1 是单位向量。现在,如果您有一个固定在点 P 的平面,它与射线 P0+t*V0 和 P1+t*V1 在三角形上方相同的距离处相交,您可以移动该平面,使其保持固定在 P并以相同的距离与两条射线相交。只需选择 V2 以使与该平面的交点以相同的速度移动,因此它将对应于相同的 t,从而为您提供无限多的解决方案。

另一个例子是如果所有 V0-V2 都与三角形 P0,P1,P2 共线。然后你很容易得到任何 t 的解决方案。

所以你需要更多的方程来象征性地解决这个问题。

于 2011-07-13T15:22:48.883 回答