Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Аппроксимация Чебышева-Паде | Учебники

Главная > Maple 15 > Аппроксимация Чебышева-Паде


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

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

 Построим кривую ошибок:
> with(orthopoly, Т):
> plot(F = ChebPadeApprox, 0..4,color=black):
Она представлена.
Максимальная ошибка и на этот раз имеет место в левой оконечной точке. Величина максимальной ошибки несколько меньше, чем ошибка при аппроксимации рядом Чебышева. Главное преимущество представления в виде рациональной функции — высокая эффективность вычислений, которая может быть достигнута преобразованием в непрерывную (цепную) дробь (см. ниже). Однако полученная максимальная ошибка чуть-чуть больше заданной:
> maxChebPadeError :=abs( F(0) — ChebPadeApprox(O) );
maxChebPadeError= .1236746 10-5
Мы достигли впечатляющего успеха и остается сделать еще один шаг в направлении повышения точности аппроксимации.
Минимаксная аппроксимация
Классический результат теории аппроксимации заключается в том, что минимакс как наилучшая аппроксимация рациональной функции степени (т, п) достигается, когда кривая ошибки имеет m+n+2 равных по величине колебаний. Кривая ошибки аппроксимации Чебышева-Паде имеет нужное число колебаний, но эта кривая должна быть выровнена (по амплитуде выбросов кривой ошибки) с тем, чтобы обеспечить наилучшее минимаксное приближение. Эта задача решается с помощью функции minimax:

Максимальная ошибка в аппроксимации MinimaxApprox дается значением переменной maxerror. Заметим, что мы наконец достигли нашей цели получения аппроксимации с ошибкой меньшей, чем 1*10-6:
> maxMinimaxError := maxerror;
maxMinimaxError := .585025375366 10-6
Построим график погрешности для данного типа аппроксимации: 
> plot(F = MinimaxApprox,0..4,color=black):
График ошибки, представленный, показывает равные по амплитуде колебания.
Таким образом, мы добились блестящего успеха в снижении погрешности до требуемого и довольно жесткого уровня. Если бы мы задались целью получить только четыре или пять точных знаков аппроксимации, что в целом ряде случаев вполне приемлемо, то могли бы получить нужный результат гораздо раньше. Нам остается оптимизировать полученную аппроксимацию по минимуму арифметических операций и проверить реальный выигрыш по времени вычислений.

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

  •  m+n операций умножения/деления; 
  •  m+n операций сложения/вычитания.

Вычисление рациональной функции можно значительно сократить и далее, преобразуя ее в непрерывную (цепную) дробь. Действительно, рациональная функция степени (т, п) может быть вычислена, при использовании только:

  •  max(m,n) операций умножения/деления;
  •   m+n операций сложения/вычитания.

Например, если m = n, тогда эта новая схема требует выполнения только поло-, вины числа действий умножения/деления по сравнению с предшествующим методом. Для рациональной функции MlnimaxApprox вычисление в форме, выраженной выше, сводится к 9 действиям умножения/деления и 8 действиям сложения/вычитания. Число операций умножения/деления можно сократить до 8, нормализуя знаменатель к форме monic. Мы можем теперь вычислить непрерывную (цепную) дробь для той же самой рациональной функции. Вычисление по этой схеме, как это можно видеть из вывода Maple, сводятся только к 4 действиям деления и 8 действиям сложения/вычитания:
> MinimaxApprox := confracform(MinimaxApprox): 
> lprint(MinimaxApprox(x));

-.468857770747е-1+1.07858705749/(х+4.41994843227+16.1901737091/ (х+4.29121842830+70.1948525272/(х-10.2912843004+ 4.77536150167/(х+1.23883665458))))

Статьи по теме

Комментарии запрещены.