Введение
Многочлен Тейлора приближает функцию вблизи точки, совпадая с ней по значению и конечному числу производных в этой точке. Бесконечная сумма, построенная с этими коэффициентами, называется рядом Тейлора; если центр равен нулю, это ряд Маклорена. Сходимость ряда и равенство его суммы исходной функции нужно проверять отдельно.
На примерах показательной и тригонометрических функций разберём определение коэффициентов, условия справедливости равенств и оценку ошибки при обрыве ряда. В конце приведён учебный пример на Python для приближённого вычисления \(\sin x\) около нуля.
Зачем аппроксимировать функции полиномами?
Для начала, зачем вообще нужно представлять функцию в виде полинома ( \(a + bx + cx^2 + \dots\) )?
flowchart LR
A["Функция, аналитическая около центра"] -->|"Разложение Тейлора в области сходимости"| B["Степенной ряд"]
B -->|"Усечение на конечных членах"| C["Полиномиальная аппроксимация"]
C -->|"Только базовая арифметика"| D["Высокоскоростные вычисления"]
Приближение нелинейной функции многочленом может упростить вычисление значений, дифференцирование и интегрирование. После определения коэффициентов многочлен вычисляется с помощью сложения и умножения. Остаточный член и численные погрешности позволяют оценить, где приближение применимо и насколько оно точно.
Интуитивное понимание ряда Маклорена
Начнём с разложения Маклорена, приближающего функцию вблизи \(x=0\). Предположим, что \(f\) имеет необходимые производные около нуля. Выберем конечную степень \(n\) и определим коэффициенты многочлена \(P_n\):
\[ P_n(x) = c_0 + c_1 x + c_2 x^2 + \dots + c_n x^n \]Коэффициенты определяются совпадением значения и производных в нуле. Условие на вторую производную ниже применяется при \(n\ge2\).
- Условие на значение: Из \(P_n(0)=f(0)\) получаем \(c_0=f(0)\). Постоянный член обеспечивает совпадение значений в нуле.
- Условие на первую производную: Из \(P_n'(0)=f'(0)\) получаем \(c_1=f'(0)\). Многочлен \(P_1(x)=f(0)+f'(0)x\) задаёт приближение касательной в нуле.
- Условие на вторую производную: Требуем \(P_n''(0)=f''(0)\). Поскольку \(P_n''(0)=2c_2\), имеем \(c_2=f''(0)/2!\). При наличии членов более высокой степени вся производная \(P_n''(x)\) в общем случае не равна постоянной \(2c_2\).
- Общее условие: При \(k\le n\) равенство \(P_n^{(k)}(0)=f^{(k)}(0)\) определяет \(c_k=f^{(k)}(0)/k!\). Погрешность около центра оценивается остаточным членом, рассмотренным ниже.
Формула и вывод ряда Маклорена
Если \(f\) бесконечно дифференцируема, эти коэффициенты определяют её ряд Маклорена. Однако для записи равенства с \(f(x)\), как ниже, ряд должен сходиться к \(f(x)\) в рассматриваемой точке. Это верно в подходящей окрестности нуля, если \(f\) там аналитична. Одной бесконечной дифференцируемости недостаточно.
\[ 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\) ).
Ряды Маклорена типовых функций
Следующие ряды показательной функции, синуса и косинуса сходятся к соответствующим функциям для всех действительных \(x\). Аргументы тригонометрических функций выражаются в радианах.
1. Показательная функция \(e^x\)
Показательная функция \(f(x)=e^x\) остаётся \(e^x\) после любого числа дифференцирований. Поэтому все её производные в нуле равны \(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} \]Обобщение до ряда Тейлора
Перенос центра из нуля в \(a\) даёт ряд Тейлора. Если \(f\) аналитична около \(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\) в радианах и предположим \(|\theta|\ll1\). Тогда применимо приближение синуса многочленом первой степени:
\[ \sin \theta \approx \theta \quad (\text{когда } \theta \text{ достаточно мал}) \]Это приближение линеаризует уравнение маятника и даёт период, не зависящий от амплитуды, в рамках приближения малых колебаний. Реальный период математического маятника зависит от амплитуды; то же приближение нельзя применять к большим колебаниям.
Программирование и численные вычисления
Для численного вычисления функций применяются различные методы, в том числе полиномиальные приближения. Модуль math в CPython в основном вызывает математическую библиотеку C платформы; конкретные алгоритмы зависят от реализации. Следующий учебный пример суммирует небольшое число членов около нуля, например при \(|x|\le1\), и не воспроизводит внутреннюю реализацию стандартной библиотеки.
| |
Радиус сходимости и теорема Тейлора
Радиус сходимости \(R\) — число, задающее расстояние от центра \(a\), внутри которого степенной ряд сходится, то есть \(|x-a|<R\); это не название самого интервала. Возможны также \(R=0\) и \(R=\infty\). Граничные точки \(|x-a|=R\) исследуются отдельно. Например, ряд Маклорена для \(\ln(1+x)\) имеет радиус 1 и равен функции при действительных \(-1<x\le1\). При \(x=1\) он сходится условно, а при \(x=-1\) расходится.
Для конечного приближения предположим, что \(f\) принадлежит классу \(C^{n+1}\) на отрезке, соединяющем \(a\) и \(x\). Тогда теорема Тейлора даёт:
\[ f(x)=P_{n,a}(x)+R_n(x),\qquad P_{n,a}(x)=\sum_{k=0}^{n}\frac{f^{(k)}(a)}{k!}(x-a)^k \]\[ R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-a)^{n+1} \]Здесь \(\xi\) находится между \(a\) и \(x\). Если на отрезке \(|f^{(n+1)}|\le M\), то \(|R_n(x)|\le M|x-a|^{n+1}/(n+1)!\). Чтобы установить равенство функции её бесконечному ряду Тейлора, можно показать, что этот остаток стремится к нулю при \(n\to\infty\).
Приведённый код суммирует 10 членов, до \(x^{19}\) включительно. Коэффициент при степени 20 у синуса равен нулю, поэтому теорема Тейлора ограничивает погрешность усечения при \(x=1\) величиной \(1/21!\), примерно \(1.96\times10^{-20}\). Эта оценка относится к конечной сумме, вычисленной точно в действительных числах; погрешности округления арифметики Python с плавающей точкой рассматриваются отдельно. Результат math.sin также является значением с плавающей точкой для сравнения, а не точным математическим значением.
Гладкая функция, не представимая своим рядом Тейлора
\[ g(x)=\begin{cases}e^{-1/x},&x>0,\\0,&x\le0.\end{cases} \]Эта функция бесконечно дифференцируема, и все её производные в нуле равны нулю. Поэтому её ряд Тейлора в нуле тождественно нулевой и сходится при всех \(x\). Но при \(x>0\) имеем \(g(x)>0\), так что сумма ряда не совпадает с исходной функцией. Этот пример различает сходимость ряда и равенство его суммы функции.
Заключение
Многочлены Тейлора дают локальные приближения, а остаточные члены оценивают их погрешность. Используя ряд Тейлора как равенство, нужно проверять область сходимости и совпадение его суммы с исходной функцией. Эти различия помогают определять требуемую точность и границы применимости приближений в физике и численных вычислениях.
Источники
- NIST DLMF §1.4(vi): Теорема Тейлора и остаточные члены для действительной переменной
- MIT 18.100A: Basic Analysis §§4.3 и 5.4 (аналитичность, гладкость, логарифмический ряд и неаналитический пример)
- MIT 16.07 Lecture 24: Приближение малых колебаний маятника и зависимость от амплитуды
- Python 3.12 math: Математические функции и особенности реализации CPython
