5.8.3. Паде-аппроксимация аналитических функций
Для аппроксимации аналитических функций одной из лучших является Паде-аппроксимация, при которой заданная функция приближается отношением двух полиномов. Эта аппроксимация способна приблизить даже точки разрыва исходной функции с устремлениями ее значений в бесконечность (при нулях полинома знаменателя. Для осуществления такой аппроксимации используется функция pade:
pade(f, х=а, [m,n])
pade(f, х, [m,n])
Здесь f — аналитическое выражение или функция, x — переменная, относительно которой записывается аппроксимирующая функция, a — координата точки, относительно которой выполняется аппроксимация, m, n — максимальные степени полиномов числителя и знаменателя. Технику аппроксимации Паде непрерывной функции поясняет рис. 5.17.
Рис. 5.17. Аппроксимация Паде для синусоидальной функции
На рис. 5.17 представлена аппроксимация синусоидальной функции, а также построены графики этой функции и аппроксимирующей функции. Под ними дан также график абсолютной погрешности для этого вида аппроксимации. Нетрудно заметить, что уже в интервале [-π, π] погрешность резко возрастает на концах интервала аппроксимации.
Важным достоинством Паде-аппроксимации является возможность довольно точного приближения разрывных функций. Это связано с тем, что нули знаменателя у аппроксимирующего выражения способны приближать разрывы функций, если на заданном интервале аппроксимации число разрывов конечно. На рис. 5.18 представлен пример Паде-аппроксимации функции tan(x) в интервале от -4,5 до 4,5, включающем два разрыва функции.
Рис. 5.18. Аппроксимация Паде для разрывной функции тангенса
Как видно из рис. 5.18, расхождение между функцией тангенса и ее аппроксимирующей функцией едва заметны лишь на краях интервала аппроксимации. Оба разрыва прекрасно приближаются аппроксимирующей функцией и никакого выброса погрешности в точках разрыва нет. Такой характер аппроксимации подтверждается и графиком погрешности, которая лишь на концах интервала аппроксимации [-4.0, 4.0] достигает значений 0,01 (около 1%).
5.8.4. Паде-аппроксимация с полиномами Чебышева
Для многих аналитических зависимостей хорошие результаты дает аппроксимация полиномами Чебышева. При ней более оптимальным является выбор узлов аппроксимации, что ведет к уменьшению погрешности аппроксимации.
В общем случае применяется Паде-аппроксимация, характерная представлением аппроксимирующей функции в виде отношения полиномов Чебышева. Она реализуется функциями chebpade:
chebpade(f, x=a..b, [m,n])
chebpade(f, x, [m,n])
chebpade(f, a..b, [m,n])
Здесь a..b задает отрезок аппроксимации, m и n — максимальные степени числителя и знаменателя полиномов Чебышева. Приведенный ниже пример показывает аппроксимацию Паде полиномами Чебышева для функции f=cos(x):
> Digits:=10:chebpade(cos(x),x=0..1,5);
> chebpade(cos(x),x=0..1,[2,3]);
5.8.5. Наилучшая минимаксная аппроксимация
Минимаксная аппроксимация отличается от Паде-аппроксимации минимизацией максимальной абсолютной погрешности во всем интервале аппроксимации. Она использует алгоритм Ремеза (см. ниже) и реализуется следующей функцией:
minimax(f, x=a..b, [m,n], w, 'maxerror')
minimax(f, a..b, [m,n], w, 'maxerror')
Здесь, помимо уже отмеченных параметров, w — процедура или выражение, maxerror — переменная, которой приписывается значение minimax-нормы. Ниже дан пример аппроксимации функции cos(x) в интервале [-3, 3]:
> minimax(cos(х),х=-3..3,[2,3],1,'minmax');
> minimax;
5.8.6. Наилучшая минимаксная аппроксимация по алгоритму Ремеза
Для получения наилучшей полиномиальной аппроксимации используется алгоритм Ремеза, который реализует следующая функция:
remez(w, f, a, b, m, n, crit, 'maxerror')
Здесь w — процедура, представляющая функцию w(x) > 0 в интервале [a, b], f — процедура, представляющая аппроксимируемую функцию f(х), а и b — числа, задающие интервал аппроксимации
Следующий пример иллюстрирует применение данной функции для аппроксимации функции erf (x):
> Digits:=12:w:=proc(х) 1.0 end;
> f:=proc(x) evalf(erf(x)) end;
> crit:=array(1..7, [0, .1,.25,.5,.75,.9,1.]);
> remez(w,f,0,1,5,0,crit,'maxerror');
> maxerror;