Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

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

Шрифт:

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);

0.8235847380 T(0, 2x-1) - 0.2322993716 T(1, 2 x-1) - 0.05371511462 T(2, 2x-1) + 0.002458235267 T(3, 2 х-1) + 0.0002821190574 T(4, 2x-1) - 0.7722229156– 5 T(5, 2x-1)

> chebpade(cos(x),x=0..1,[2,3]);

(0.8162435876 T(0, 2x-1) - 0.1852356296 T(1, 2x-1) - 0.05170917481 T(2, 2x-1))/(T(0, 2x-1) + 0.06067214549 T(1, 2x-1) + 0.01097466398 T(2, 2x-1) + 0.0005311640964 T(3, 2 x-1))

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;

.04621605601

5.8.6. Наилучшая минимаксная аппроксимация по алгоритму Ремеза

Для получения наилучшей полиномиальной аппроксимации используется алгоритм Ремеза, который реализует следующая функция:

remez(w, f, a, b, m, n, crit, 'maxerror')

Здесь 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):

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

  • Читать дальше
  • 1
  • ...
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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