
- •Математические пакеты
- •Греческие буквы (выводятся при выдаче результата)
- •Машинные константы:
- •Уравнения
- •Неравенства
- •Конечные суммы
- •Бесконечные суммы
- •Произведения
- •Пределы
- •Графика в maple
- •Дифференциальные уравнения
- •Линейная алгебра
- •Задание вектора
- •Основные задачи линейной алгебры
- •Аналитическая геометрия на плоскости
- •§1. Точки разрыва функции и их характер.
- •§2. Графики функций. Элементарные свойства функций.
- •§3. Вычисление пределов.
- •§4. Дифференцирование.
- •§5. Формула Тейлора-Пеано
- •§6. Интегалы.
- •§6. Функции многих переменных.
- •§7. Функциональная последовательность. Предельная функция.
- •§8. Дифференциальные уравнения.
- •§9. Элементы теории поля.
- •§9. Комплексные числа и функции комплексного переменного.
- •§10. Операционное исчисление.
Дифференциальные уравнения
Производные задаются в виде
>diff(y(x),x); >diff(y(x),x,x); … >diff(y(x),x$n);
или
>D(y)(x); >(D@@n)(y)(x);
Второй способ (и только он один!) используется для задания начальных условий.
УРАВНЕНИЯ ПЕРВОГО ПОРЯДКА
Уравнение y’= f(x,y) можно задать одним из следующих способов
>eq:=diff(y(x),x)=f(x,y(х)); >eq:= D(y)(x)=f(x,y(х));
> eq:=diff(y(x),x)–f(x,y(х)); >eq:= D(y)(x)–f(x,y(х));
Ноль в правой части можно не писать. Если решение ищется в точном виде, то в правой части уравнения (в функции f(x,y(х))) вместо у(х) можно писать у .
Решение дифференциального уравнения находится по команде
>dsolve(eq, y(x)); или >dsolve(diff(y(x),x)=f(x,y), y(x));
Примеры.
а) Найти общее решение уравнения y’= x/y .
>eq:=diff(y(x),x)=x/y;
>dsolve(eq, y(x)); y(x)2 = x2 + _C1
б) Найти общее решение уравнения ln(y’)+y=0 .
>eq:=ln(diff(y(x),x))+y;
>dsolve(eq, y(x)); ey(x) = x + _C1
в) Найти общее решение уравнения ln(y’)+y=0 в явном виде.
>eq:=ln(diff(y(x),x))+y;
>dsolve(eq, y(x),explicit); y(x) = ln(x +_C1) .
г) Найти общее решение уравнения y’=(x+y)/(x–y).
>dsolve(diff(y(x),x)=(x+y)/(x–y),y(x));
ЗАДАЧА КОШИ
Уравнение >eq:=diff(y(x),x)=f(x,y); начальное условие >ic:=y(a)=b;
Решение задачи Коши осуществляется командой
>dsolve({eq, ic}, y(x));
Или
>dsolve({diff(y(x),x)=f(x,y), y(a)=b}, y(x));
Можно объединить уравнение и начальное условие: >P:= {diff(y(x),x)=f(x,y), y(a)=b};
Тогда решение задачи Коши будет осуществляться командой
>dsolve(P,y(x));
Решение задачи Коши находится в явном виде (или не находится вообще).
Пример. Решить задачу Коши y’ = 1+exp(x–y) , y(a) = b .
>dsolve({D(y)(x)=1+exp(x–y),y(a)=b},y(x)); y(x) = ln(x + eb–a –a)+ x
Пример. Построить график решения задачи Коши y’=x+y , y(0)=1.
>dsolve({D(y)(x)=x+y,y(0)=1},y(x)); y(x) =2 ex – x – 1
>rhs(“); 2 ex – x – 1 выделение правой части равенства
>plot(“,x= –1..1); график этой правой части.
Вместо двух последних команд можно было бы обойтись одной
>plot(rhs(“), x= –1..1);
Если не существует точного решения задачи Коши, то можно найти её решение в виде степенного ряда, применяя команды
>Order:=4; задание порядка разложения в ряд (по умолчанию = 6)
>dsolve({D(y)(x)=x^2+y(x)^2,y(1)=2,series); в правой части уравнения следует писать у(х) и добавить опцию series. Ответ: y(x)=2+5(x–1)+11(x–1)2+(70/3)(x–1)3+O((x–1)4)
График этого приближенного решения строится командами
>convert(rhs(“),polynom); выделение правой части и превращение её в многочлен
>plot(“,x=0..2); график этого многочлена.
УРАВНЕНИЯ ВТОРОГО ПОРЯДКА
а) Найти общее решение уравнения y”= y’/x +8 x2
>dsolve((D@@2)(y)(x)=D(y)(x)/x+8*x^2,y(x)); y(x)= x4 + _C1 + _C2x2
б) Найти общее решение уравнения x2y”+3xy’+2y=0.
>dsolve(x^2*diff(y(x),x,x)+3*x*diff(y(x),x)+2*y,
y(x));
в) Найти общее решение уравнения y”–3y’+2y=ex .
> dsolve(diff(y(x),x,x)–3*diff(y(x),x)+2*y=exp(x), y(x)); y(x)=–xex–ex+_C1ex+_C2e2x
г) Найти фундаментальную систему решений уравнения y’’’–3y”+4y’–2y=0 .
>dsolve((D@@3)(y)(x)–3*(D@@2)(y)(x)+4*D(y)(x)–2*y,y(x),output=basis);
Ответ: [ex, excosx, exsinx]
При наличии правой части программа выдает ФСР + частное решение
>dsolve(diff(y(x),x,x)–5*diff(y(x),x)+6*y=2*exp(x),y(x), output=basis); [[e2x, e3x], ex]
ЗАДАЧА КОШИ
Пример. Решить задачу Коши x2y”+3xy’+2y=0 , y(1)=5 , y’(1)=4.
>dsolve({x^2*diff(y(x),x,x)+3*x*diff(y(x),x)+2*y,y(1)=5,D(y)(1)=4},y(x));
Или
>eq:= x^2*diff(y(x),x,x)+3*x*diff(y(x),x)+2*y;
>ic:= y(1)=5,D(y)(1)=4;
>dsolve({eq,ic},y(x));
Или
>H:={x^2*diff(y(x),x,x)+3*x*diff(y(x),x)+2*y, y(1)=5,D(y)(1)=4};
>dsolve(H,y(x));
Добавив опцию series, можно получить решение задачи Коши в виде ряда (предварительно задать константу Order:=n; и обязательно написать в уравнении у(х) вместо у).
Для решения краевой задачи нужно начальные условия заменить условиями на концах
>dsolve({diff(y(x),x,x)+y,y(0)=a,y(1)=b},y(x));
СИСТЕМЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Система
задается или в виде последовательности
выражений (exprseq)
>es:=diff(x(t),t)=x(t)+4*y(t), D(y)(t)=3*x(t)+5*y(t);
В этом случае в команде следует писать {es}.
Та же система может быть задана в виде множества (set)
>S:={diff(x(t),t)=x(t)+4*y(t), diff(y(t),t)=3*x(t)+5*y(t)};
В этом случае в команде можно её писать без фигурных скобок, т.е. просто S.
Аналогично, искомые функции могут быть заданы в виде >fs:=x(t),y(t); B этом случае в команде следует писать {fs} . Если же искомые функции задавать в виде >F:={x(t),y(t)}; то в команде можно обходится без фигурных скобок.
Нахождение общего решения системы производится одной из следующих команд
>dsolve({es},{fs}); >dsolve(S,{fs}); >dsolve({es},F); >dsolve(S,F);
ЗАДАЧА КОШИ ДЛЯ СИСТЕМЫ
Решение задачи Коши для системы находится по команде >dsolve(P, Q); где Р – множество (в фигурных скобках), элементами которого служат уравнения системы и начальные условия, а Q – множество (в фигурных скобках), элементами которого служат искомые функции.
Пример.
>sys:=D(x)(t)=x(t)–y(t), D(y)(t)=x(t)+y(t); задание двух уравнений системы,
>ic:=x(0)=1, y(0)=0; задание начальных условий
>fs:=x(t), y(t); задание системы искомых функций
>P:=dsolve({sys,ic},{fs}); нахождение решения системы P:={x(t)=etcost, y(t)=etsint}
Соответствующая кривая на фазовой плоскости строится командой
>plot([rhs(P[1]),rhs(P[2]),t=–3..1]);
ПОЛЕ НАПРАВЛЕНИЙ. ФАЗОВЫЕ ПОРТРЕТЫ.
Уравнение y’= f(x,y).
Подгрузить >with(DEtools, DEplot1): или >with(DEtools):
Поле направлений находится по команде
>DEplot1(P, Q, x=a..b, y=c..d);
Здесь Р – дифференциальное уравнение, задаваемое в одной из следующих форм
diff(y(x),x)=f(x,y) или D(y)(x)=f(x,y) или f(x,y)
Q – переменные, задаваемые в форме y(x) или [x,y] .
Пример 1. Построить поле направлений для уравнения y’= sin(y–x).
>DEplot1(sin(y–x), y(x), x= –3..3, y= –3..3);
Пример 2. Построить поле направлений для уравнения y’= y–x и несколько интегральных кривых, соответствующих заданным начальным условиям
>DEplot1(y–x, [x,y], x= –3..3, {[0,2],[0,1],[0,0],[0,–1],[0,–2]}, y= –3..3);
Для построения семейства интегральных кривых без поля направлений употребляют команду >phaseportrait с подгрузкой >with(DEtools, DEplot1): или >with(DEtools):
>phaseportrait(y-x, [x,y], x= -3..3, {[0,2],[0,1],[0,0],[0,-1],[0,-2]}, y= -3..3);
Для увеличения точности картинки можно во все команды добавлять опцию stepsize=h (по умолчанию расчетный шаг h=(b–a)/20 ).
Система
.
Кривые на фазовой плоскости [x,y] и в пространстве [t,x,y].
Подгрузить >with(DEtools, DEplot): или >with(DEtools):
Формат команды
>DEplot([f(x,y,t),g(x,y,t)], [x,y], t=t1..t2, {[t1,x1,y1],[t2,x2,y2],[t3,x3,y3]});
Команда строит на плоскости [x,y] кривые, соответствующие заданным начальным условиям для указанного диапазона изменения времени. Для повышения точности можно уменьшить шаг расчета, указав опцию stepsize=h . В качестве опции можно указать также диапазон изменения координат x=a..b, y=c..d .
Если система является линейной и автономной, то вместо задания уравнений можно указать её матрицу
>A := linalg[matrix](2,2,[1,1,–1,1]):
>DEplot(A, [x,y], t=–5..0, {[0,1,0],[0,0,1],[0,–1,0],[0,0,–1]});
Если в команде вместо [x,y] написать [t,x,y], то будет построены кривые в пространстве.
>DEplot([y,–x], [t,x,y], t=–5..0, {[0,1,0],[0,0,1],[0,–1,0],[0,0,–1]});
Поле направлений и кривые на фазовой плоскости.
Подгрузить >with(DEtools, DEplot2): или >with(DEtools):
Формат команды
>DEplot2([f(x,y,t),g(x,y,t)], [x,y], t=t1..t2, {[t1,x1,y1],[t2,x2,y2],[t3,x3,y3]});
Команда строит на плоскости [x,y] поле направлений и кривые, соответствующие заданным начальным условиям для указанного диапазона изменения времени. Для повышения точности можно уменьшить шаг расчета, указав опцию stepsize=h . В качестве опции можно указать также диапазон изменения координат x=a..b, y=c..d . Также как и в предыдущем случае для линейной автономной системы можно указывать только её матрицу. Если не указывать начальные условия, то будет построено только поле направлений. В этом случае обязательно(!) указать диапазон изменения координат x=a..b, y=c..d.
ЧИСЛЕННОЕ РЕШЕНИЕ ЗАДАЧИ КОШИ
>F:=dsolve({D(y)(x)=x–y(x),y(0)=1},y(x),numeric);
F:=proc(rkf45_x)…end это означает, что решение просчитано.
Для нахождения значения решения при х=1,76 следует выполнить команду
>F(1,76); [х=1,76 y(1,76)=1,04089…]
Для построения графика решения на отрезке –1..2 нужно выполнить команду
>plots[odeplot](F,[x,y(x)],–1..2);
Если подгружен пакет >with(plots): , то можно выполнить команду
>odeplot(F,[x,y(x)],–1..2);
ЧИСЛЕННОЕ РЕШЕНИЕ В ВИДЕ ТАБЛИЦЫ
>eq:={D(y)(x)=x-y(x),y(0)=1}: задача Коши
>X:=array([1,2,3,4]): значения Х, для которых мы хотим найти у(х)
>F:=dsolve(eq,y(x),numeric,value=X);
ЧИСЛЕННОЕ РЕШЕНИЕ ДЛЯ СИСТЕМЫ
>sys:=diff(x(t),t)=0.1*x(t)–y(t), diff(y(t),t)=x(t)+0.1*y(t), x(0)=1,y(0)=0: задача Коши.
>F:=dsolve({sys},{x(t),y(t)},numeric,output=listprocedure);
F:=[t=proc(t)…end, x(t)= proc(t)…end, y(t)= proc(t)…end] (посчитано!)
Вывод конкретной точки для t=1
>F(1); [t(1)=1, x(t)(1)=1.44…, y(t)(1)=2.28…]
Построение графика решениея
>X:=subs(F,x(t)): Y:=subs(F,y(t)):
>plot([X,Y, –1..1]);
Можно объединить эти две команды
>plot([subs(F,x(t)), subs(F,y(t)), –10..5]);
ЧИСЛЕННОЕ РЕШЕНИЕ ДЛЯ СИСТЕМЫ В ВИДЕ ТАБЛИЦЫ
>sys:=diff(x(t),t)=x(t)–y(t), diff(y(t),t)=x(t)+y(t), x(0)=1,y(0)=0: задача Коши.
>T:=array([1,2,3]): значения переменной t.
>F:=dsolve({sys},{x(t),y(t)},numeric,value=T);