Featured image of post Ряды Тейлора и Маклорена: магия аппроксимации сложных функций полиномами

Ряды Тейлора и Маклорена: магия аппроксимации сложных функций полиномами

Подробное объяснение рядов Тейлора и Маклорена, секретов математического анализа, от интуитивных смыслов до математических выводов и применения в программировании и физике.

Введение

В мирах математики, физики и даже информатики ряды Тейлора и ряды Маклорена являются невероятно мощными инструментами. Это методы выражения «сложных функций, которые трудно вычислить», таких как показательные и тригонометрические функции, в виде бесконечных сумм «простых полиномов, которые можно вычислить, используя только сложение и умножение».

Причина, по которой калькуляторы и компьютеры могут мгновенно вычислять значения вроде $\sin(37^\circ)$ или $e^{2.5}$, заключается в том, что они внутренне выполняют приближенные вычисления, применяя эти разложения. В этой статье мы подробно объясним эту волшебную математическую технику, от её интуитивного смысла до строгих формул и реального применения.

Зачем аппроксимировать функции полиномами?

Для начала, зачем вообще нужно представлять функцию в виде полинома ( $a + bx + cx^2 + \dots$ )?

  flowchart LR
    A["Сложная функция"] -->|"Ряд Тейлора"| B["Бесконечная сумма полиномов"]
    B -->|"Усечение на конечных членах"| C["Полиномиальная аппроксимация"]
    C -->|"Только базовая арифметика"| D["Высокоскоростные вычисления"]

Многие функции, описывающие природные явления, нелинейны, что затрудняет их вычисление напрямую вручную или только с помощью инструкций процессора компьютера. Однако, поскольку полиномы состоят только из сложения и умножения, их преимущество заключается в том, что они чрезвычайно удобны для обработки компьютерами.

Интуитивное понимание ряда Маклорена

Сначала давайте рассмотрим ряд Маклорена, который аппроксимирует функцию вокруг определенной точки $x = 0$. Предположим, у нас есть неизвестная функция $f(x)$. Мы хотим аппроксимировать эту функцию вблизи $x = 0$ полиномом $P(x)$ следующего вида:

$$ P(x) = c_0 + c_1 x + c_2 x^2 + c_3 x^3 + \dots $$

Условия для повышения точности аппроксимации следующие:

  1. Аппроксимация 0-го порядка : Значение функции при $x=0$ совпадает ( $P(0) = f(0)$ ). В результате получаем $c_0 = f(0)$.
  2. Аппроксимация 1-го порядка : Наклон (первая производная) при $x=0$ совпадает ( $P'(0) = f'(0)$ ). В результате получаем $c_1 = f'(0)$. На графике это касательная к функции $f(x)$ в точке $x=0$.
  3. Аппроксимация 2-го порядка : Кривизна (вторая производная) при $x=0$ совпадает ( $P''(0) = f''(0)$ ). Поскольку $P''(x) = 2 c_2$, получаем $c_2 = \frac{f''(0)}{2}$.
  4. Аппроксимация $n$-го порядка : В общем случае, добиваясь совпадения вплоть до $n$-й производной, мы можем более точно имитировать поведение функции около $x=0$.

Формула и вывод ряда Маклорена

Бесконечно повторяя вышеуказанные интуитивные условия, мы получаем красивый ряд, использующий производные коэффициенты каждого порядка функции. Это называется рядом Маклорена.

$$ f(x) = f(0) + f'(0)x + \frac{f''(0)}{2!}x^2 + \frac{f^{(3)}(0)}{3!}x^3 + \dots $$

Записанное с использованием обозначения сигма, это выглядит так:

$$ f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(0)}{n!} x^n $$

Здесь $f^{(n)}(0)$ — значение, полученное путем дифференцирования функции $f(x)$ $n$ раз и подстановки $x=0$, а $n!$ обозначает факториал $n$ ( $n \times (n-1) \times \dots \times 1$ ).

Ряды Маклорена типовых функций

Здесь мы представляем ряды Маклорена важных функций, которые часто встречаются.

1. Показательная функция $e^x$

Показательная функция $f(x) = e^x$ остается $e^x$, сколько бы раз её ни дифференцировали. Следовательно, при подстановке $x=0$ производные коэффициенты всех порядков становятся равными $1$ ( $f^{(n)}(0) = 1$ ).

$$ e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \dots = \sum_{n=0}^{\infty} \frac{x^n}{n!} $$

2. Тригонометрические функции $\sin x$ и $\cos x$

Когда $\sin x$ многократно дифференцируется, она циклически меняется: $\cos x, -\sin x, -\cos x, \sin x, \dots$. Подставляя $x=0$, мы видим, что остаются только производные коэффициенты нечетных порядков, а четные порядки становятся равными $0$.

$$ \sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \dots = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1} $$

Аналогично, для $\cos x$ остаются только члены четных порядков.

$$ \cos x = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \frac{x^6}{6!} + \dots = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n)!} x^{2n} $$

Обобщение до ряда Тейлора

В то время как ряд Маклорена является аппроксимацией вокруг $x=0$, обобщение этого до аппроксимации вокруг произвольной точки $x=a$ дает ряд Тейлора.

$$ f(x) = f(a) + f'(a)(x-a) + \frac{f''(a)}{2!}(x-a)^2 + \dots = \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!} (x-a)^n $$

Эта формула демонстрирует свою мощь, когда вы хотите предсказать значение функции в точке, немного удаленной от $x=a$ ( $x = a + \Delta x$ ).

Применение рядов Тейлора

Линейная аппроксимация в физике

В физике аппроксимация с использованием рядов Тейлора часто используется для упрощения решения уравнений движения. Например, при движении маятника, если угол отклонения $\theta$ достаточно мал, мы берем только член 1-го порядка ряда Маклорена для $\sin \theta$ и аппроксимируем его следующим образом:

$$ \sin \theta \approx \theta \quad (\text{когда } \theta \text{ достаточно мал}) $$

Это преобразует сложное нелинейное дифференциальное уравнение в легко решаемое линейное дифференциальное уравнение, из которого выводится изохронность математического маятника.

Программирование и численные вычисления

В стандартных библиотеках компьютеров (таких как модуль math) ряды Тейлора (или их улучшенные версии, такие как аппроксимация Чебышева) используются для вычисления функций. Ниже приведен простой пример аппроксимации $\sin x$ на Python.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import math

def approx_sin(x, terms=10):
    """
    Функция для аппроксимации sin(x) с использованием ряда Маклорена
    x: Угол в радианах
    terms: Количество вычисляемых членов
    """
    result = 0.0
    for n in range(terms):
        # Вычисление каждого члена: (-1)^n * x^(2n+1) / (2n+1)!
        sign = (-1) ** n
        numerator = x ** (2 * n + 1)
        denominator = math.factorial(2 * n + 1)
        result += sign * (numerator / denominator)
    return result

# Тест: x = 1.0 радиан (около 57.3 градусов)
x_val = 1.0
print(f"Приближенное значение: {approx_sin(x_val)}")
print(f"Истинное значение: {math.sin(x_val)}")

Радиус сходимости и теорема Тейлора

Не все функции могут быть точно представлены рядом Тейлора при любом $x$. Диапазон, в пределах которого бесконечный ряд сходится к конечному значению, называется радиусом сходимости. Например, ряд Маклорена для $\ln(1+x)$ действителен только в диапазоне $-1 < x \le 1$.

Кроме того, теорема Тейлора (оценка остаточного члена) — это теорема для оценки того, какой будет погрешность между истинным значением и приближенным значением при усечении на конечных членах (до $n$-го порядка). Это позволяет нам математически гарантировать, «до какого порядка мы должны раскладывать функцию в зависимости от требуемой точности».

Заключение

Ряды Тейлора и ряды Маклорена — это, так сказать, «математические переводчики» для перевода сложного мира в легко управляемую форму, называемую полиномами. Процесс, начинающийся с концепции дифференцирования и полностью восстанавливающий исходную функцию через бесконечные сложения, символизирует красоту математики. От аппроксимаций в физике до алгоритмов оптимизации в ИИ — спектр их применения неизмерим. Обязательно используйте этот мощный инструмент для углубления понимания математики и программирования.

comments powered by Disqus