Вывод указан для степени полиномов 1, что соответствует линейной интерполяции/экстраполяции. Для других случаев вывод заблокирован двоеточием, поскольку выглядит очень громоздким. Тем не менее, читатель может просмотреть его, заменив двоеточие на точку с запятой. С помощью графической функции display выводятся как все кривые сплайновой интерполяции/экстраполяции, так и узловые точки — рис. 5.15. Полезно обратить внимание на плохую пригодность для экстраполяции сплайнов второго порядка.
Рис. 5.15. Графики, построенные документом, представленным на рис. 5.14
Мы вернемся к рассмотрению сплайновой аппроксимации в конце этой главы при описании пакета расширения CurveFitting.
5.7.3. Полиномиальная интерполяция табличных данных
На самом деле выполнять все расчеты для полиномиальной аппроксимации в Maple 9.5 не нужно, поскольку системы имеет реализующую данный алгоритм встроенную функцию interp(X,Y,v) или, в инертной форме, Interp(X,Y, v). Переменная v указывает имя переменной интерполяционного полинома. Векторы X и Y должны содержать n+ 1= N координат точек исходной зависимости, где n — степень интерполирующего полинома.
Рисунок 5.16 показывает технику применения полиномиальной аппроксимации на основе функции interp с построением графика исходных точек и аппроксимирующего полинома. Нетрудно заметить, что график полинома проходит точно через исходные точки — они показаны квадратиками.
Рис. 5.16 Пример осуществления полиномиальной аппроксимации для таблично заданных данных (точек)
В этом примере полезно присмотреться к визуализации результатов вычислений и совместному построению графика интерполирующего полинома и исходных точек. В частности, для построения последних использована обычная функция plot, позволяющая выводить на график точки с заданными координатами, причем не только в виде окружностей, но и в виде точек, маленьких крестиков, кружков, квадратов и других фигур. Для выбора типа точек и других параметров графика его надо выделить (установив указатель мыши в поле графика и щелкнув левой кнопкой) и нажать правую кнопку мыши — появится контекстно-зависимое меню с операциями форматирования графика.
Приведем еще несколько примеров использования функции Interp:
> Interp([2,5,6], [9,8,3], х) mod 11;
8х² + 6х + 9
> alias(alpha=RootOf(х^4+х+1));
α
> a := Interp([0,1,alpha],[alpha,alpha^2,alpha^3], x) mod 2;
a := x² + (α² + α + 1)x + α
5.8. Применение числовой аппроксимации функций
5.8.1. Состав пакета numapprox
Для более глубоких и продвинутых операций аппроксимации служит специальный пакет расширения numapprox. Этот пакет содержит небольшое число безусловно очень важных функций:
> with(numapprox);
[chebdeg, chebmult, chebpade, chebsort, chebyshev, confracform, hermite_pade, hornerform, infnorm, laurent, minimax, pade, remez]
В их числе функции интерполяции и аппроксимации полиномами Чебышева, рядом Тейлора, отношением полиномов (аппроксимация Паде) и др. Все они широко применяются не только в фундаментальной математике, но и при решении многих прикладных задач. Рассмотрим их, начиная с функций аппроксимации аналитических зависимостей.
5.8.2. Разложение функции в ряд Лорана
Для разложения функции f в ряд Лорана с порядком n в окрестности точки x=а (или x=0) служит функция laurent:
laurent(f, х=а, n)
laurent(f, x, n)
Представленный ниже пример иллюстрирует реализацию разложения в ряд Лорана:
> laurent(f(х),х=0,4);
f(0) + D(f)(0)x + ½(D (2)(f)(0)x 2+ ⅙(D (3)(f)(0)x 3+ O(х 4)
> laurent(exp(х),х,5);
5.8.3. Паде-аппроксимация аналитических функций
Для аппроксимации аналитических функций одной из лучших является Паде-аппроксимация, при которой заданная функция приближается отношением двух полиномов. Эта аппроксимация способна приблизить даже точки разрыва исходной функции с устремлениями ее значений в бесконечность (при нулях полинома знаменателя. Для осуществления такой аппроксимации используется функция pade:
Читать дальше
Конец ознакомительного отрывка
Купить книгу