Чтение онлайн

на главную

Жанры

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

Следующий пример иллюстрирует применение данной функции для аппроксимации функции erf(x):

> Digits:=12:w:=proc(х) 1.0 end;

w:= proc(x) 1.0 end proc

> f:=proc(x) evalf(erf(x)) end;

f: = proc(x) evalf (erf (x)) end proc

> crit:=array(1..7, [0, .1,.25,.5,.75,.9,1.]);

crit := [0, .1, .25, .5, .75, .9, 1.]

> remez(w,f,0,1,5,0,crit,'maxerror');

x→0.0000221268863 + (1.12678937620 + (0.018447321509 + (-0.453446232421 + (0.141246775527 + 0.00966355213050 x) x) x) x) x

> maxerror;

0.0000221268894463

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 весьма полезен тем, кто занимается столь распространенной задачей, как приближение кривых. Он содержит ряд функций:

> with(CurveFitting);

[BSpline, BSplineCurve, Interactive, LeastSquares, PolynomialInterpolation, RationalInterpolation, Spline, ThieleInterpolation]

Доступ к функциям пакета возможен с помощью конструкций:

CurveFitting[function](arguments) function(arguments)

Число функций пакета невелико и все они описаны ниже.

5.9.2. Функция вычисления В-сплайнов Bsline

Функция BSpline(k, v, opt) служит для вычисления В-сплайнов. В отличии от обычных сплайнов, у которых точками стыковки сплайн-функций являются узловые точки, В-сплайны позволяют получить стыковку в произвольно заданных точках. Указанная функция имеет следующие параметры: k — порядок сплайна (целое число), v — имя и opt — параметр в виде knots=knotlist, где knotlist — список из k+1 элементов алгебраического типа. Используя функцию CurveFitting[BSplineCurve] можно строить кривые В-сплайнов. Примеры применения этой функции представлены ниже:

> BSpline(3, х);

> BSpline(2, х, knots=[0,a,2]);

Как нетрудно заметить из этих примеров, функция Bspline возвращает результат в виде кусочных функций типа piecewise.

5.9.3. Функция построения B-сплайновых кривых BsplineCurve

Функция BsplineCurve служит для построения кривых B-сплайнов. Она может использоваться в формах:

BSplineCurve(xydata, v, opts)

BSplineCurve(xdata, ydata, v, opts)

Здесь:

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.

Следует отметить, что при малом числе точек стыковки аппроксимация B-сплайнами дает невысокую точность, что хорошо видно из рис. 5.19.

Рис. 5.19. Применение функции BSplineCurve

5.9.4. Сравнение полиномиальной и сплайновой аппроксимаций

Когда аппроксимируется гладкая функция, представленная парами данных с равномерным расположением узлом, то данные как полиномиальной, так и сплайновой аппроксимаций различаются незначительно. В этом случае применение куда более сложной сплайновой аппроксимации, как правило, кажется мало обоснованным.

Однако если точки данных расположены неравномерно, то применение полиномиальной аппроксимации может оказаться совершенно неприемлемым. Это отчетливо показывает пример, представленный на рис. 5.20. Здесь задана на первый взгляд (судя по расположению точек) не слишком сложная и чуть колебательная зависимость. Однако полиномиальная аппроксимация (представлена тонкой кривой), особенно в начале — в интервале первых трех точек, дает явно ошибочные сильные выбросы. А вот сплайновая аппроксимация (показана более жирном линией) ведет себя куда более приемлемо.

Рис. 5.20. Сравнение полиномиальной и сплайновой аппроксимаций для функции, заданной парами данных при неравномерном расположении узлов

Причина лучшего поведения сплайновой аппроксимации здесь вполне очевидна — напоминая поведение гибкой линейки, сплайновая функция эффективно сглаживает выбросы кривой в промежутках между точками.

5.9.5.Сплайновая аппроксимация при большом числе узлов

При большом числе узлов (десятки-сотни и выше) данные представленные точками выглядят нередко не представительно. Например, на рис. 5.21 показан документ, иллюстрирующий сплайновую аппроксимацию функции синуса, представленной 31 отсчетом, но без вывода графика сплайновой функции. Несмотря на равномерное расположение узлов по графику точек невозможно определить, что это функция синуса.

Поделиться:
Популярные книги

Смертник из рода Валевских. Книга 1

Маханенко Василий Михайлович
1. Смертник из рода Валевских
Фантастика:
фэнтези
рпг
аниме
5.40
рейтинг книги
Смертник из рода Валевских. Книга 1

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Восход. Солнцев. Книга VI

Скабер Артемий
6. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга VI

Без шансов

Семенов Павел
2. Пробуждение Системы
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Без шансов

Гром над Империей. Часть 2

Машуков Тимур
6. Гром над миром
Фантастика:
фэнтези
попаданцы
5.25
рейтинг книги
Гром над Империей. Часть 2

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Я все еще граф. Книга IX

Дрейк Сириус
9. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я все еще граф. Книга IX

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

Царь поневоле. Том 1

Распопов Дмитрий Викторович
4. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Царь поневоле. Том 1

Старатель 3

Лей Влад
3. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель 3

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит

Обыкновенные ведьмы средней полосы

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Обыкновенные ведьмы средней полосы

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

Не ангел хранитель

Рам Янка
Любовные романы:
современные любовные романы
6.60
рейтинг книги
Не ангел хранитель