Ряд Тейлора: функция как многочлен
Любую гладкую функцию можно приблизить многочленом — и тем точнее, чем больше членов.
Ряд Тейлора представляет функцию как бесконечный многочлен, коэффициенты которого определяются производными функции в точке.
Вот вершина теории рядов и, возможно, самая практичная идея анализа. Компьютеры не умеют «напрямую» вычислять $\sin x$ или $e^x$ — у процессора есть только сложение и умножение. Как же калькулятор находит синус? Он раскладывает функцию в ряд Тейлора — бесконечный многочлен — и складывает несколько первых членов. Многочлены — это то, что машина считает легко.
Идея разложения
Около точки $0$ (ряд Маклорена) функция приближается так: берём её значение, добавляем поправку с первой производной, ещё точнее — со второй, и так далее. Коэффициент при $x^k$ — это $k$-я производная, делённая на факториал $k!$. Самые важные разложения:
$$e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots = \sum_{n=0}^{\infty}\frac{x^n}{n!}$$
$$\sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \cdots$$
$$\cos x = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \cdots$$
Заметьте: у синуса только нечётные степени (он нечётная функция), у косинуса только чётные. И вспомните первый урок: первый член разложения синуса — это $x$, ровно тот самый замечательный предел $\sin x \approx x$.
Численная проверка и оценка ошибки
Приблизим $e^x$ и $\sin x$ несколькими членами ряда и сравним с точными значениями.
import math
def exp_taylor(x, terms):
s, term = 0.0, 1.0
for n in range(terms):
if n > 0:
term *= x / n
s += term
return s
x = 1.0
for terms in [2, 4, 6, 8, 10]:
approx = exp_taylor(x, terms)
err = abs(approx - math.e)
print(f"членов={terms:>2} e^1~{approx:.8f} ошибка={err:.2e}")
print("истинное e =", math.e)Вывод:
членов= 2 e^1~2.00000000 ошибка=7.18e-01 членов= 4 e^1~2.66666667 ошибка=5.16e-02 членов= 6 e^1~2.71666667 ошибка=1.62e-03 членов= 8 e^1~2.71825397 ошибка=2.79e-05 членов=10 e^1~2.71828153 ошибка=3.03e-07 истинное e = 2.718281828459045
С каждым добавленным членом ошибка падает на порядки: уже десять слагаемых дают $e$ с семью верными знаками. Факториал в знаменателе растёт стремительно, поэтому хвост ряда быстро тает — отсюда отличная сходимость. Именно так калькулятор «считает» экспоненту.
Как работает под капотом
Каждый член ряда Тейлора «исправляет» приближение, добавляя информацию о следующей производной. Первый член ловит значение, второй — наклон, третий — кривизну, и так далее: многочлен всё точнее повторяет форму функции вблизи точки. Делёж на $k!$ нужен, чтобы при многократном дифференцировании члена $\frac{x^k}{k!}$ получалась ровно нужная производная. В коде мы не считаем факториалы отдельно, а домножаем предыдущий член на $\frac{x}{n}$ — это эффективно и устойчиво.
Частые ошибки
Первая — забыть факториал в знаменателе: без него ряд расходится и даёт чушь. Вторая — применять разложение далеко от точки: ряды Тейлора для синуса и косинуса сходятся всюду, но для многих функций (например $\ln(1+x)$) есть радиус сходимости, за которым ряд бесполезен. Третья — путать чётность: у $\sin$ только нечётные степени, у $\cos$ — только чётные; перепутать — гарантированная ошибка. Четвёртая — считать углы синуса в градусах: разложение, как и всё в анализе, работает в радианах.
Итог
- Ряд Тейлора приближает функцию многочленом через её производные.
- $e^x=\sum \frac{x^n}{n!}$; у $\sin$ нечётные степени, у $\cos$ — чётные.
- Факториал в знаменателе обеспечивает быструю сходимость.
- Так калькуляторы и процессоры вычисляют элементарные функции.