2011-07-13 3 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が知られている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を含む三角形に対して式は満たされます。 * t + P)、同じパラメータt値を共有する。 a、b、(1-a-b)は点Pの重心座標となる。

したがって、ケースが縮退していない場合、

+0

私はMaximaでも式を解いてみました。運がない。 – robert

答えて

1

記号式として、この変数には3つの変数があるため、1つの解を持つ方法はありません。

たとえば、bとtの値を選択するとします。ほとんどの場合、aのために解くことができるので、多くの異なる解を得ることができます。

幾何学的に考えたければ、(P0、P1、P2)の三角形に関してはV0とV1が上半分の点を指しているが、下の方にはV2の点があると考えてください。また、V0、V1は三角形の平面に垂直であり、V0およびV1は単位ベクトルである。 ここで、P0 + t * V0とP1 + t * V1を三角の上の同じ距離で交差する点Pに固定された平面がある場合、その平面を固定したまま移動できますPと同じ距離で2つの光線を交差させる。この平面との交点が同じ速度で動くような方法でV2を選んだのは唯一の問題なので、同じtに対応し、無限に多くの解を与えます。

もう1つの例は、すべてのV0-V2が三角形P0、P1、P2と同一直線上にある場合です。次に、あなたは自明に任意のtの解を得る。

これを象徴的に解決するには、もっと多くの方程式が必要です。

+0

3次元方程式なので、実際には3つの線形独立の方程式です - 縮退しない場合にはちょうど1つの解があります。 Pが(P0、P1、P2)の三角形の中に含まれている場合にのみ記述できます(tが0のときの状況を想像してください)。 もちろん、方程式の任意のセットは、制約の厳しい問題を特定のデータに線形依存することがあります。レイ・プレーンの交差点と同じように、通常、光線が平面に平行でない限り、正確に1つの解決策があります - 0または無限に多くの解があります。それは象徴的な形が解決できないことを意味しますか? – robert

+0

オハイオ州よい点...私は私が何を夢見ていたのか分かりません。しかし、あなたは解を持っています。これを3つの方程式の系として表現し、解くことができます。記号的な方程式解法(Matlab、Mathematica、Mapleなど)のソフトウェアはそれを実行できるはずです。私は実際にMatlabを知らない。 –

関連する問題