我試圖找到解決這個符號非線性矢量方程:如何求解符號非線性向量方程? (Matlab或其他)
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是已知的三維向量。
我試圖做的是在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解這個方程。沒有運氣。 – robert