2012-03-18 8 views
1

方程式系がMatlabで空でない解集合を持つことを検証しようとしています。これはGroebner基底を計算することによって行うことができ、それが1に等しい場合、システムに空の解が設定されていることがわかります。 Matlabでこれを行うことはできますか?Matlabで方程式系のGroebner基底を計算するには

答えて

2

多項式のセットでベクトルを構築する必要があります。これは、フォームの文字列でなければならないf1, f2, ..., fnは例えばpolynomiasある

f1 , f2, ..., fn 

f1=x^2-1,f2=y*x^3-x-2。これは文字列でなければなりません。あなたは多項式のセル配列からそれを構築することができます。

polyRing = strcat(polyCell{:}); 
polyRing(end)=[]; 

polyCell={f1, f2, ..., fn}その後は、辞書順で

groebnerBasis=evalin(symengine,['groebner::gbasis([' polyRing '])']); 

または評価するとのMuPADで適切な関数の呼び出しにする必要があります。

groebnerBasis=evalin(symengine,['groebner::gbasis([' polyRing '],LexOrder)']); 

それです。 Mupadを直接使うこともできますが、ドキュメントを確認することができます。

+1

これはmupadで実行されますか?私はそれをインストールしていない。 –

+0

MupadはMatlabのデフォルトシンボリックエンジンで、Matlabとともにインストールされます。 –

+0

ですが、変数の順序をどのように定義しますか。 x> y> zである。そして/または 'feval'関数をどのように使うことができますか? – Tanasis