我有一个像这样的多项式:
p := -1.604609130*10^(-11)*z^9+.1111140258*z^8+3.210741142*10^(-11)*z^7-.3955586214*z^6-2.108471910*10^(-11)*z^5+.6692726719*z^4+5.024523477*10^(-12)*z^3-.8174429322*z^2-3.142106870*10^(-13)*z+.9089252367
你看,只是一个带有数字系数的正则多项式。然后我打电话给coeffs
就可以了:
> coeffs(p, z, 't'); t
-11
0.9089252367, -0.3955586214, -2.108471910 10 , 0.6692726719,
-12 -11
5.024523477 10 , -0.8174429322, -1.604609130 10 ,
-11 -13
0.1111140258, 3.210741142 10 , -3.142106870 10
6 5 4 3 2 9 8 7
1, z , z , z , z , z , z , z , z , z
为什么在地球上它会以这样的顺序返回系数?!我希望它能够从较高的功率到较低的功率(如在MATLAB中)或从较低的功率到较高的功率(如在Mathematica中),但Maple做了一些绝对奇怪的事情。我的程序取决于coeffs
提取的系数的顺序,所以我就是不能使用它。
Maple有没有办法以一些合理的顺序提取系数?
答案 0 :(得分:2)
您应该使用CoefficientList
或CoefficientVector
commands。
在该帮助页面中注意有关使用coeffs
的效率相关评论。
这些命令还有一个以相反顺序返回系数的选项。
restart:
p := -1.604609130*10^(-11)*z^9 + .1111140258*z^8 + 3.210741142*10^(-11)*z^7
-.3955586214*z^6 - 2.108471910*10^(-11)*z^5 + .6692726719*z^4
+ 5.024523477*10^(-12)*z^3 - .8174429322*z^2 - 3.142106870*10^(-13)*z
+ .9089252367:
V := PolynomialTools:-CoefficientVector( p, z );
[ 0.9089252367]
[ ]
[ -13]
[-3.142106870 10 ]
[ ]
[ -0.8174429322]
[ ]
[ -12]
[ 5.024523477 10 ]
[ ]
[ 0.6692726719]
[ ]
V := [ -11]
[-2.108471910 10 ]
[ ]
[ -0.3955586214]
[ ]
[ -11]
[ 3.210741142 10 ]
[ ]
[ 0.1111140258]
[ ]
[ -11]
[-1.604609130 10 ]
L := PolynomialTools:-CoefficientList( p, z );
[ -13 -12
L := [0.9089252367, -3.142106870 10 , -0.8174429322, 5.024523477 10 ,
-11 -11
0.6692726719, -2.108471910 10 , -0.3955586214, 3.210741142 10 ,
-11]
0.1111140258, -1.604609130 10 ]