- •Математические пакеты
- •Греческие буквы (выводятся при выдаче результата)
- •Машинные константы:
- •!!!Присвоение сохраняется до тех пор, пока оно не будет снято или же не будет заменено другим присвоением!!!
- •Уравнения
- •Неравенства
- •Конечные суммы
- •Бесконечные суммы
- •Графика в maple
- •Дифференциальные уравнения
- •Линейная алгебра
- •Задание вектора
- •Основные задачи линейной алгебры
- •Программирование
Неравенства
Строгие неравенства задаются значками < , > , нестрогие – значками <= , >= . Решаются неравенства (и системы неравенств) той же командой, что и уравнения
>solve(1/x>=1,x); RealRange(Open(0),1)
>solve(1/x>=1,{x}); {0 <x,x≤ 1}
Ответ {x=x} означает «при любыхх ». Отсутствие ответа означает, что нет решения
При решении функциональных неравенств MAPLEиногда не учитывает область определения функции. Например
>solve(arcsin(x)<Pi/6, {x}); {x< ½} (должно быть –1≤ х < ½ )
В этом случае следует рассмотреть систему «неравенство + ОДЗ».
Для приближенного решения неравенств используется команда
>evalf(solve(f(x)<g(x),{x})); коэффициенты следует задавать в виде десятичных чисел!
>evalf(solve(exp(x)<2.0*x+1, {x})); {0 < x , x < 1.256431208}
СУММЫ.Вычисляются командами >sum(f(n), n=N1..N2); или >Sum(f(n), n=N1..N2);
Исполняемая команда пишется с маленькой буквы. Результатом команды является значение суммы. Отложенная команда (пишется с большой буквы) выполняется, но ответ не выводится на экран. На экране появляется общепринятая запись суммы (это удобно для проверки).
>Sum(f(n),n=3..10);
Команда >value(%); производит затем точное вычисление этой суммы
>Sum(1/n,n=2..5); Отложенная команда
>value(%); 77/60 Точное значение суммы
>evalf(%); 1.283333333 Десятичное значение суммы
Конечные суммы
>sum(p^2,p=1..n); сумма квадратов
>simplify(%);n3/3+n2/2+n/6
>sum(x^p,p=0..n); сумма геометрической прогрессии
Используют также следующие команды суммирования
>add(f(n), n=3..5); f(3)+f(4)+f(5)
>add(f(n), n=[a,b,c]); f(a)+f(b)+f(c)
Бесконечные суммы
>sum(n*x^n, n=1..infinity);
>sum(1/n^2, n=1..infinity);
>sum(1/n^10,n=1..infinity);
ПРОИЗВЕДЕНИЯ. Находятся командами >product(f(p), p=N1..N2); или >Product(f(p),p=N1..N2);
Отложенная команда (пишется с большой буквы) выполняется, но результат не выводится на экран. На экране появляется общепринятая запись произведения (удобно для проверки).
>Product(f(p), p=m..n);
Команда >value(%); производит затем вычисление этого произведения в точном виде
>Product(n/(n+1), n=1..100);
>value(%); 1/101
Бесконечные произведения
>Product(1+1/n/(n+2), n=1..infinity);
>evalf(%); 2
Для вычисления произведения используются также следующие команды
>mul(f(n),n=2..5); или >mul(f(n),n=[a,b,c]);
ПРЕДЕЛЫ.
MAPLEочень неплохо вычисляет пределы функций с использованием команд
>limit(f(x),x=а); двусторонний предел в точкех=а ;
>limit(f(x),x=а,left); предел в точкех=а слева;
>limit(f(x),x=a,right); предел в точкех=а справа;
>limit(f(x),x=infinity); предел на плюс бесконечности;
>limit(f(x),x= –infinity); предел на минус бесконечности;
>limit(f(x),x=infinity,real); предел на плюс-минус бесконечности.
Пример. Найти предел
>limit((cos(x)–sqrt(1–x^2))/(x^2–x*sin(x)), x=0); ответ: 1.
Если команду написать с большой буквы (Limit), то это будет отложенная форма команды. Она выполняется, результат запоминается, но не пишется на экран. Вместо ответа на экран выдается запись предела в нормальном человеческом виде. По этой записи удобно проверять правильность введенной команды. Значение предела можно найти затем по команде >value(%);
Пример.
>Limit(sqrt(x^2+1)/(x+2), x = – infinity);
>value(%); – 1
Односторонние пределы
>Limit((2*exp(1/x)+3)/(exp(1/x)+1), x = 0, left);
>value(%); 3
>Limit((2*exp(1/x)+3)/(exp(1/x)+1), x = 0, right);
>value(%); 2
Комбинация отложенной и исполняемой команд
>Limit(sqrt(2*ln(x)^2+3)/(3*ln(x)+1),x=0) =limit(sqrt(2*ln(x)^2+3)/(3*ln(x)+1),x=0);
= –
Примечание.Пределы от выражений, содержащих десятичные числа, иногда не вычисляются
Пример. . Следует заменить 0.5 на ½ .
ОШИБКА ПАКЕТА MAPLE. Предел????????
Асимптотика функции на +
>asympt(f(x),x,n); (еслиn не указано, то оно считается равным значению константы, задаваемой командой >Order: =n; по умолчанию эта константа равна 6).
>asympt(sqrt(x^2+6*x+1),x,3);
>asympt((2*x+3)*exp(1/x),x);
Линейная часть асимптотики даёт асимптоту кривой на +.
Асимптотика функции y = f(x) на –вычисляется двумя командами
>asympt(f(– x), x, n);
>subs(x= –x, %);
Можно эти две команды объединить в одну >subs(x= –x,asympt(f(–x),x,n));
Формула Тейлора-Пеано
По команде >series(f(x),x=a,n); или по команде >taylor(f(x),x=a,n); получаем
Командой >coeff(%, (x–a)^k); можно затем определить коэффициент при (х–а)к.
Формулу Маклорена можно получить командой >f(x):=taylor(f(x),x,n);
f(x):=
Если n не указано, то по умолчанию оно считается равным 6 либо равным значению константы, задаваемой предварительно командой >Order: =n; .
>taylor(exp(x),x,3); 1+x+x2/2+О(x3)
Превращение формулы Тейлора в полином производится командой
>y:=convert(%,polynom);y: = 1+x+x2/2 (можно строить график!)
>plot({exp(x),y},x= – 2..2); графическое сравнение полинома Тейлора и экспоненты.
Команда >taylor(f(x),x=infinity,n); вычисляет асимптотику функции на +:
>taylor(sqrt(x^2+2*x+3), x=infinity, 3); x + 1 + 2/x – 2/x2 + О(1/x3)
Работу со степенными рядами обеспечивает пакет >with(powseries);
Дифференцирование
Отложенная команда >Diff(f(x,y),x,y,y);
Исполняемая команда >diff(f(x,y),x,y,y);
Производные высокого порядка вычисляются командой
>diff(f(x,y),x$5,y$7);
Дифференциал
>y:= sqrt(5–x^2);
>dy:=diff(y,x)*dx;
Численное значение дифференциала >subs(x=2,dx=0.03,dy); – 0.06
>z:= x^2*y^3; z : = x2 y3
>dz:= diff(z,x)*dx+diff(z,y)*dy; dz : = 2 x y3 dx + 3 x2 y2 dy
Численное значение дифференциала >subs(x=1,y=1,dx=0.01,dy=0.01,dz); 0.05
Проверить, что функция z = ln(x2+y2) является гармонической
>z:= ln(x^2+y^2):
>diff(z,x,x)+diff(z,y,y);
>simplify(%); 0
Примечание. Кроме командыdiffдля нахождения производной имеется ещё командаD(y)(x). Результатом этой команды является функция (вместох можно что-то подставлять).
Пример. >y:=x–>x^2;
>diff(y(x),x); 2x. Здесь нельзя вычислятьdiff(y(7),x); Получим ноль!
>D(y)(x); 2x. Здесь можно вычислитьD(y)(7); Получим 14.
Производная от неявно заданной функции.
Пусть неявная функция у=y(x,z) задана уравнением F(x,y,z)=0 .Производная от этой неявной функции находится по команде
>implicitdiff(F(x,y,z),y,z); производная от функцииу=y(x,z) по переменнойz .
>implicitdiff(F(x,y,z),y,z,x); 2-я производная от у=y(x,z) по переменнымz , x .
Интегрирование
1) Неопределенный интеграл.
Отложенная команда пишется с большой буквы. Результат удобен для проверки.
>Int(exp(sqrt(x)),x);
>value(%);
Исполняемая команда >int(exp(x/2),x); 2ex/2
Можно сочетать отложенную и исполняемую команды
>Int(x*exp(x),x)=int(x*exp(x),x); .
Примечание. В некоторых случаях программа использует в ответе непривычные обратные гиперболические функцииarcsinh(x), arccosh(x), arctanh(x). В этом случае для получения результата в привычном виде можно применить команду >convert(%,ln);
2) Определенный интеграл
Отложенная команда >Int(exp(sqrt(x)),x=0..4);
>value(%); 2e2 + 2
>evalf(%) 16.77811220
Исполняемая команда >int(sqrt(x),x=1..2);
>evalf(%); 1.218951415
Их сочетание >Int(sqrt(x),x=1..2)= int(sqrt(x),x=1..2);
3) Двойной интеграл
Отложенная команда >Int(Int(2*x*y,y= –x..x^2),x=0..1);
>value(%);
>evalf(%); – .08333333333
Исполняемая команда >int(int(2*x*y,y= –x..x^2),x=0..1);
Много команд, связанных с интегрированием, находятся в пакетеstudent,который подгружается командой>with(student): .Эти команды носят иллюстративный учебный характер.
4) Замена переменной в неопределенном интеграле. >with(student):
>changevar(x=x(t), Int(f(x), x), t);
Замена переменных может производится также в виде x(t)=x,t=t(x) ,t(x)=t
5) Замена переменной в определенном интеграле. >with(student):
>changevar(x=x(t), Int(f(x), x=a..b), t);
>Int(sqrt(x), x=2..5)= changevar(sqrt(x)=t, Int(sqrt(x), x=2..5), t);
6) Интегрирование по частям. >with(student):
>intparts(Int(f(x),x),u(x)); задается интеграл ии(х).
>intparts(Int(x*exp(x),x),x);
> Int(x*exp(x),x)=intparts(Int(x*exp(x),x),exp(x));
7) Идея формул прямоугольников (результат выполнения команды – рисунок). >with(student): >leftbox(f(x), x=a..b, n , color=black); >rightbox(f(x), x=a..b, n , color=red);
>middlebox(f(x), x=a..b, n , color=green);
Соответствующие этим картинкам ступенчатые площади вычисляются командами
>leftsum(f(x), x=a..b, n); >rightsum(f(x), x=a..b, n); >middlesum(f(x), x=a..b, n);
Ответ дается в точном виде. Далее следует применить команду >evalf(%);
8) Формула трапеций >with(student): >trapezoid(f(x), x=a..b, n);
Ответ дается точный. Далее применяем команду >evalf(%);
9) Формула Симпсона >with(student): >simpson(f(x), x=a..b, 2n);
Ответ дается точный. Далее применяем команду >evalf(%);
10) Двойные интегралы >with(student):
>Doubleint(f(x,y), y = m(x)..n(x), x = a..b);
>value(%);
11) Замена переменных в двойном интеграле >with(student):
>changevar({x=x(u,v), y=y(u,v)}, Doubleint(f(x,y), x,y), [u,v]);
>changevar({x=u*cos(v), y=u*sin(v)}, Doubleint(x*y, x,y), [u,v]);
13) Тройные интегралы >with(student):
>Tripleint(f(x,y,z), z=z1(x,y)..z2(x,y), y=y1(x)..y2(x), x=a..b);
>value(%);
Замена переменных в тройном интеграле – аналогично двойному интегралу.
14) Криволинейные интегралы 1-го рода >with(student):
>Lineint(f(x,y,z), x=x(t), y=y(t), z=z(t), t = ..);
>value(%);
Пример. Вычислить интеграл
>Lineint((3*x+sqrt(y))/sqrt(4+9*x), x=t^2, y=t^3, t =0..2);
>value(%);
15) Криволинейные интегралы 2-го рода (вычисляются без подгрузки “student”).
Интеграл по дуге АВ:x=x(t),y=y(t),t[a,b] вычисляется так:
>w: =P(x,y)*dx+Q(x,y)*dy; задание подынтегрального выражения
>x: = x(t); y: = y(t); dx:=diff(x,t); dy:=diff(y,t);задание дуги АВ и дифференциалов
>int(w,t=a..b); вычисление криволинейного интеграла.
16) Кривая и касательная к ней (рисунок) >with(student):
>showtangent(f(x), x=a);
Изображается кривая на отрезке [–10, 10] (если она там умещается) и касательная к ней в точке с координатой х = а.
ЭКСТРЕМУМЫ ФУНКЦИЙ
Подгрузка >readlib(extrema):
Команда >extrema(f(x), {},x, ‘s’);s; дает минимальное и максимальное значения функции и точки, в которых эти значения достигаются.
>extrema(x^3–3*x, {},x, ‘s’);s; { –2 , 2} {{x=1} , {x= –1}}
Условный экстремум функции z=f(x,y) при условииg(x,y)=0
>extrema(f(x,y),{g(x,y)},{x,y},’s’); s;
В ответе получаем наибольшее и наименьшее значения функции и точки, в которых эти значения достигаются.
>extrema(x+y,{x^2+y^2=2},{x,y},’s’); s; {–2, 2} {{x= –1,y= –1},{x=1,y=1}}.
Здесь Zmin= –2 , Zmax= 2 , критические точки (–1, –1) и (1, 1)
Безусловный экстремум функции z=f(x,y) разыскивается командой
>extrema(f(x,y),{},{x,y},’s’);s;
Вычисляются наибольшее и наименьшее значения функции и все критические точки.
>extrema(x^3+y^3–3*(x+y), {}, {x,y},’s’); s;
{–4, 4} {{x=1,y=1},{x= –1,y=1},{x=1,y= –1},{x= –1,y= –1}}
НАИБОЛЬШЕЕ И НАИМЕНЬШЕЕ ЗНАЧЕНИЯ ФУНКЦИИ
>maximize(f(x)); – наибольшее значение функцииf(x) в области определения.
>maximize(f(x),x=a..b); – наибольшее значение функцииf(x) на отрезке [a,b].
Опция locationпозволяет узнать не только наибольшее значение функции, но и точку, в которой это значение достигается.
Аналогичным образом действует команда >minimize(…);
Эти команды можно применять также для функции многих переменных, но область в этом случае должна быть прямоугольной типа [a,b][m,n] .
ТФКП
Мнимая единица обозначается через I , комплексное число – черезa+b*I
Арифметика такая же, как и для действительных чисел
>(2+3*I) (5 – 7*I); >(2+3*I)*(1+I); >(1–I)/(5+6*I);
>z:=solve((1+2*I)/z=(3+4*I)/(5+6*I), z); z:=
Действительная часть >Re(a+b*I);a
Мнимая часть >Im(a+b*I); b
Сопряженное число >conjugate(a+b*I); a–b*I
Модуль >abs(3+4*I); 5
Аргумент >argument(–3 – 5*I); arctg(5/3) –
Одновременное вычисление модуля и аргумента производится командой >polar( ); , которая подгружается командой >readlib(polar):
>polar(a+b*I); polar( mod(a+b*I) , arg(a+b*I))
>polar(exp(1+4*I)); polar(e , 4–2)
>polar(ln(I));polar(/2 ,/2)
Вычисление значений функций
>exp(2+3*I); e2+3I
>evalc(%); e2cos3 + I e2sin3
>evalf(%); – 7.315110095 + 1.042743657I
Аналогично вычисляются все прочие функции. При вычислении корней, логарифмов и степеней с комплексными показателями вычисляется главное значение.
Конформные отображения смотри в разделе «Графика на плоскости».
Ряды Лорана в полюсе.Загрузить >with(numapprox,laurent):
>laurent(f(z),z=a,n); – ряд Лорана функцииf(z) вполюсе(!) z = a , разложение доn-го порядка. Если порядок не указан, то считается, что он равен константе >Order: =n. По умолчанию эта константа равна 6.
>laurent(f(z),z,n); производится разложение в ряд Лорана в точкеz = 0.
>laurent(1/sin(z)/(exp(z)–1),z);
>coeff(%,z^(–1)); –1/2 (этот коэффициент равен вычету функции в нуле)
Ряд Лорана в существенно особой точке.Загрузить>with(numapprox, laurent):
Если правильная часть ряда Лорана конечна(!), то разложение функции f(z)в существенно особой точке z0 = a производится двумя командами
>F: = f(z); z0: = a;
>subs(t = 1/(z–z0), laurent(subs(z = z0+1/t, F), t, n));
Пример. Разложить функцию в точкеz0 = 1.
>F:= z^2*exp(z/(z–1)); z0:= 1;
>subs(t = 1/(z–z0), laurent(subs(z = z0+1/t, F), t, 5));
Вычеты в полюсе.
>residue(f(z),z=a); Команда вычисляет вычет функцииf(z) вполюсеz=a.
>residue(z/(z^4+1)^2, z=I); 1/8
>residue(1/(z^4+4)^2, z=1+I); –3/256 – I*3/256
>residue(1/(exp(z)–1), z=0); 1
>residue(1/(z–sin(z)), z=0); 3/10
>residue(1/(exp(z)–1–z), z=0); –2/3
Вычеты в существенно особой точке(при конечной правильной части ряда Лорана)
Загрузить >with(numapprox, laurent):
>F:= f(z); z0:= a; n:=6;
>res(F, z=z0):= coeff(laurent(subs(z=z0+1/t, F), t, n), t);
Операционное исчисление, >with(inttrans, laplace):
Преобразование Лапласа >laplace(f(t),t,p); изображениеF(p)
Обратное преобразование Лапласа >invlaplace(F(p),p,t); оригиналf(t)
>laplace(exp(t)*sin(t), t, p);
>invlaplace(2*p/(p–1)^2/(p^2+1), p, t); t et – sin t
В качестве оригиналов можно брать Dirac(t), Heaviside(t–а), exp(at+b), sin(at+b), cos(at+b),
sinh(at+b),cosh(at+b), свёртку, производную, линейную комбинацию всех этих функций, а также их произведение.
>F:=Int(exp(t–z)*cos(z), z=0..t);
>laplace(F, t, p);
Решение задачи Коши для линейных дифференциальных уравнений.
Решить операционным методом задачу Коши y”+y’– 2y=et , y(0)=2, y’(0)=3 .
>diff(y(t),t,t)+diff(y(t),t)–2*y(t)=exp(t):
>laplace(%, t, p):
>subs(y(0)=2, D(y)(0)=3, %):
>solve(%, laplace(y(t), t, p)):
>invlaplace(%,p,t);
Решение интегральных уравнений.
Пример 1. Решить интегральное уравнение.
>Int(cos(t–z)*y(z),z=0..t)=t^2*exp(t):
>laplace(%, t, p):
>solve(%, laplace(y(t), t, p)):
>invlaplace(%, p, t); y(t)=2t2et + 2et – 2
Пример 2.
>y(t)=sin(t)+t*cos(t)+Int(sin(t–z)*y(z),z=0..t):
>laplace(%, t, p):
>solve(%, laplace(y(t), t, p)):
>invlaplace(%, p, t); y(t)=2sin(t)
Интерполяционный полином
Построение интерполяционного полинома по таблице
>interp([x1, x2, x3, … xn],[y1, y2, y3, … yn], x); Pn–1(x)
>interp([1,2,3],[3,7,13],t);t2+t+ 1
ОПЕРАЦИЯ “МАР”
Эта операция позволяет применить данное действие к каждому элементу списка (вектора) или множества. Результат – список (вектор) или множество (элементы множества упорядочиваются).
Примеры.
>f:=x–>x^2; >map(f,{3,1,4}); ответ: {1,9,16} – результат упорядочен
>map(diff,[sin(x), exp(2*x)],x); ответ: [cos(x), 2e2x]
>map(int, [2*x, 3*x^2],x); ответ: [x2,x3]
>map(limit,[2*x+7, 5*x],x=1); ответ: [9, 5] – результат неупорядочен
>map(laplace, [t, exp(t)],t,p); ответ: [1/p2, 1/(p–1)]
>map(invlaplace,[1/p2, 1/(p–1)],s,t); ответ: [t, exp(t)]
>map(dsolve, [D(y)(x)=2*x,D(y)(x)=3*x^2], y(x)); ответ: [y(x)=x2+_C1, y(x)=x3+_C1] .