EssayAI
Блог
Блог
Математика и алгоритмы

Аппроксимация полиномами Чебышёва - как строить

11 мая 2026Время чтения: 7 минут
#полиномы Чебышёва#минимаксное приближение#узлы Чебышёва#ряд Чебышёва#аппроксимация функций
Аппроксимация полиномами Чебышёва - как строить

Аппроксимация полиномами Чебышёва - это способ заменить сложную функцию многочленом так, чтобы максимальная ошибка на отрезке была почти минимально возможной. В отличие от ряда Тейлора, который точен в одной точке и быстро «расползается» к краям интервала, разложение по полиномам Чебышёва распределяет погрешность равномерно по всему отрезку. Именно поэтому аппроксимация полиномами Чебышёва лежит в основе вычисления функций в библиотеках (синус, экспонента, логарифм считаются через короткие чебышёвские многочлены), а узлы Чебышёва спасают интерполяцию от феномена Рунге. Ниже разберём, что это за многочлены, как строить разложение и почему оно близко к наилучшему.

Что такое полиномы Чебышёва

Полиномы Чебышёва первого рода Tn(x)T_n(x) определяются на отрезке [1,1][-1, 1] удивительно простой формулой через косинус:

Tn(x)=cos(narccosx),x[1,1].T_n(x) = \cos(n \arccos x), \qquad x \in [-1, 1].

Из неё сразу видно, что Tn(x)1|T_n(x)| \le 1 на всём отрезке. Раскрывая косинус кратного угла, получаем рекуррентное соотношение, по которому многочлены строятся один за другим:

T0(x)=1,T1(x)=x,Tn+1(x)=2xTn(x)Tn1(x).T_0(x) = 1, \quad T_1(x) = x, \quad T_{n+1}(x) = 2x\,T_n(x) - T_{n-1}(x).

Так T2(x)=2x21T_2(x) = 2x^2 - 1, T3(x)=4x33xT_3(x) = 4x^3 - 3x и так далее. Ключевое свойство, ради которого всё затевается: среди всех многочленов степени nn со старшим коэффициентом 11 многочлен 21nTn(x)2^{1-n}T_n(x) имеет наименьший максимум модуля на [1,1][-1, 1]. Это и есть минимаксное (равноколебательное) свойство - оно делает аппроксимацию полиномами Чебышёва близкой к наилучшей.

Если ваша функция задана не на [1,1][-1, 1], а на произвольном [a,b][a, b], её сначала переводят линейной заменой x=ba2t+a+b2x = \frac{b-a}{2}t + \frac{a+b}{2}, где t[1,1]t \in [-1, 1]. Дальше - мини-форма: укажите функцию, отрезок и нужную степень, а в чате соберём разложение по Tn(x)T_n(x), узлы и оценку погрешности.

Ортогональность и ряд Чебышёва

Полиномы Чебышёва ортогональны на [1,1][-1, 1] с весом w(x)=(1x2)1/2w(x) = (1 - x^2)^{-1/2}:

11Tm(x)Tn(x)1x2dx={0,mn,π,m=n=0,π/2,m=n0.\int_{-1}^{1} \frac{T_m(x)\,T_n(x)}{\sqrt{1 - x^2}}\,dx = \begin{cases} 0, & m \ne n, \\ \pi, & m = n = 0, \\ \pi/2, & m = n \ne 0. \end{cases}

Благодаря ортогональности любую гладкую функцию можно разложить в ряд Чебышёва - аналог ряда Фурье, только по многочленам:

f(x)c02+k=1NckTk(x),ck=2π11f(x)Tk(x)1x2dx.f(x) \approx \frac{c_0}{2} + \sum_{k=1}^{N} c_k\,T_k(x), \qquad c_k = \frac{2}{\pi}\int_{-1}^{1} \frac{f(x)\,T_k(x)}{\sqrt{1 - x^2}}\,dx.

Замена x=cosθx = \cos\theta превращает эти интегралы в коэффициенты Фурье косинус-ряда функции f(cosθ)f(\cos\theta) - поэтому коэффициенты быстро считаются дискретным косинус-преобразованием. Для гладкой функции коэффициенты ckc_k убывают очень быстро (экспоненциально для аналитических функций), и обрезание ряда на небольшом NN уже даёт высокую точность.

Множитель $1/2$ у $c_0$ - не опечатка. Он возникает из-за того, что норма $T_0$ вдвое больше нормы остальных. Забыв его, вы сместите всё приближение на постоянную величину.

Узлы Чебышёва и интерполяция

На практике интегралы для ckc_k заменяют суммами по специальным точкам - узлам Чебышёва. Это нули многочлена TN+1T_{N+1} или экстремумы TNT_N; для нулей они равны

xj=cos ⁣(2j+12(N+1)π),j=0,1,,N.x_j = \cos\!\left(\frac{2j + 1}{2(N+1)}\,\pi\right), \qquad j = 0, 1, \dots, N.

Узлы Чебышёва сгущаются к краям отрезка, и это не случайность: именно такое распределение минимизирует максимум узлового многочлена ωN+1(x)=(xxj)\omega_{N+1}(x) = \prod (x - x_j), который входит в остаточный член интерполяции. На равномерной сетке этот множитель резко растёт у концов, порождая феномен Рунге - паразитные осцилляции. Интерполяция в узлах Чебышёва от этого свободна. Подробнее о роли узлового множителя в погрешности - в разборе интерполяционной формулы Лагранжа: аппроксимация полиномами Чебышёва по сути отвечает на вопрос «как выбрать узлы наилучшим образом».

Минимаксное приближение и теорема Чебышёва

Идеал, к которому стремятся, - наилучшее равномерное (минимаксное) приближение: многочлен pnp_n степени nn, минимизирующий максимум ошибки fpn=max[a,b]f(x)pn(x)\|f - p_n\|_\infty = \max_{[a,b]} |f(x) - p_n(x)|. Теорема Чебышёва об альтернансе утверждает, что такой многочлен существует, единственен и характеризуется тем, что ошибка fpnf - p_n достигает максимума по модулю с чередованием знака не менее чем в n+2n + 2 точках. Точное минимаксное приближение строит итерационный алгоритм Ремеза, но он трудоёмок.

Хорошая новость: усечённый ряд Чебышёва почти оптимален. Если отбросить хвост ряда после члена cNTNc_N T_N, ошибка приближённо равна первому отброшенному слагаемому cN+1TN+1(x)c_{N+1} T_{N+1}(x), а оно колеблется между ±cN+1\pm c_{N+1} почти как у настоящего минимаксного многочлена. Поэтому в инженерных расчётах редко применяют дорогой Ремез - обрезанного ряда Чебышёва достаточно, его относят к «почти минимаксным».

Экономизация степенного ряда

Отдельный полезный приём - экономизация (телескопирование) степенного ряда. Пусть функция уже представлена многочленом или рядом Тейлора, но степень слишком высока для быстрого счёта. Идея: переписать степени xkx^k через Tk(x)T_k(x), отбросить старшие чебышёвские члены (они малы) и вернуться к степенному виду уже меньшей степени.

Например, чтобы понизить степень на единицу, заменяют xnx^n на xn21nTn(x)x^n - 2^{1-n}T_n(x) - это убирает старший член ценой ошибки не более 21n2^{1-n}, минимально возможной для такой замены. Так из ряда Тейлора exp(x)\exp(x) до x6x^6 можно получить многочлен 4-й степени с погрешностью порядка 10410^{-4} на [1,1][-1, 1] - Тейлор той же степени дал бы ошибку на порядки больше у края отрезка.

Экономизация работает только на том отрезке, для которого она проведена (обычно $[-1, 1]$). Перенос полученного многочлена на другой интервал без новой замены переменной разрушает оценку погрешности.

Оценка погрешности

Для усечённого ряда Чебышёва погрешность оценивают сверху хвостом ряда: fpNk>Nck\|f - p_N\|_\infty \le \sum_{k > N} |c_k|, поскольку Tk1|T_k| \le 1. На практике, когда коэффициенты быстро убывают, доминирует первый отброшенный член, и хорошая практическая оценка - cN+1|c_{N+1}|. Это даёт удобный критерий выбора степени: наращивайте NN, пока cN+1|c_{N+1}| не опустится ниже требуемой точности.

Для интерполяции в узлах Чебышёва остаточный член имеет вид f(x)pN(x)=f(N+1)(ξ)(N+1)!ωN+1(x)f(x) - p_N(x) = \frac{f^{(N+1)}(\xi)}{(N+1)!}\,\omega_{N+1}(x), и за счёт выбора узлов maxωN+1=2N(ba)N+1/2\max|\omega_{N+1}| = 2^{-N}(b-a)^{N+1}/2 - минимально возможное значение. Это и есть формальная причина, почему узлы Чебышёва бьют равномерную сетку.

Где применяется

Аппроксимация полиномами Чебышёва встречается всюду, где функцию нужно считать быстро и точно: математические библиотеки процессоров вычисляют элементарные функции через короткие чебышёвские многочлены; спектральные методы решения дифференциальных уравнений раскладывают решение по TnT_n; в обработке сигналов фильтры Чебышёва используют те же равноколебательные свойства для оптимальной АЧХ. Везде, где важна равномерная точность на всём отрезке, а не локальная в одной точке, чебышёвское приближение - стандартный инструмент.

Частые ошибки

  • Забытый множитель 1/21/2 у коэффициента c0c_0 - приближение сдвигается на константу.
  • Работа на [a,b][a, b] без замены переменной: формулы для TnT_n, узлов и коэффициентов верны только на [1,1][-1, 1].
  • Путаница многочленов первого и второго рода: для аппроксимации функций берут TnT_n (первого рода), UnU_n нужны в других задачах.
  • Ожидание точности у негладкой функции: при разрыве производной коэффициенты ckc_k убывают лишь степенным образом, и приближение сходится медленно.
  • Применение ряда Тейлора вместо чебышёвского для равномерной точности: Тейлор хорош у точки разложения, но у краёв отрезка ошибка резко растёт.

FAQ

Чем аппроксимация Чебышёва лучше ряда Тейлора? Тейлор минимизирует ошибку в одной точке, а Чебышёв - максимум ошибки на всём отрезке. Поэтому при равной степени чебышёвский многочлен даёт куда меньшую погрешность у краёв интервала.

Сколько членов ряда нужно брать? Столько, чтобы первый отброшенный коэффициент cN+1|c_{N+1}| был меньше требуемой точности. Для гладких функций коэффициенты убывают экспоненциально, и хватает нескольких членов.

Зачем нужны именно узлы Чебышёва, а не равномерные? Они минимизируют узловой множитель ωN+1(x)\omega_{N+1}(x) в остаточном члене и устраняют феномен Рунге - осцилляции у краёв, которые портят интерполяцию на равномерной сетке.

Коротко

Аппроксимация полиномами Чебышёва строит многочлен, у которого максимальная ошибка на отрезке почти минимальна. Многочлены Tn(x)=cos(narccosx)T_n(x) = \cos(n\arccos x) ортогональны с весом (1x2)1/2(1-x^2)^{-1/2}, что позволяет разложить функцию в ряд fc02+ckTk(x)f \approx \tfrac{c_0}{2} + \sum c_k T_k(x) с быстро убывающими коэффициентами; обрезание ряда даёт почти минимаксное приближение, а погрешность оценивается первым отброшенным членом cN+1|c_{N+1}|. Узлы Чебышёва сгущаются к краям и убирают феномен Рунге, а экономизация степенного ряда понижает степень многочлена при минимальной потере точности.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также