使用wxMaxima来计算多项式

假设我定义了一些函数,然后对变量进行更改并展开,如下所示:

declare(a,real); declare(k,real); declare(z,real);

myFun(a,k,z):=(1-1/2*((k-a)/2)^2)*z - 1 + 1/2* ((k+3*a)/2)^2;

myFun(a,k,z),simp,a=x0+x1*k;

expand(%);

我现在要做的是获得k中的多项式,即用一个命令收集k的每个幂的项,以便它显示如下:

(...)k^2 + (...)k + (...)

最佳答案

declare(a,real); declare(k,real); declare(z,real);
myFun(a,k,z):=(1-1/2*((k-a)/2)^2)*z - 1 + 1/2* ((k+3*a)/2)^2;
myFun(a,k,z),simp,a=x0+x1*k;
P: expand(%);
rat(P, k);

                2                     2              2
(%o7)/R/ - (((x1  - 2 x1 + 1) z - 9 x1  - 6 x1 - 1) k
                                                        2              2
        + ((2 x0 x1 - 2 x0) z - 18 x0 x1 - 6 x0) k + (x0  - 8) z - 9 x0  + 8)/8

coeff返回每个系数

coeff(P, k^2);
                         2                    2
                       x1  z   x1 z   z   9 x1    3 x1   1
(%o8)                - ----- + ---- - - + ----- + ---- + -
                         8      4     8     8      4     8
点赞