我正在寻找一种在 Matlab 中操作多元多项式的好方法。这个问题的目的是非常全球化的。目前,我正在 MATLAB 中处理一些多项式矩阵(目前有 2 个变量)。为了简化这种操作,我将每个矩阵拆分为四个新矩阵:
- 一种用于定义系数:
C
- 一个用于定义指数:(
E
见下文) - 一个用于定义第一个变量的幂
X
:MX
- 一个用于定义第二个变量的装腔作势者
Y
:MY
因此,您可以通过这种方式评估多项式矩阵C./h^E.*X.^MX.*Y.^MY
。出于某种原因,有时多项式矩阵的每个分量都可以是一些单项式的和。在这种情况下,我使用了一些 nD 数组(和sum(.,3)
)。
对于我的工作,我还需要定义多项式矩阵关于X
or的导数Y
。使用前面的公式,可以很容易地通过将相关矩阵减去 1MX
或MY
乘以C
右矩阵MX
或来获得导数MY
。
目前这种方法适用于较低的度数,但我还需要乘以一些多项式矩阵,这是这种方法的大问题。为了解决这个问题,我手动编写了完整的矩阵乘积(使用 Mathematica 计算)。
我想将我的代码扩展为更高的度数并更轻松地操作多项式矩阵。因此,如果您有任何想法这样做。
我可以在 Matlab 中使用任何工具箱,但最后我需要有矩阵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
上面的定义)和
D=[
Y/h Y^2/h^2 X/h
X/h Y/h X*Y/h
]