coeffs以非常奇怪的顺序返回系数

时间:2015-04-05 18:43:08

标签: maple

我有一个像这样的多项式:

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有没有办法以一些合理的顺序提取系数?

1 个答案:

答案 0 :(得分:2)

您应该使用CoefficientListCoefficientVector 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   ]