在Mathematica中,如何切断多项式中的高阶项?

时间:2014-02-02 22:20:20

标签: wolfram-mathematica

例如,我有一个多项式y = a_0 + a_1 x + ..... + a_50 x ^ 50。因为我知道高阶项对y的评估产生的影响可以忽略不计,所以我想切断它们并得到像y = a_0 + a_1 x + ..... + a_10 x ^ 10这样的前11个术语。我怎么能意识到这一点?

我提前感谢你们。

3 个答案:

答案 0 :(得分:5)

In[1]:= y = a0 + a1*x + a2*x^2 + a3*x^3 + a4*x^4;
y /. x^b_ /; b >= 3 -> 0

Out[2]= a0 + a1 x + a2 x^2

答案 1 :(得分:2)

数学上合适的方法..

  Series[ a0 + a1*x + a2*x^2 + a3*x^3 + a4*x^4, {x, 0, 2}] // Normal

  -> a0 + a1 x + a2 x^2

答案 2 :(得分:1)

如果您的多项式实际上与所示的一样简单,并且每个幂x都有一个术语,那么您只需使用TakePart来提取那些你想要的是因为 Mathematica 使用的自动排序(在Plus中)。例如:

exp1 = Expand[(1 + x)^9]

Take[exp1, 5]
1 + 9 x + 36 x^2 + 84 x^3 + 126 x^4 + 126 x^5 + 84 x^6 + 36 x^7 + 9 x^8 + x^9

1 + 9 x + 36 x^2 + 84 x^3 + 126 x^4

如果不是,你将需要别的东西。比尔的替代规则是一种简洁有效的方法。对于更复杂的操作,您可能希望使用CoefficientArraysCoefficientRulesCoefficientList来分解多项式。