Архив разработки (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]);
> 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");
При изменении параметра происходит изменение формы аттрактора, при этом его топология не изменяется:
> 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);
Наверх
|