如何在Sympy中获得包含两个以上项的平方根的泰勒展开式?

时间:2019-03-27 10:32:39

标签: sympy

使用Sympy,我想获得一个平方根的泰勒级数展开式,其中有两个以上的项。

from sympy import *
a,b=symbols('a b', positive = True, real = True)
f=sqrt(1+a+b)
fexp=f.series(b,0,1)

我得到的是

15/(16*sqrt(b + 1)) - 5*sqrt(b + 1)/(16*(b**2 + 2*b + 1)) + sqrt(b + 1)/(16*(b**3 + 3*b**2 + 3*b + 1)) + 5*sqrt(b + 1)/16 + 15*b/(16*sqrt(b + 1)) - 5*b*sqrt(b + 1)/(8*(b**2 + 2*b + 1)) + 3*b*sqrt(b + 1)/(16*(b**3 + 3*b**2 + 3*b + 1)) - 5*b**2*sqrt(b + 1)/(16*(b**2 + 2*b + 1)) + 3*b**2*sqrt(b + 1)/(16*(b**3 + 3*b**2 + 3*b + 1)) + b**3*sqrt(b + 1)/(16*(b**3 + 3*b**2 + 3*b + 1)) + O(a)

在某种程度上简化了

simplify(fexp)
(1 + 3*b + 3*b**2 + b**3 + O(a))/(sqrt(b + 1)*(b**2 + 2*b + 1))

但没有得到预期的结果

sqrt(1+a) + O(b)

大的输出在形式上是正确的,但不是我期望的简单表达。

通过将(1 + a)= c打包到f的定义中,我正确地获得了扩展

sqrt(c) + O(b)

但是我想知道是否有一种方法可以直接使用明确的1 + a项获得简单结果。

0 个答案:

没有答案