* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
Аппроксимация в системе Mathematica 4/5
517
Переход к схеме Горнера дает ряд преимуществ перед обычным вычислением полиномов: уменьшается время вычислений, повышается точность вычислений, уменьшается вероятность расхождения численных методов, в которых использу ются полиномы.
6.6.9. Минимаксная аппроксимация
В подпакете Approximations встроенного пакета расширения NumericalMath ми нимаксная аппроксимация реализуется следующей функцией: • MiniMaxApproximation [f,{x,{xmin,xmax},m,k} – возвращает рациональ ную функцию аппроксимации f при степени полиномов числителя и знаме нателя {m,k} и в интервале изменения x от xmin до xmax. • MiniMaxApproximation[f,approx,{x,{xmin,xmax},m,k} – возвращает ра циональную функцию аппроксимации f при степени полиномов числителя и знаменателя {m,k} и в интервале изменения x от xmin до xmax с возможно стью выбора метода аппроксимации approx. Эта аппроксимация использует интерактивный алгоритм вычислений. Они на чинаются с первого шага, на котором используется функция RationalInterpolation. Затем аппроксимация последовательно улучшается применением алгоритма Ре меза, лежащего в основе этого вида аппроксимации. Функция MiniMaxApproximation возвращает два списка: первый – с координата ми абсцисс, при которых наблюдается максимальная погрешность, и второй – рацио нальную функцию аппроксимации. На рис. 6.45 представлен пример на аппроксима цию функции exp(x2). Там же построен график погрешности аппроксимации. График погрешности минимаксной аппроксимации наглядно показывает ее главное свойство – кривая погрешности при наличии колебаний обеспечивает ра венство амплитуд колебаний. Погрешность в последнем примере не превышает 6·10–7, что свидетельствует о высокой и в ряде случаев даже избыточной точности. Следует отметить, что малость абсолютной ошибки для ряда функций (напри мер, тригонометрических) может приводить к большим относительным погреш ностям в точках, где функции имеют нулевые значения. Это может привести к отказу от выполнения аппроксимации вследствие исчерпания числа итераций (опция MaxIteration 20). Подобный случай наблюдается, например, при исполне нии такой команды:
MiniMaxApproximation[Cos[x], {x, {1, 2}, 2, 4}]
Делением функции на (x Pi/2) можно исключить эту ситуацию и получить нужные приближения – рис. 6.46. График относительной погрешности для этого примера представлен на рис. 6.47. Обратите внимание на то, что в этом примере погрешность аппроксимации не превышает 7·10–10.