coeffs returns 系数的顺序很奇怪

coeffs returns coefficients in a very weird order

我有一个这样的多项式:

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

为什么它的 returns 系数是这样排列的?!我希望它要么是从更高的幂到更低的幂(比如在 MATLAB 中),要么是从更低的幂到更高的幂(比如在 Mathematica 中),但是 Maple 做了一些绝对奇怪的事情。我的程序依赖于coeffs提取系数的顺序,所以我不能使用它。

Maple 中有没有一种方法可以以某种合理的顺序提取系数?

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