【发布时间】:2011-10-04 13:52:35
【问题描述】:
我正在尝试解决这个符号非线性向量方程:
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-a-b)成为点P的重心坐标。
因此,如果情况不是退化的,那么 t 应该只有一个定义明确的解。
【问题讨论】:
-
我也尝试用 Maxima 求解方程。没有运气。