为什么我的泰勒级数要在函数中添加一个 x?

Why is my taylor series adding an x to the function?

我正在尝试编写一个程序来计算泰勒级数,我的微积分教授建议我编写该程序以进行良好练习,但 运行 出现了一些错误。当我手动计算 ln(x) 时,我得到 (1(x-1)/1)-(1(x-1)^2/2)+((x-1)^3/3)-((x-1)^4/4)。从 SymPy 程序我得到 x - (x - 1)**4/4 + (x - 1)**3/3 - (x - 1)**2/2 - 1

此外,有没有办法让它能够找到模式并制作通用系列,手工计算为 ((-1)^n*(x-1)^n+1)/(n+1)

SymPy 根据自己的规则重新排列表达式的项。如果有疑问,如果容易出现视觉错误,请查看每个表达式或手动测试相等性:

>>> from sympy.abc import x
>>> from sympy.parsing.mathematica import mathematica as P
>>> P(' (1(x-1)/1)-(1(x-1)^2/2!)+((x-1)^3/3)-((x-1)^4/4)')
x - (x - 1)**4/4 + (x - 1)**3/3 - (x - 1)**2/2 - 1
>>> hand = _
>>> res = x - (x - 1)**4/4 + (x - 1)**3/3 - (x - 1)**2/2 - 1
>>> hand == res
True

你从 SymPy 得到的东西和你手工得到的一样! :-)