Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
Научно-практический журнал "Exponenta Pro. Математика в приложениях". Вышел 1/2004 номер журнала
 
Осциллятор Дуффинга
выполнил: Кузнецов Сергей,
Нижегородский Государственный Педагогический Университет, физический факультет, кафедра общей физики, 2002

archive.gif (75 bytes) Архив разработки (4 Кб, Maple)

Введение

Биффуркация из предельного цикла.

Явление удвоения периода, или, иначе, генерации субгармоники, давно известно в электронике. Например, некоторые электронные цепи описываются уравнением Дуффинга

diff(q(t),t,t)+beta*diff(q(t),t)+gamma*q(t) = alpha...

соответствующим отклику нелинейного осциллятора на периодическую возмущающую силу. Даже это проостое уравнение описывает множество явлений, связанных с удвоением и утроением периода. Другие субгармоники также могут присутствовать. Может наблюдаться целая последовательность удвоений или утроений периода.

Осциллятор Дуффинга

> restart; with(plots): with(DEtools):

Warning, the name changecoords has been redefined

Уравнение Дуффинга:

> eq:=diff(x(t),t,t)+2*delta*diff(x(t),t)+a*x(t)+b*x(t)^3=F*cos(nu*t);

Система уравнений:

> sys:=[diff(x(t),t)=y(t), diff(y(t),t)+2*delta*y(t)+a*x(t)+b*x(t)^3=F*cos(nu*t)];

eq := diff(x(t),`$`(t,2))+2*delta*diff(x(t),t)+a*x(...

sys := [diff(x(t),t) = y(t), diff(y(t),t)+2*delta*y...

Задание параметров системы:

nu: 0.1, 0.5, 1, 1.2,2

> delta:=0.35/2:
a:=0:
b:=1:
F:=8.5:
nu:=1.2:
sys;
eq; ##F=8.5,8.0,6.6

[diff(x(t),t) = y(t), diff(y(t),t)+.3500000000*y(t)...

diff(x(t),`$`(t,2))+.3500000000*diff(x(t),t)+x(t)^3...

Начальные условия

> ic:=[[x(0)=1,y(0)=0]];##,[x(0)=2,y(0)=0],[x(0)=.5,y(0)=0],[x(0)=0,y(0)=0]];

ic := [[x(0) = 1, y(0) = 0]]

Создание массива

Если файла с массивом p (temp.m) не существует, символы комментариев нужно убрать и выполнить команды этой исполнительной группы. Если файл уже создан, то массив p будет загружен с помощью команды read.

Инициализация:

начальное и конечн. значения счетчика: i1:=1:i2:=40: #1,180

начальное и конечн. время: t1:=100*Pi: t2:=138*Pi: #100*Pi,108*Pi

шаг DEplot: ss:=0.08: #0.08:

шаг цикла: step:=1: #1

> read "temp.m":

> Digits:=4:

Эволюция фазового портрета при изменении параметра nu от 0.01 до 1.8 с шагом 0.01

> pp:=display([seq(p[i],i=i1..i2)],insequence = true):

> ppc:=plot(x*1.5,x=-4..4):nup:=textplot([1,6,"nu="]):

> display(ppc,pp,nup);

[Maple Plot]

> f:=dsolve({eq,x(0)=1,D(x)(0)=0},x(t),type=numeric,method=dverk78,output=listprocedure):

> fp := subs(f,x(t)):

Установившиеся колебания:

> ti:=99*Pi; tf:=(112+50)*Pi; steps:=10000;nu:=0.02;

ti := 99*Pi

tf := 162*Pi

steps := 10000

nu := .2e-1

> vals:=seq([ti+(tf-ti)*i/steps,fp(ti+(tf-ti)/steps*i)],i=0..steps):

> pointplot([vals],connect=true,color=red,title="oscillations",labels=[time,x],numpoints=200);

[Maple Plot]

Фазовый портрет:

> sol:=dsolve({sys[1],sys[2], op(ic[1])},
{x(t),y(t)}, type=numeric,method=dverk78, output=listprocedure):

> px := subs(sol,x(t)): py := subs(sol,y(t)):

> pvals:=seq([px(ti+(tf-ti)*i/steps),py(ti+(tf-ti)/steps*i)],i=0..steps):

> pointplot([pvals],connect=true,color=red,title="oscillations",labels=[x,y],numpoints=500);

[Maple Plot]

Литература

1) Неймарк Ю. И., Ланда П. С. Стохастические и хаотические колебания. - М.: Наука, 1987.

2) Хакен Г. Синергетика: Иерархия неустойчивостей в самоорганизующихся системах и устройствах. - М.: Мир, 1985.

Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 11.05.04
Сайт начал работу 1.09.00

Программное обеспечение Microsoft, Macromedia, VERITAS, Novell, Borland, Symantec, Oracle и др.