最小多项式的系数怎么走吗?

2视图(30天)
亲爱的所有,
我必须找到所有的矩阵的最小多项式的系数存储在一个三维数组。我曾经尝试过通过MuPAD但我得到整个多项式,如果有人知道如何提取只能从它的系数(即。从多项式MuPAD),然后将这些数据存储在一个向量在matlab,或如果任何函数只在matlab可以给最小多项式的系数。
这是mupad的代码:
nb = mupad;
= Dom::矩阵(Dom:理性的)([[1,1,1],[1、2、1],[0,1,3]]);
删除x: linalg::冲走(A, x)
这使给定矩阵的最小多项式在“x”。(我要做三维数组的矩阵)。
如果有人知道一些其他的方法也会很有帮助。
需要紧急帮助! !
谢谢你,Palash。

接受的答案

Kai Gehrs
Kai Gehrs 2011年6月22日
嗨Palash,
我认为下面的MATLAB函数可以做这项工作对于你的问题:
函数p =冲走(A)
p = evalin (symengine [“地图(poly2list (linalg::冲走('char(信谊(A))”,x)), c - > c [1]) ']);
结束
如果你在MATLAB添加到您的路径,然后通过:你可以称之为
> > = [1 1 1;1 2 1;0 1 3];%最小多项式是x ^ 3 + 4 * x ^ 2 + x - 1
> >冲走(A)
ans =
(1,4,1,1)
希望这个有帮助。内部MuPAD函数poly2list多项式转换为一个嵌套列表包含信息多项式的系数表示。
最好的问候,
——凯

更多的答案(3)


Palash
Palash 2011年6月22日
你好沃尔特,
如果我没有错,那么这个函数,我们可以得到一个给定的多项式的系数,而不是“最小多项式”。
我想把我的再次questn:我必须找到Mtalb最小多项式的系数,或存储系数向量在Matlab。
谢谢,
Palash Goyal。
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2011年6月22日
evalin (symengine) linalg::冲走操作,该操作将返回MATLAB的符号的结果。sym2poly()这一结果在MATLAB的水平。
没有MATLAB函数,这直接计算。

登录置评。


Pantelis Sopasakis
Pantelis Sopasakis 2011年11月9日
只是我两美分…Kai Gehrs发布的代码不工作如果返回的多项式有一些零系数。尝试例如矩阵:
一个= 1 (3、3);
输出将
3 [1]
而不是
(1 3 0)
一个辅助功能,负责可以发现在这种情况下 https://github.com/alphaville/eat/blob/master/zz_minPolSymb.m

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!