【问题标题】:How to use sympy to generate Taylor Series for sine of x如何使用 sympy 为 x 的正弦生成泰勒级数
【发布时间】:2021-02-08 04:27:48
【问题描述】:

我正在使用 Python 的 sympysin x 创建泰勒级数

以下是 sin(x) 的泰勒级数。参考here

下面是我应该如何编写python代码来创建泰勒级数表达式

代码:

import sympy as sym
import math

x = sym.symbols('x')

# Technique 1: Compute the 5 first terms in a Taylor series for sin(x) around x = 0. 
T_sin5 = 1 - (x**3/math.factorial(3)) + (x**5/math.factorial(5)) - (x**7/math.factorial(7)) + (x**9/math.factorial(9))
print(T_sin5)

# Technique 2: Compute the 5 first terms in a Taylor series for sin(x) around x = 0 using sympy
T_sin5_2 = sym.sin(x).series(x, 0, 5).removeO()
print(T_sin5_2)

问题:
正如您在上面看到的,我使用手写方式制作了T_sin5,而T_sin5_2 是使用sympy 制作的。所以,我的问题是:技术 1 和技术 2 一样吗? T_sin5T_sin5_2 是否相同。

print(T_sin5)print(T_sin5_2) 似乎都打印了该系列的一半,如下所示:

-x**3/6 + x

我希望这两张照片都能打印出 Talor 系列的前 5 个学期,如下所示。

1 - x3/6 + x5/120 - x7/5040 + x9/362880

为什么print(T_sin5_2)不像上面那样打印出泰勒级数的5个词?

Python 版本:
我的python版本是3.8.6

【问题讨论】:

    标签: python sympy trigonometry taylor-series


    【解决方案1】:

    seriesn参数描述

    系列要扩展到的词条数。

    这包括为零的词条(sin(x) 每隔一个词条就会出现这种情况)。 IE。 n-1 是系列中最大的幂,所以对于 series(x, 0, 5),这恰好是 4,对于这个幂,系数为零。

    对于您的自定义版本,虽然它应该打印完整系列(这是我得到的输出):

    >>> print(T_sin5)
    x**9/362880 - x**7/5040 + x**5/120 - x**3/6 + 1
    

    【讨论】:

    • 啊,是的。自定义版本会打印我添加的所有 5 个术语。那时我的问题有点不对劲。我会改正的。
    猜你喜欢
    • 2017-12-02
    • 2021-02-19
    • 2017-06-29
    • 1970-01-01
    • 2022-06-18
    • 2022-07-10
    • 1970-01-01
    • 2017-04-10
    • 2019-07-11
    相关资源
    最近更新 更多