我正在寻找一种在Matlab中操纵多元多项式的好方法。这个问题的目的非常全球化。目前,我在MATLAB中操作一些多项式矩阵(目前有2个变量)。为简化此操作,我将每个矩阵拆分为四个新矩阵:
C
E
(见下文)X
的力量:MX
Y
的装腔作势:MY
因此,您可以通过这种方式评估多项式矩阵C./h^E.*X.^MX.*Y.^MY
。由于某种原因,有时多项式矩阵的每个分量可以是一些单项式的和。在这种情况下,我使用了一些nD数组(和sum(.,3)
)。
对于我的工作,我还需要定义关于X
或Y
的多项式矩阵的导数。使用先前的公式,可以通过将1减去相关矩阵MX
或MY
并将C
乘以右矩阵MX
或{{1 }}。
目前这种方法适用于较低的度数,但我还需要乘以一些多项式矩阵,这是这种方法的一个大问题。为了解决这个问题,我手动编写了完整的矩阵产品(使用Mathematica计算)。
我希望扩展我的代码以获得更高的度数并更容易地操作多项式矩阵。所以,如果你有任何想法这样做。
我可以在Matlab中使用任何工具箱,但最后我需要有矩阵MY
,MX
,MY
和E
(我需要这个分隔的矩阵做一些特定的计算)。我尝试使用C
,但是当多项式矩阵复杂时,似乎很难提取这四个矩阵。
示例:
Symbolic Toolbox
问题:计算 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'
,C
,E
和MX
(上面定义MY
)和
H
答案 0 :(得分:1)
最后我找到了一个解决方案。不幸的是(或不是)我使用Symbolic Toolbox
。在我的例子中,我考虑7个符号变量,多项式的变量是X
和Y
。 matlab变量poly
是struct
,其中包含字段p
。 p
是多项式的symfun
矩阵。
对于输出参数,C
,E
,MX
和MY
分别包含在polyOut.mult
,polyOut.exph
,{{1}中}和polyOut.expoX
。
polyOut.expoY