Maple 9.5/10 в математике, физике и образовании
Шрифт:
Здесь a..b задает отрезок аппроксимации, m и n — максимальные степени числителя и знаменателя полиномов Чебышева. Приведенный ниже пример показывает аппроксимацию Паде полиномами Чебышева для функции f=cos(x):
5.8.5.
Минимаксная аппроксимация отличается от Паде-аппроксимации минимизацией максимальной абсолютной погрешности во всем интервале аппроксимации. Она использует алгоритм Ремеза (см. ниже) и реализуется следующей функцией:
Здесь, помимо уже отмеченных параметров, w — процедура или выражение, maxerror — переменная, которой приписывается значение minimax-нормы. Ниже дан пример аппроксимации функции cos(x) в интервале [-3, 3]:
5.8.6. Наилучшая минимаксная аппроксимация по алгоритму Ремеза
Для получения наилучшей полиномиальной аппроксимации используется алгоритм Ремеза, который реализует следующая функция:
Здесь w — процедура, представляющая функцию w(x) > 0 в интервале [a, b], f — процедура, представляющая аппроксимируемую функцию f(х), а и b — числа, задающие интервал аппроксимации [a, b], m и n — степени числителя и знаменателя аппроксимирующей функции, crit — массив, индексированный от 1 до m + n + 2 и представляющий набор оценок в критических точках (то есть точек максимума/минимума кривых погрешности), maxerror — имя переменной, которой присваивается минимаксная норма w abs(f-r).
Следующий пример иллюстрирует применение данной функции для аппроксимации функции erf(x):
5.8.7. Другие функции пакета numapprox
Отметим назначение других функций пакета numapprox:
chebdeg(p) — возвращает степень полинома Чебышева р;
chebmult(p, q) — умножение полиномов Чебышева p и q;
chebsort(e) — сортирует элементы ряда Чебышева;
confracform(r) — преобразует
рациональное выражение r в цепную дробь;confracform(r, х) — преобразует рациональное выражение r в цепную дробь с независимой переменной х;
hornerform(r) — преобразует рациональное выражение r в форму Горнера;
hornerform(r, х) — преобразует рациональное выражение r в форму Горнера с независимой переменной х;
infnorm(f, x=a…b, 'xmax') — возвращает L-бесконечную норму функции на отрезке х[а, b];
infnorm(f, a…b, "xmax") — возвращает L-бесконечную норму функции на отрезке [а, b].
Действие этих функций очевидно и читатель может самостоятельно опробовать их в работе.
5.9. Пакет приближения кривых CurveFitting
5.9.1. Общая характеристика пакета Curve Fitting
Появившийся еще в Maple 7 пакет приближения кривых CurveFitting весьма полезен тем, кто занимается столь распространенной задачей, как приближение кривых. Он содержит ряд функций:
Доступ к функциям пакета возможен с помощью конструкций:
Число функций пакета невелико и все они описаны ниже.
5.9.2. Функция вычисления В-сплайнов Bsline
Функция BSpline(k, v, opt) служит для вычисления В-сплайнов. В отличии от обычных сплайнов, у которых точками стыковки сплайн-функций являются узловые точки, В-сплайны позволяют получить стыковку в произвольно заданных точках. Указанная функция имеет следующие параметры: k — порядок сплайна (целое число), v — имя и opt — параметр в виде knots=knotlist, где knotlist — список из k+1 элементов алгебраического типа. Используя функцию CurveFitting[BSplineCurve] можно строить кривые В-сплайнов. Примеры применения этой функции представлены ниже:
Как нетрудно заметить из этих примеров, функция Bspline возвращает результат в виде кусочных функций типа piecewise.
5.9.3. Функция построения B-сплайновых кривых BsplineCurve
Функция BsplineCurve служит для построения кривых B-сплайнов. Она может использоваться в формах:
Здесь:
xydata — список, массив или матрица точек в форме [[х1,у1],[х2,у2],…,[хn,уn]];
xdata — список, массив или вектор значений независимой переменной [х1,х2,…,хn];
ydata — список, массив или вектор значений зависимой переменной в форме [у1,у2,…,уn];
v — имя независимой переменной;
opts — не обязательный параметр в форме одного или более выражений вида order=k или knots=knotlist.
Примеры применения функции BSplineCurve с порядком, заданным по умолчанию и с третьим порядком (кубический B-сплайн), представлены на рис. 5.19.