Архив разработки (2 Кб, Maple)
Классическая модель нелинейной системы, демонстрирующая периодические автоколебания.
При различных начальных условиях фазовая траектория стремится к аттрактору - предельному циклу.
Установившиеся движения представляют собой периодические колебания, математическим образом в фазовом пространстве которых и является предельный цикл.
> restart;with(DEtools):with(plots):
Warning, the name changecoords has been redefined
> 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):
Фазовый портрет:
> pointplot([g],connect=true,color=red,title="phase portrait",labels=[coordinate,velocity]):
Решение:
> pointplot([h],connect=true,color=red,title="oscillations",labels=[t,coordinate]);
![[Maple Plot]](images/vdp10.gif)
> ic:=[[x(0)=3,y(0)=2],[x(0)=2,y(0)=0],[x(0)=0.5,y(0)=0.5],[x(0)=0,y(0)=0]];
> DEplot(subs(delta=d,sys),[x(t),y(t)],t=0..15*Pi,ic,method=rkf45,linecolor=black,color=blue,stepsize=0.1,title="Van-der-Pole Oscillator");
![ic := [[x(0) = 3, y(0) = 2], [x(0) = 2, y(0) = 0], ...](images/vdp11.gif)
![[Maple Plot]](images/vdp12.gif)
При изменении параметра происходит изменение формы аттрактора, при этом его топология не изменяется:
> for i from 1 by 1 to 15 do
> #delta:=i/20;
> fp[i]:=DEplot(subs(delta=i/20,sys),[x(t),y(t)],t=0..15*Pi,ic,method=rkf45,linecolor=black,color=blue,stepsize=0.1,title="Van-der-Pole Oscillator"):
> end do:
> display(seq(fp[i],i=1..15),insequence=true);
![[Maple Plot]](images/vdp14.gif)
Наверх
|