Как получить разложение Тейлора квадратного корня, содержащего более двух членов в Sympy? - PullRequest
0 голосов
/ 27 марта 2019

Используя 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 + членом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...