例如,我有一个多项式y = a_0 + a_1 x + ..... + a_50 x ^ 50。因为我知道高阶项对y的评估产生的影响可以忽略不计,所以我想切断它们并得到像y = a_0 + a_1 x + ..... + a_10 x ^ 10这样的前11个术语。我怎么能意识到这一点?
我提前感谢你们。
答案 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
都有一个术语,那么您只需使用Take
或Part
来提取那些你想要的是因为 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
如果不是,你将需要别的东西。比尔的替代规则是一种简洁有效的方法。对于更复杂的操作,您可能希望使用CoefficientArrays
,CoefficientRules
或CoefficientList
来分解多项式。