Перейти к содержимому

Калькулятор рядов Тейлора

Вычисление приближения рядов Тейлора/Маклорена для популярных функций.

Формула ряда

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.