Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самоучитель по Maple.docx
Скачиваний:
258
Добавлен:
08.03.2016
Размер:
17.32 Mб
Скачать

4. Паде-аппроксимация

Паде-аппроксимация

Теперь опробуем рациональную аппроксимацию Паде (Fade) функции f(x) степени (4,4). Приближения по этому разложению будут аппроксимировать функцию более точно, и потому ошибки округления в вычислениях станут более заметными. Поэтому зададим еще два дополнительных знака для точности вычислений.

Кривая ошибки для интервала [0, 4] строится командой:

и имеет вид, показанный на рис. 17.3.

Рис. 17.3.Кривая погрешности при Паде- аппроксимации степени (4,4)

Как и при аппроксимации рядом Тейлора, ошибка здесь мала вблизи точки разложения и велика вдали от нее. Мы снова видим из графика, что для указанной функции, самая большая ошибка — в левой оконечной точке. Однако максимальная ошибка в Паде- аппроксимации уже на порядок меньше, чем при аппроксимации полиномом Тейлора:

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

6.gif

7.gif

8.gif

9.gif

5. Аппроксимация полиномами Чебышева

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

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

Разложим функцию f(x) на [0, 4] в ряд Чебышева с точностью 1*10-8. Это означает, что все члены с коэффициентами меньше чем эта величина, будут опущены. Такая точность обеспечивается полиномом 13 степени:

Можно проверить для этого примера, что кривая ошибки при аппроксимации рядом Чебышева колеблется. Поскольку ряд Чебышева был оборван на члене 8-й степени (как и полином ряда Тейлора), то максимальная ошибка оказалась равной приблизительно 0,6* 10-5. Эта величина уже на два порядка меньше, чем ошибка при Паде- аппроксимации, вычисленная выше. Но все же немного не дотягивает до наших требований.

Для последующих вычислений полезно заметить, что мы можем использовать процедуру для нахождения численных значений f(x), которая будет намного эффективнее, чем прямое определение, которое требует численного интегрирования для каждого значениях. А именно определим процедуру численной оценки, основанную на разложении в ряд Чебышева степени 13, так как максимальная ошибка при такой аппроксимации меньше чем 10~8, и обеспечивает для нашей цели достаточную точность. Мы определим полином Чебышева Т(х) из пакета orthopoly и затем для эффективной оценки преобразуем его в форму Горнера:

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

10.gif

11.gif

6. Аппроксимация Чебышева-Паде

Аппроксимация Чебышева-Паде

Теперь рассмотрим еще более точную рациональную аппроксимацию Чебышева-Паде. Это такая рациональная функция r[m, n](х) с числителем степени т и знаменателем степени п такой же, как и для разложения в ряд Чебышева. Функция r [m, n](х) согласуется с разложением в ряд Чебышева f(x) членом степени m+n. Мы вычислим аппроксимацию Чебышева-Паде степени (4,4), подобную обычной Паде- аппроксимации, успешно выполненной ранее:

Построим кривую ошибок:

> with(orthopoly, Т):

> plot(F = ChebPadeApprox, 0..4,color=black):

Она представлена на рис. 17.4.

Максимальная ошибка и на этот раз имеет место в левой оконечной точке. Величина максимальной ошибки несколько меньше, чем ошибка при аппроксимации рядом Чебышева. Главное преимущество представления в виде рациональной функции — высокая эффективность вычислений, которая может быть достигнута преобразованием в непрерывную (цепную) дробь (см. ниже). Однако полученная максимальная ошибка чуть-чуть больше заданной:

Рис. 17.4.Кривая ошибки при Паде-Чебышева рациональной аппроксимации

> maxChebPadeError :=abs( F(0) - ChebPadeApprox(O) );

maxChebPadeError= .1236746 10-5

Мы достигли впечатляющего успеха и остается сделать еще один шаг в направлении повышения точности аппроксимации.

12.gif

13.gif