Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 44 45 46 47 48 49 50 51 52 ... 125
Перейти на страницу:

4.6.2. Разложение в степенной ряд

Для разложения функции или выражения expr в обычный степенной ряд в системе Maple служат функции:

series(expr, eqn)

и

series(expr, eqn, n)

Здесь expr — разлагаемое выражение, eqn — условие (например, в виде х=а) или имя переменной (например, х) и n — необязательное и неотрицательное целое число, задающее число членов ряда (при его отсутствии оно по умолчанию берется равным 6, но может переустанавливаться системной переменной Order). Если в качестве eqn задано имя переменной, то это соответствует разложению по этой переменной в области точки с ее нулевым значением. Задав eqn в виде x=x0 можно получить разложение по переменной х в окрестности точки x=х0.

Разложение получается в форме степенного многочлена, коэффициенты которого задаются рациональными числами. Остаточная погрешность задается членом вида O(х)^n. При точном разложении этот член отсутствует. В общем случае для его удаления можно использовать функцию convert. Ниже представлены примеры разложения различных выражений в ряд (файл series):

> series(sinh(х), х=0);

> series(sinh(х),х=1,3);

> series(sinh(х),х=1.0,3);

1.175201193 + 1.543080635(х-1.0) + .5876005967(х-1.0)² + O((х-1.0)³)

> series(2*х^2-х+1,х=1,10);

2 +3(x - 1) +2(х - 1)²

> f(х):=sin(х)/х;

> series(f(х),х=0,10);

> convert(%,polynom);

> s:=series(ln(х),х=2, 4);

> evalf(convert(s,polynom));

-.3068528194 + .5000000000x - .1250000000(x-2.)² + .04166666667(x-2.)³

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

4.6.3. Разложение в ряды Тейлора и Маклорена

Для разложения в ряд Тейлора используется функция taylor(expr, eq/nm, n). Здесь expr — разлагаемое в ряд выражение, eq/nm — равенство (в виде х=а) или имя переменной (например, х), n — необязательный параметр, указывающий на порядок разложения и представленный целым положительным числом (при отсутствии указания порядка он по умолчанию принимается равным 6). При задании eq/nm в виде x=a разложение производится относительно точки x=a. При указании eq/nm в виде просто имени переменной разложение ищется в окрестности нулевой точки, то есть фактически вычисляется ряд Маклорена.

Ниже представлены примеры применения функции taylor (файл taylor):

> taylor(1-ехр(х), х=1, 4);

> convert(%,polynom);

> taylor(sinh(x), x, 10);

> taylor(int(sin(x)/x,x),x);

> taylor(erf(х),х);

Не все выражения (функции) имеют разложение в ряд Тейлора. Ниже дан пример такого рода:

> taylor(1/х+х^2,х,5);

Error, does not have a taylor expansion, try series()

> series(1/х+х^2,x,10);

x-1 + x2

> taylor(1/х+х^2,x=1,5);

2 + x-1 + 2(x-1)2 - (x-1)3 + (x-1)4 +O((x-1)5)

Здесь Maple 9.5 отказался от вычисления ряда Тейлора в окрестности точки х=0 (по умолчанию) и предложил воспользоваться функцией series. Однако эта функция просто повторяет исходное разложение. В то же время в окрестности точки х=1 ряд Тейлора вычисляется.

Для разложения в ряд Тейлора функций нескольких переменных используется библиотечная функция mtaylor:

mtaylor(f, v)

mtaylor(f, v, n)

mtaylor(f, v, n, w)

Здесь f — алгебраическое выражение, v — список имен или равенств, n — необязательное число, задающее порядок разложения, w — необязательный список целых чисел, задающих «вес» каждой из переменных списка v. Эта функция должна вызываться из библиотеки Maple 9 с помощью команды readlib:

> readlib(mtaylor); mtaylor(sin(х*у),[х,у],10,[2,1]);

proc() ... end proc x y - ⅙ x³ y³

> mtaylor(exp(-x)*sin(y),[x,y],5);

Для получения только коэффициента при k-м члене ряда Тейлора можно использовать функцию coeftayl(expr,var,k). Если expr — функция нескольких переменных, то k должен задаваться списком порядков коэффициентов.

4.6.4. Пример документа — разложения синуса в ряд

Полезно сочетать разложение выражений (функций) в ряд Тейлора с графической визуализацией такого разложения. Рассмотрим документ, в котором наглядно показаны возможности представления функции рядами Тейлора и Маклорена.

На рис. 4.16 показана первая часть документа. Она дает пример разложения в ряд Тейлора функции sin(x) с построением ее графика и графика по разложению в ряд.

Рис. 4.16. Разложение функции sin(x) в ряд Маклорена шестого порядка и построение ее графика

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

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

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

Рис. 4.17. Разложение функции sin(x) в ряд Маклорена 12-го порядка и построение ее графика

В заключительной (третьей) части этого документа (рис. 4.18) представлено уже истинное разложение синуса в ряд Тейлора в окрестности смешенной от нуля точки х=1. При смещении точки, относительно которой ведется разложение, выражение для ряда Тейлора существенно изменяется. В нем, во-первых, появляются члены четных степеней, а во-вторых, фигурирует аргумент вида (х-1)n.

Рис. 4.18. Разложение функции sin(x) в ряд Тейлора 12-го порядка относительно точки x=1 и построение ее графика

Нетрудно заметить, что даже при представлении такой «простой» функции, как sin(x), приемлемая погрешность представления одного периода достигается при числе членов ряда Тейлора порядка 10 и более. Однако существенное повышение порядка ряда нецелесообразно из-за резкого возрастания вычислительных погрешностей. Впрочем, если задать достаточно большое число верных цифр результатов, то в Maple можно использовать ряды с гораздо большим числом членов.

Кроме того, серьезным недостатком аппроксимации рядом Тейлора является непредсказуемое поведение полинома вдали от точки, относительно которой задается представление. Это хорошо видно на всех трех приведенных примерах.

Помимо указанных выше разложений в ряд Maple имеет множество функций для иных разложений. Например, в пакете numapprox имеется функция laurent(expr,var,n), позволяющая получить разложение в ряд Лорана, функция chebyshev(expr, eq/nm, eps) дает разложение в форме полиномов Чебышева и т.д.

4.6.5. Пакет вычисление степенных разложений powseries

Степенные разложения часто используются в математических расчетах для приближенного представления разнообразных функций и обеспечения единообразия такого представления. В пакете powseries сосредоточены расширенные средства по реализации таких разложений. Пакет загружается командой:

> with(powseries):

Ниже представлено определение функций этого пакета:

compose(a.b) — объединяет ряды а и b;

evalpow(expr) — вычисляет выражение expr и возвращает его в виде ряда;

inverse(p) — инвертирует ряд р;

multconst(p,const) — умножает ряд p на константу const;

multiply(a,b) — умножает ряд а на ряд b;

negative(p) — возвращает аддитивный обратный по отношению к р ряд;

powadd(a,b,…) — складывает ряды а, b, …;

powcreate(expr) — создает ряд для выражения expr;

powpoly(pol,var) — создает ряд для полинома pol по переменной var;

powsolve(sys) — создает ряд для решения дифференциальных уравнений sys;

quotient(a.b) — возвращает частное для а и b в виде ряда;

reversion(a) — дает обратное к композиции разложение ряда а;

subtract(a.b) — дает разность рядов а и b.

В выражении expr могут использоваться операторы +, -, *, / и ^. С ними могут комбинироваться встроенные функции и функции пользователя, например fig). Кроме того, могут использоваться следующие функции:

Powexp  powinv  powlog  povmeg  powrev

Powdiff powint  powquo  powsub  powcos

1 ... 44 45 46 47 48 49 50 51 52 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии