🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
本文最初写于 2010-08-08于 sohu 博客,这次博客搬家一起搬到这里来。 版权所有,转载请注明出处。 coeff 函数有两种基本形式,分别是: coeff (expr, x) coeff (expr, x, n)  coeff (expr, x) 计算多项式expr 中x 的系数。coeff (expr, x, n) 则计算多项式expr 中x^n 的系数。 coeff(expr, x^n) 等价于 coeff(expr, x, n). coeff(expr, x, 0) 则返回表达式expr 中不包含x 的部分。 coeff (expr, x) 相当于coeff (expr, x, n)中省略了 n,这时默认n = 1。   下面是几个简单的例子。 coeff (b^3*a^3 + b^2*a^2 + b*a + 1, a^3); ![](https://box.kancloud.cn/2016-01-24_56a4233cb8f1c.PNG) coeff (c[4]*z^4 - c[3]*z^3 - c[2]*z^2 + c[1]*z, z, 3); coeff (c[4]*z^4 - c[3]*z^3 - c[2]*z^2 + c[1]*z, z^3); ![](https://box.kancloud.cn/2016-01-24_56a4233cc72e6.PNG) coeff (a*u + b^2*u^2 + c^3*u^3, b, 0); ![](https://box.kancloud.cn/2016-01-24_56a4233cd322c.PNG) coeff (expr, x, n) 中的 x 既可以是简单变量,也可以是个表达式。比如下面的例子: coeff (h^4 - 2*%pi*h^2 + 1, h, 2); coeff (v[1]^4 - 2*%pi*v[1]^2 + 1, v[1], 2); coeff (sin(1+x)*sin(x) + sin(1+x)^3*sin(x)^3, sin(1+x)^3); coeff ((d - a)^2*(b + c)^3 + (a + b)^4*(c - d), a + b, 4); ![](https://box.kancloud.cn/2016-01-24_56a4233ce0098.PNG) 但是需要注意的是,只有当expr 中显式的包含x^n 项时coeff (expr, x, n) 才会得到期望的结果,coeff (expr, x, n)并不会主动进行factor(expr) 或 expand(expr) 等操作。 因此, coeff (c*(a + b)^3, a); ![](https://box.kancloud.cn/2016-01-24_56a4233cebeff.PNG) 的结果就不难理解了。这种情况需要使用者根据需要自己先行使用expand(expr) 展开表达式。然后再进行coeff (expr, x, n) 运算。 expand (c*(a + b)^3); coeff (%, a); ![](https://box.kancloud.cn/2016-01-24_56a4233d03ff5.PNG) 下面是一个使用factor(expr) 函数的例子: coeff (b^3*c + 3*a*b^2*c + 3*a^2*b*c + a^3*c, (a + b)^3); factor (b^3*c + 3*a*b^2*c + 3*a^2*b*c + a^3*c); coeff (%, (a + b)^3); ![](https://box.kancloud.cn/2016-01-24_56a4233d0f9e8.PNG) coeff (expr, x, n) 函数可以作用在表(List)、矩阵等多种数据结构上,甚至可以作用在等式中。下面是几个例子: coeff ([4*a, -3*a, 2*a], a); coeff (matrix ([a*x, b*x], [-c*x, -d*x]), x); coeff (a*u - b*v = 7*u + 3*v, u); ![](https://box.kancloud.cn/2016-01-24_56a4233d1f37a.PNG)