跳到内容
🛠️ToolsShed

泰勒级数计算器

计算sin、cos、exp、ln等函数的泰勒/麦克劳林级数近似。

级数公式

sin(x) = x - x³/3! + x⁵/5! - x⁷/7! + ...

关于此工具

泰勒级数是数学中最强大的工具之一,它只使用多项式和算术就能近似复杂的函数。与其直接计算正弦、余弦或指数等超越函数,泰勒级数将它们分解为无穷个简单代数项的和,每一项仅涉及阶乘和幂次。这一技术将那些难以解析求解的问题转化为计算器或浏览器能够高效处理的形式。

此计算器使你能够直观地探索泰勒级数和麦克劳林级数的工作原理。你可以选择一个函数(正弦、余弦、指数、自然对数、反正切、平方根或几何级数),指定中心点和近似点,然后实时观察级数如何收敛到真实值。每添加一项,部分和就会更接近精确答案,误差戏剧性地减小。这种实践探索帮助你深刻理解收敛性以及级数精度如何随着到中心点距离的变化而变化。

泰勒级数在数值分析、物理模拟和计算机图形学中不可或缺,因为不用查找表就能计算超越函数节省了内存和处理速度。工程师和科学家利用它来线性化复杂的非线性系统,物理学家在微扰理论中应用它,机器学习从业者依赖它来近似激活函数。无论你是在学习微积分、准备深造数学,还是在开发需要高效函数计算的软件,这个工具都为你打开了一扇窗,让你从视觉上理解数学最优雅、最实用的思想之一。

常见问题

代码实现

import math

def factorial(n: int) -> int:
    return math.factorial(n)

def taylor_sin(x: float, n_terms: int) -> list[float]:
    """sin(x) = sum(-1)^n * x^(2n+1) / (2n+1)!"""
    terms = []
    partial_sum = 0
    for n in range(n_terms):
        term = ((-1)**n * x**(2*n+1)) / factorial(2*n+1)
        partial_sum += term
        terms.append({'n': n, 'term': term, 'partial_sum': partial_sum})
    return terms

def taylor_exp(x: float, n_terms: int) -> list[float]:
    """e^x = sum x^n / n!"""
    terms = []
    partial_sum = 0
    for n in range(n_terms):
        term = x**n / factorial(n)
        partial_sum += term
        terms.append({'n': n, 'term': term, 'partial_sum': partial_sum})
    return terms

def taylor_cos(x: float, n_terms: int) -> list[float]:
    """cos(x) = sum(-1)^n * x^(2n) / (2n)!"""
    terms = []
    partial_sum = 0
    for n in range(n_terms):
        term = ((-1)**n * x**(2*n)) / factorial(2*n)
        partial_sum += term
        terms.append({'n': n, 'term': term, 'partial_sum': partial_sum})
    return terms

# Example: sin(0.5)
x = 0.5
n_terms = 6
result = taylor_sin(x, n_terms)
approx = result[-1]['partial_sum']
exact = math.sin(x)
print(f"sin({x}) approximation with {n_terms} terms:")
for r in result:
    print(f"  n={r['n']}: term={r['term']:.8f}, sum={r['partial_sum']:.10f}")
print(f"Exact: {exact:.10f}")
print(f"Error: {abs(approx - exact):.2e}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.