Matlab で多変量多項式を操作する良い方法を探しています。この質問の目的は非常にグローバルです。現在、MATLAB でいくつかの多項式の行列を操作しています (現在 2 つの変数があります)。この操作を簡単にするために、各マトリックスを 4 つの新しいマトリックスに分割します。
- 係数を定義するためのもの:
C - 指数を定義するためのもの:
E(以下を参照) - 最初の変数のべき乗を定義するためのもの
X:MX - 2 番目の変数のポーズを定義するためのもの
Y:MY
したがって、この方法で多項式行列を評価できますC./h^E.*X.^MX.*Y.^MY。何らかの理由で、多項式行列の各コンポーネントがいくつかの単項式の和になることがあります。この場合、いくつかの nD 配列 (およびsum(.,3)) を使用します。
私の仕事では、Xまたはに関する多項式行列の導関数も定義する必要がありYます。前の定式化を使用すると、導関数は、関連付けられた行列に 1 を減算するか、右の行列MXまたはMYを掛けることによって簡単に取得できます。CMXMY
現在、このアプローチはより低い次数でうまく機能しますが、いくつかの多項式行列を乗算する必要もあり、これがこのアプローチの大きな問題です。この問題に対処するために、完全な行列積を手動で記述します (Mathematica を使用して計算します)。
コードをより高度に拡張し、多項式行列をより簡単に操作したいと考えています。したがって、これを行うアイデアがあれば。
Matlab の任意のツールボックスを使用できますが、最後に行列MX、MY、EおよびC(特定の計算を行うには、この分離された行列が必要です) が必要です。を使用してみましたSymbolic Toolboxが、多項式行列が複雑な場合、これら 4 つの行列を抽出するのは非常に難しいようです。
例:
H=[
1 0 Y/h 10*Y^2/h^2 5X*Y/h^2 0
0 1 -X/h X/h 50*X^2/h^2 60*X*Y/h^2
]
C=[
1 0 1 10 5 0
0 1 -1 1 50 60
]
E=[
0 0 1 2 2 0
0 1 1 1 2 2
]
MX=[
0 0 0 0 1 0
0 0 1 1 2 1
]
MY=[
0 0 1 2 1 0
0 0 0 0 0 1
]
問題: 、、および(上記の定義を使用) およびを計算H*D'して抽出するCEMXMYH
D=[
Y/h Y^2/h^2 X/h
X/h Y/h X*Y/h
]