- •С.Н. Стребуляев, д.Ю. Васин
- •Оглавление
- •Введение
- •1. Основные пакеты, операторы и функции системы аналитических вычислений maple
- •1.1. Пакеты функций
- •1.2. Способы задания функций и построение их графиков
- •1.3. Вычисление пределов
- •1.4. Вычисление производных
- •1.5. Вычисление интегралов
- •1.6. Операции с рядами
- •1.7. Решение уравнений, неравенств и их систем
- •1.8. Анализ функций
- •Решение дифференциальных уравнений второго порядка:
- •Численное решение системы дифференциальных уравнений:
- •Решение системы двух дифференциальных уравнений с выводом фазового портрета решения:
- •Фазовый портрет;
- •Решение;
- •Система уравнений Ван дер Поля при аппроксимации характеристики лампы полиномом 3 степени
- •Получаем укороченные уравнения Ван дер Поля
- •Операции с векторами:
- •Способы задания матриц:
- •Операции над матрицами:
- •1.11. Преобразование комплексных чисел, аналитических выражений и функций комплексного переменного
- •Функции комплексного переменного:
- •Работа с комплексными функциями
- •Начальные условия:
- •Конкретные значения параметров системы указаны в вариантах контрольных заданий.
- •Нерезонансные случаи
- •Греческий алфавит
Решение дифференциальных уравнений второго порядка:
> restart:
> od1:=diff(y(x),x$2)-diff(y(x),x)=sin(x);
> dsolve({od1},y(x));
> dsolve({diff(y(x),x$2)-diff(y(x),x)=sin(x)},y(x));
> dsolve({diff(y(x),x$2)-diff(y(x),x)=sin(x),y(0)=0,D(y)(0)=11},y(x));# уравнение с начальными условиями;
> y(x):=rhs(%);
> y(x);
> restart:
> od2:=m*diff(y(x),x$2)-k*diff(y(x),x);
> yxo:=y(0)=0,D(y)(0)=1; # Задание начальных условий;
> dsolve({od2,yxo},y(x));
Решение систем дифференциальных уравнений (в явном виде, в виде ряда, с использованием преобразования Лапласа):
> restart:
> sys:=diff(y(x),x)=2*z(x)-y(x)-x,diff(z(x),x)=y(x);
> fncs:={y(x),z(x)};
> A:=dsolve({sys,y(0)=0,z(0)=1},fncs); # решение системы уравнений в явном виде (exact);
> A[1];
> z(x):=rhs(%);
> A[2];
> y(x):=rhs(%);
> restart:
> sys:=diff(y(x),x)=2*z(x)-y(x)-x,diff(z(x),x)=y(x);
> fncs:={y(x),z(x)};
> B:=dsolve({sys,y(0)=0,z(0)=1},fncs,series); # решение системы уравнений в виде ряда;
> y(x):=rhs(B[1]);
> z(x):=rhs(B[2]);
> restart:
> sys:=diff(y(x),x)=2*z(x)-y(x)-x,diff(z(x),x)=y(x);
> fncs:={y(x),z(x)};
> Order:=8;# задаем порядок приближения рядом (по умолчанию 6);
> B:=dsolve({sys,y(0)=0,z(0)=1},fncs,series);
> y(x):=rhs(B[1]);
> z(x):=rhs(B[2]);
> restart:
> sys:=diff(y(x),x)=2*z(x)-y(x)-x,diff(z(x),x)=y(x);
> fncs:={y(x),z(x)};
>
> dsolve({sys,y(0)=0,z(0)=1},fncs,method=laplace);# решение системы уравнений с использованием преобразования Лапласа;
Численное решение системы дифференциальных уравнений:
> restart:
> sys:=diff(y(x),x)=2*z(x)-y(x)-x,diff(z(x),x)=y(x);
> fncs:={y(x),z(x)};
> F:=dsolve({sys,y(0)=0,z(0)=1},fncs,numeric); # решение уравнения по методу Рунге-Кутта-Фелберга;
> F(2);
plots[odeplot](F,[x,y(x)],0..2.5,labels=[x,y],color=red); # построения графика y(x) решения;
> plots[odeplot](F,[x,z(x)],0..2.5,labels=[x,z],color=red); # построения графика z(x) решения;
> restart:with(plots):
> sys:=diff(y(x),x)=z(x),diff(z(x),x)=3*sin(y(x));
> fncs:={y(x),z(x)};
> P:=dsolve({sys,y(0)=0,z(0)=1},fncs,type=numeric);
> odeplot(P,[[x,y(x)],[x,z(x)]],-4..4,numpoints=25,color=red,thickness=2);# построение графиков y(x) и z(x) в одних осях;
Решение системы двух дифференциальных уравнений с выводом фазового портрета решения:
> restart:with(plots):
> sys:=diff(y(x),x)=z(x),diff(z(x),x)=3*sin(y(x));
> fncs:={y(x),z(x)};
> P:=dsolve({sys,y(0)=0,z(0)=1},fncs,type=numeric);
odeplot(P,[y(x),z(x)],-4..4,numpoints=150,color=red,thickness=2);
Решение дифференциальных уравнений с кусочно-линейными функциями:
> restart:
> eq:=diff(y(x),x)+piecewise(x<x^2-3,exp(x/2))*y(x);
> dsolve(eq,y(x));
Гармонический осциллятор:
> restart:
> F:=(t)->A*sin(nu*t);
> ode:=diff(q(t),t$2)+2*delta*diff(q(t),t)+omega[0]^2*q(t)=F(t)/m;
> m:=3; delta:=0.1; omega[0]:=150; A:=20; nu:=2;# Задание параметров системы;
> yx0:=q(0)=1,D(q)(0)=0; # Задание начальных условий;
> dsolve({ode,yx0},q(t)); # Решение дифференциального уравнения (точное - exact);
> q(t):=rhs(%);
> plot(q(t),t=0..15); # Построение графика решения;
Решение уравнения Риккати:
> restart:
> eq:=diff(y(x),x)=piecewise(x>0,x)*y(x)^2;
> dsolve({y(0)=1,eq},y(x));
> # Проверка решения;
> simplify(eval(subs(%,eq)));
Решение дифференциальных уравнений в частных производных:
> restart:
> Diff(u(x,t),t,t)=a^2*Diff(u(x,t),x,x);
> # начальные условия; u(x,0)=f(x),Diff(u(x,t),t)=0 при t=0, - infinity < x < infinity,t>=0;
> eqn:=diff(u(x,t),t$2)-a^2*diff(u(x,t),x$2)=0;
> pdsolve(eqn);
> # _F1(at+x) и _F2(at-x) - произвольные дважды дифференцируемые функции;
> u:=unapply(rhs(%),x,t); # задаем u как функцию двух параметров x и t;
> # воспользуемся тем, что производная по времени от u(x,t) при t=0 равна нулю;
> D[2](u)(x,0)=0;
> dsolve(%,_F1(x));
> _F1:=F;
> _F2:=x->F(-x);
> u(x,t);
> u(x,0);
> f:=x->1/5*(1-abs(x))*Heaviside(1-abs(x));
> F:=(1/2)*f;
> a:=1;
> evalf(u(x,t));
Осциллятор Ван-дер-Поля
Классическая модель нелинейной системы, демонстрирующая периодические автоколебания.
При различных начальных условиях фазовая траектория стремится к аттрактору — предельному циклу.
Установившиеся движения представляют собой периодические колебания, математическим образом в фазовом пространстве которых и является предельный цикл.
> restart;with(DEtools):with(plots):
> vdp:=diff(x(t),t,t)-2*delta*diff(x(t),t)*(1-alpha*x(t)^2)+omega^2*x(t)=0;
> alpha:=1;omega:=1;d:=0.2;
> sys:=[diff(x(t),t)=y(t),diff(y(t),t)-2*delta*y(t)*(1-alpha*x(t)^2)+omega^2*x(t)=0];
> ff:=dsolve({sys[1],subs(delta=d,sys[2]),x(0)=1,y(0)=1},
{x(t),y(t)}, type=numeric, output=listprocedure);
> fp := subs(ff,x(t)): fw := subs(ff,y(t)):
> steps:=100; init_t:=0; fin_t:=15*Pi;
> g:=seq([fp((fin_t-init_t)/steps*i),fw((fin_t-init_t)/steps*i)],i=0..steps):
> h:=seq([(fin_t-init_t)/steps*i,fp((fin_t-init_t)/steps*i)],i=0..steps):