2011-07-13 24 views
0

我試圖找到解決這個符號非線性矢量方程:如何求解符號非線性向量方程? (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應該只有一個明確定義的解決方案。

+0

我試着用Maxima解這個方程。沒有運氣。 – robert

回答

1

作爲符號方程,這個有3個變量,所以沒有辦法有一個單一的解決方案。

想象一下,你可以爲b和t選擇任何值。然後在幾乎所有情況下,你都可以解決一個問題,所以你可以得到許多不同的解

如果你想幾何思考,設想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的解決方案。

所以你需要更多的方程來解決這個象徵性的。

+0

由於它是一個3維方程,它實際上是3個線性無關的方程 - 所以在一個不退化的情況下,只有一個解。 只有當P包含在(P0,P1,P2)三角形內(想象t等於0時會發生什麼),才能描述你正在描述的情況。 當然,任何一組方程都可以與具體數據成線性關係,從而使問題受到限制。就像一個射線平面相交:通常只有一個解決方案,除非光線平行於平面 - 那麼就有0個或無限多個解決方案。這是否意味着符號形式是無法解決的? – robert

+0

噢好點...我不知道我在做什麼。但是,你有解決方案 - 只是將其表示爲3個方程組並解決它 - 任何符號方程求解軟件(Matlab,Mathematica,Maple等)都應該能夠做到。我其實不知道Matlab。 –