Для вычисления предела функции в точке x=a в пакете Maple используются функции
limit(f,x=a); limit(f,x=a,dir);
Limit(f,x=a); Limit(f,x=a,dir);
Здесь f – алгебраическое выражение, x – имя переменной, dir –параметр, указывающий направление поиска предела(right – справа, left – слева, real – в области вещественных значений, complex – в области комплексных значений). Значением a может быть бесконечность.
Внимательно разберите примеры.
> Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0); # первый замечательный предел
> Limit(((x-2)/x)^x,x=infinity)=limit(((x-2)/x)^x, x=infinity);
> Limit(2^(1/x),x=0,left)=limit(2^(1/x),x=0,left); # левосторонний предел
> Limit(2^(1/x),x=0,right)=limit(2^(1/x),x=0,right); # правосторонний предел
> Limit(((x-2)/(1+x))^x,x=-infinity)= limit(((x-2)/(1+x))^x,x=-infinity);
> Limit((2^x-1)/x,x=0)=limit((2^x-1)/x,x=0);
Для разложения функции или выражения в ряд служат Maple-функции
series(expr,eqn); taylor(expr,eqn);
series(expr,eqn,n); taylor(expr,eqn,n);
Функции series осуществляют разложение в степенной ряд, функции taylor – в ряд Тейлора. Здесь expr – разлагаемое в ряд выражение, eqn – имя переменной (например, x) или равенство в виде x=a, n – целое положительное число, определяющее порядок разложения (при отсутствии n полагается равным 6). При задании eqn в виде x=a разложение ищется относительно точки x=a. Если вместо x=a указано просто x, разложение осуществляется в окрестности точки x=0.
Разложение получается в форме степенного многочлена, порядок которого определяется параметром n (на единицу меньше). Остаточная погрешность задается членом вида O(x-a)^n. При точном разложении этот член отсутствует. В общем случае для его удаления можно использовать функцию convert.
> series(sinh(x),x=0); # разложение в ряд по степеням x гиперболического синуса
> series(sinh(x),x=1,3); # первые три члена разложения shx по степеням x–1
> series(sinh(x),x=1.,3); # то же самое, но коэффициенты в виде десятичных дробей
> series(sin(x)/x,x,10); # члены разложения в ряд функции sinx/x по степеням 0, 1, …, 9
# переменной x
> convert(",polynom); # отбрасывается остаточный член
> 2/sqrt(Pi)*Int(exp(-t^2),t=0..x)=
2/sqrt(Pi)*int(exp(-t^2),t=0..x); # это так называемая функция ошибок
> s:=taylor(erf(x),x,9); # разложение этой функции в ряд Маклорена
> evalf(convert(s,polynom),5); # то же разложение в числовом формате
Есть в пакете Maple и другие встроенные функции, позволяющие получить разложения в ряд математической функции. Например,
asympt – асимптотическое разложение,
laurent – разложение в ряд Лорана (доступна при подключении пакета numapprox).
> asympt(x/(1-x-x^2),x);
> with(numapprox):
> laurent(1/(x*sin(x)), x=0);
Для вычисления сумм и произведений последовательностей могут использоваться функции:
sum(f,k); product(f,k);
sum(f,k=m..n); product(f,k=m..n);
sum(f,k=alpha); product(f,k=alpha);
Здесь f – функция, задающая члены суммируемого ряда, k – индекс суммирования, , m и n – целочисленные пределы изменения k, alpha – выражение формата RootOf. Значение n может быть равно бесконечности (infinity).
> sum(k^2, k=0..4);
30
> Sum(k^2, k=0..4)=sum(k^2, k=0..4);
Разработчики Maple рекомендуют при использовании упомянутых функций заключать k и f в прямые кавычки, например sum('f','k'=m..n). Это предотвратит возможную ошибку, связанную с предшествующим присваиванием переменной k определенного значения.
> sum('k^2', 'k'=0..n);
> sum('a[k]*x^k','k'=0..4);
> sum('1/k!', 'k'=0..infinity);
> r:=Sum(Sum(k^2,k=1..m),m=1..N): r=factor(simplify(value(r)));
Обратите внимание на следующий пример, в котором второй аргумент функции sum задан просто как 'k':
> t:=sum('-exp(-k)', 'k');
В справочной системе Maple такой вид суммы именуется как indefinite sum («неопределенная сумма»). Если этот результат обозначить как t(k), то выполняются свойства
,
,
где f(k) – суммируемая последовательность – первый аргумент функции sum. Проверим последнее свойство.
> subs(k=n+1,t)-subs(k=1,t);
> sum('-exp(-k)', 'k'=1..n);
По смыслу indefinite sum во многом напоминает частичную сумму Sn+1 ряда с общим членом f(k) (продумайте этот вопрос).
Произведения членов последовательности строятся аналогично:
> (x^5+1)/(x^4-x^2)=convert((x^5+1)/(x^4-x^2), parfrac,x);
> readlib(residue); # загрузка данной функции
> residue(1/(1-exp(-x)), x=0);# вычет функции (1–e–x)–1 в точке x=0
laplace, invlaplace – прямое и обратное преобразования Лапласа
Краткая
теоретическая справка.
Если функция f(t)
удовлетворяет некоторым общим условиям
(f(t)
– оригинал c
показателем роста ),
то для неё определено преобразование
Лапласа
,
вычисляемое по формуле
.
Функция
F(p)
комплексной переменной p
(изображение) является аналитической
в области Rep>.
Обратное действие, т.е. восстановление
оригинала по известному изображению,
называется обратным преобразованием
Лапласа, символически обозначаемое
.
Теоретически оригинал через изображение
определяется однозначно; связь f(t)
и F(p)
при этом дается формулой Меллина
(
> ),
где интегрирование осуществляется на комплексной плоскости p вдоль любой прямой, параллельной мнимой оси и проходящей правее точки (, 0). На практике непосредственно пользоваться этой формулой трудно, поэтому для нахождения f(t) применяют специальные приёмы, например, с помощью вычетов.
Примеры на использование преобразования Лапласа:
> restart;
> with(inttrans): # подключение пакета расширения
> laplace(y(t)=t^2+sin(t),t,p); # прямое преобразование Лапласа от функции y(t)=t2+sint
> laplace(diff(y(t),t$2)-y(t)=sin(2*t),t,p); # преобразование Лапласа от обеих частей дифф-го уравнения
> product( k^2, k=1..4 );
576
> Product( n+k, k=0..m ) = product( n+k, k=0..m );
> product(k, k=RootOf(x^3-2));