а) a k =a k /2
б) a k-2 =a k-2 +a k
с) a 0 =2 a 0
В результате получаем коэффициенты полинома Т n (x). Интересно было бы узнать, какую ошибку мы получаем при разложении степенной функции по полиномам Чебышева. Для этого, используя выше описанные алгоритмы, мы сначала представляем функцию y = x n (где n берем от 1 до 10) через полиномы Чебышева (T n), а затем, чтобы оценить ошибку, чебышевское разложение снова превращаем в многочлен. Выполнив эти операции, мы получаем очень необычные результаты. Для нечётных n ошибка настолько мала, что её едва можно различить на графиках. Для чётных же степеней мы можем наблюдать смещение графика, полученного в результате преобразования, вниз относительно оригинала. Это можно объяснить следующим образом. За смещение графика несёт ответственность коэффициент перед x 0. Вспомним алгоритмы, они построены так, что каждый предыдущий коэффициент вычисляется через последующий. В результате накапливающаяся ошибка вычисления больше всего влияет на коэффициент при x 0. Следствием этого является смещение графиков чётных степеней, так как в их разложении присутствует этот коэффициент. Можно отметить также, что смещение при разложении функции y = x 2 больше, чем при разложении функции y = x 10. Этот тоже можно легко объяснить, так как при увеличении степени вклад T 0 в разложении степенной функции значительно уменьшается. Что же будет, если коснуться нечётных степеней. Тогда мы получим такое хорошее совпадение, так как чётные коэффициенты в разложении нечётных степеней равны 0, а коэффициенты при всех степенях x, кроме нулевой, влияют только на отклонение ветвей. Подтверждением этого служат графики
Следующим этапом работы являлось приближение полиномами Чебышева произвольной функции. В качестве начальной функции мы взяли функцию y = sin (4 x /3). Используемая в работе программа имела нижеприведенный алгоритм:
Приближение функции f (x) по Чебышеву
Задаём степень n многочлена T n (x) и пределы [a; b] изменения аргумента функции f (x)
Для i =0, 1, …, n на отрезке [-1; 1] формируем сетку оптимальных значений аргумента в узлах чебышевской интерполяции:
Переводим в отрезок [a; b]: и вычисляем f (x i)
Для k =0, 1, …, n и i =0, 1, …, n вычисляем:
В результате получаем коэффициенты a 0, a 1, …, a n многочлена T (), приближающего функцию f (x)
Вычисление значений T (x) выполняется по следующему алгоритму:
Считая заданным массив a k, необходимо задать память под массив из n +2 вспомогательных коэффициентов b k. Полагаем b n +2 =0, b n +1 =0
Задаём значения x на [a; b] и переводим их в отрезок [-1; 1] с помощью преобразований:
Для k = n, n - 1, …, 1 вычисляем b k = a k - b k +2 +2 xb k +1
Находим T () =a 0 /2 - b 2 +xb 1
Также в программе было использовано разложение в ряд Тейлора для сравнения с разложением по полиномам Чебышева. Прежде всего, было рассмотрено приближение на интервале [-1; 1]. Наложив на график sin (4 x /3) график его приближения полиномами Чебышева и график, построенный с помощью разложения в ряд Тейлора, получаем очень точное совпадение. Визуально невозможно различить три кривых. Рассматриваем график ошибок. В соответствии с теорией ошибка Чебышева знакопеременна и распределена более или менее равномерно по всему интервалу. Ошибка же Тейлора небольшая около 0 и сильно увеличивается при приближении к 1 (заметим, что в этом и в других случаях ряд Тейлора содержит те же степени x, но с иными коэффициентами). Наиболее интересно рассмотреть приближение на более длинных интервалах. На интервале [-1; 1] приближение полиномами Чебышева седьмой степени достаточно хорошее, но уже на интервале [-10; 10] приближение этой же степенью очень плохое. Рассмотрим приближение на этом же интервале полиномом более высокой степени (T 11). Получим достаточно неплохое приближение, причём на графике очень отчётливо видно, что ошибка распределена равномерно. Здесь опять хочется сравнить с разложением в ряд Тейлора. Если посмотреть на графики, мы увидим, что приближение с помощью рядов Тейлора очень хорошее в середине интервала, но имеет сильное отклонение от эталона на концах. Сравним ошибки чебышевского приближения и приближения с помощью рядов Тейлора. При таком сравнении ясно проявляются свойства полиномов Чебышева - максимальная ошибка меньше, чем при использовании ряда Тейлора
В итоге, мы получили, что на большом интервале хорошее приближение можно построить только, используя достаточно большие степени. В действительности, трудно представить себе приближение нескольких периодов синуса с помощью полиномов 3-й, 4-й, 5-й степеней, и тем более - невозможно 1-й и 2-й степени
Полиномы Чебышева дают великолепное приближение функции в том смысле, что максимальная ошибка этого приближения очень мала, но эти приближения достаточно сложно вычисляются. Обычно относительно малое уменьшение ошибки не стоит того труда, который необходимо потратить на нахождение этого приближения. Именно поэтому полиномы Чебышева используют для корректировки разложения в ряд Тейлора. Нахождение исправленных коэффициентов не составляет особой сложности, поэтому этот метод, называемый экономизацией степенного ряда легко может применяться для повседневного программирования.