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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 55 56 57 58 59 60 61 62 63 ... 125
Перейти на страницу:

5.2. Работа с функциями из отдельных кусков

5.2.1. Создание функций из отдельных кусков

Для создания функций, составленных из отдельных кусков — кусочных функций, Maple 9.5 располагает интересной и по своему уникальной функцией:

piecewise(cond_1,f_1, cond_2,f_2, ..., cond_n,f_n, f_otherwise)

где f_i — выражение, cond_i — логическое выражение, f_otherwise — необязательное дополнительное выражение. В зависимости от того или иного условия эта функция позволяет формировать соответствующую аналитическую зависимость. К кусочным функциям (подчас в скрытой форме) приводят функции с элементами сравнения аргумента, например abs, signum, max и др. Поэтому в Maple 8 введен достаточно мощный аппарат обработки и преобразований таких функций по частям.

5.2.2. Простые примеры применения функции piecewise

Рис. 5.5 показывает задание функции f(х), содержащей три характерных участка. По определенной через функцию пользователя зависимости f(х) можно, как обычно, построить ее график.

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

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

5.2.3. Работа с функциями piecewise

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

Ниже приведен пример задания функции f в аналитической форме (файл piecewi):

> restart;

> f := max(х^2 - 2, x-1);

f := max(x²-2, x-1)

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

> g := convert(f, piecewise);

Выполним дифференцирование и интегрирование функции:

> fprime := diff(f, х);

> Int(g,х)=int(g,х);

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

> series(f, х);

-1+x+O(x6)

Чтобы убрать член с остаточной погрешностью, можно выполнить эту операцию следующим образом:

> series(g, х);

-1+х

Обратите внимание на то, что поскольку разложение в ряд ищется (по умолчанию) в окрестности точки х=0, то при этом используется только тот кусок функции, в котором расположена эта точка.

5.3. Операции с полиномами

5.3.1. Определение полиномов

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

Под полиномом в СКМ сумма выражений с целыми степенями. Многочлен для ряда переменных — многомерный полином. К одномерным полиномам относятся степенной многочлен

р(х) = аn хn + аn-1 xn-1 + ... a1 x + а0,

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

5.3.2. Выделение коэффициентов полиномов

Для выделения коэффициентов полиномов в Maple служат следующие функции:

coeff(p, х) — возвращает коэффициент при х полинома p;

coeff(p, x, n) — возвращает коэффициент для члена со степенью n полинома p;

coeff(p, x^n) — возвращает коэффициенты при x^n полинома p;

coeffs(p, х, 't') — возвращает коэффициенты полинома нескольких переменных, относящиеся к переменной x (или списку переменных) с опцией 't', задающей имя переменной;

collect(p, x) — возвращает полином, объединяя коэффициенты при степенях переменной х.

Ниже даны примеры применения этих функций (файл coefcoll):

> р:=а4*х^4+а3*х^3+а2*х^2+а1*х+а0;

р:= а4х4 + a3x3 + а2 х2 + a1 x + а0

> coeff(р,х);

а1

> coeff(р,х^3);

а3

> coeff(р,х,4);

а4

> coeffs(p,x);

a0, a4, a1, a3, a2

> q:=x^2+2*y^2+3*x+4*y+5;

q:= x² +2 y² + 3x + 4y +5

> coeffs(q);

5, 2, 3, 4, 1

> coeffs(q,y);

x² +3x +5, 2, 4

> coeffs(q,x,y);

5+2y²+4y, 3, 1

> collect(q,x);

x² + 2(1,x²,x)² + 3x + (4,4x²,4x)+5

> collect(q,x,y);

y(1)x² + y(3)x + y(5+2y²+4у)

Дополнительные примеры на применение функции collect можно найти в файле collect.

5.3.3. Оценка коэффициентов полинома по степеням

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

lcoeff(р)

tcoeff(р)

lcoeff(р, х)

tcoeff(р, х)

lcoeff(р, х, 't')

tcoeff(р, х, 't')

Функции lcoeff и tcoeff возвращают старший (младший) коэффициент полинома р относительно переменной х или ряда переменных при многомерном полиноме. Если х не определено, lcoeff (tcoeff) вычисляет старший (младший) коэффициент относительно всех переменных полинома p. Если третий аргумент t определен, то это имя назначено старшему (младшему) члену p. Если х — единственное неизвестное, и d — степень p по х, то lcoeff(p, x) эквивалентно coeff(p, x, d). Если х — список или множество неизвестных, lcoeff (tcoeff) вычисляет старший (младший) коэффициент p, причем p рассматривается как полином многих переменных. Имейте в виду, что p должен быть разложен по степеням неизвестного x до вызова функций lcoeff или tcoeff.

Приведем примеры применения функций lcoeff, tcoeff и coeffs (файл polan):

> q:=1/x^2+2/x+3+4*x+5*x^2;

> lcoeff(q,x);

5

> lcoeff(q,x,'t');

5

> t;

> coeffs(q,x,'t');

3, 1, 4, 2, 5

> t;

5.3.4. Оценка степеней полинома

Функция degree возвращает высшую степень полинома, a ldegree — низшую степень. Эти функции задаются следующим образом:

degree(а,х)

ldegree(а, х)

Функции degree и ldegree используются, чтобы определить высшую и низшую степень полинома от неизвестного (неизвестных) х, которое чаще всего является единственным, но может быть списком или множеством неизвестных. Полином может иметь отрицательные целые показатели степеней при х. Таким образом, degree и ldegree могут возвратить отрицательное или положительное целое число. Если выражение не является полиномом от x сданным параметром, то возвращается FAIL.

Чтобы degree и ldegree возвратили точный результат, полином обязательно должен быть сгруппирован по степеням х. Например, для выражения (x+1)(х+2)-x^2 функция degree не обнаружит аннулирование старшего члена и неправильно возвратит результат 2. Во избежание этой проблемы перед вызовом degree следует применять к полиному функции collect или expand. Если х — множество неизвестных, degree/ldegree вычисляет полную степень. Если х — список неизвестных, degree/ldegree вычисляет векторную степень. Векторная степень определяется следующим образом:

degree(р,[]) = 0

degree(р,[x1,х2,...]) = degree(р,x1)

degree(lcoeff(р,x1),[х2,...])

Полная степень тогда определяется следующим образом:

degree(р, {x1, ...,xn}) = maximum degree(р,{x1,...xn))

или

degree(р,{x1,...,xn}) = degree(p,[x1,...,xn])

Обращаем внимание на то, что векторная степень зависит от порядка перечисления неизвестных, а полная степень не зависит. Примеры применения функций degree и ldegree:

> restart;

> р:=а4*х^4+a3*х^3+а2*х^2;

р:=а4 х4 + a3 x3 + а2 х2

> degree(р,х);

1 ... 55 56 57 58 59 60 61 62 63 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии