Уравнение Дуффинга и его странные аттракторы

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?бражена на рисунке.

9.3 Примеры работы программы (скриншоты)

Фазовая траектория при заданных параметрах.

Изображения аттрактора при заданных параметрах.

Рисунки, представленные в данной работе, за исключением схематических, являются результатом работы данной программы.

Заключение

Были изучены и проанализированы работы и статьи по теории нелинейных и хаотических колебаний, в частности, большое внимание уделялось их возникновению в системах, управляемых частным случаем уравнения Дуффинга.

Так же была разработана программа, результатом работы которой является построение траектории движения, а также построение аттрактора, соответствующего исходным наборам данных. Она является удобным средством для изучения решений уравнения Дуффинга. Изображения хаотических аттракторов с высоким разрешением, полученные с помощью этой программы являются очень известными аттракторами. Хаотический аттрактор на рис.8 () носит название японский аттрактор, а аттрактор на рис.8 () хаотический аттрактор Уеды.

Литература

1.Мун Ф. Хаотические колебания. - М: Мир, 1990. - 311 с.

2.Демидович Б.П. Лекции по математической теории устойчивости. - М: Стереотип, 2008. - 480 с.

.Корн Г., Корн Т. Справочник по Математике. - М: Лань, 2003 г. - 832 с.

.Мартынова И.М. и О.Ю. Макаренков. Изучение уравнения Дуффинга при аппроксимации кубической нелинейности кусочно-нелинейной функцией. // Вестник ВГУ, серия физика, математика. - 2003. - №3 - с. 201-202

.Мартынов Б.А. Теория колебаний. Математические модели динамических систем/ Б.А. Мартынов - СПб.: СПбГПУ, 2002. - 56 с.

6.Ueda Y. Survay of Regular and Chaotic Phenomena in Forced Duffing Oscillator/ Y. Ueda. 1991. - 30с.

Приложения

Приложение А: Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Buttons, Menus, unit2;

type

TForm1 = class (TForm)

Panel1: TPanel;: TGroupBox;: TLabel;

Label3: TLabel;: TLabel;: TLabel;

InitTEdit: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TRadioGroup;: TEdit;: TLabel;: TGroupBox;: TLabel;: TLabel;: TEdit;: TEdit;: TBitBtn;: TBitBtn;: TBitBtn;

Edit7: TEdit;: TLabel;: TLabel;: TLabel;

Edit8: TEdit;: TBitBtn;: TBitBtn;: TGroupBox;: TLabel;: TEdit;: TLabel;: TEdit;: TBitBtn;: TBitBtn;FormCreate (Sender: TObject);N1Click (Sender: TObject);BitBtn2Click (Sender: TObject);BitBtn1Click (Sender: TObject);Button1Click (Sender: TObject);BitBtn4Click (Sender: TObject);BitBtn3Click (Sender: TObject);Edit2Click (Sender: TObject);Edit3Click (Sender: TObject);BitBtn5Click (Sender: TObject);BitBtn6Click (Sender: TObject);Edit10Click (Sender: TObject);Edit9Click (Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;: TGrafik;: integer;: real;

{$R *. dfm}TForm1. FormCreate (Sender: TObject);: =0;: =0.1;: =TGrafik. Create (Form1);. SetParent (Form1. Panel1);. Text: =-10;. Text: =10;. Text: =-10;. Text: =10;. Click;;TForm1. N1Click (Sender: TObject);. Text: =-10;. Text: =10;. Text: =-10;. Text: =10;. Click;;TForm1. BitBtn2Click (Sender: TObject);. Text: =floattostr (strtofloat (Edit8. Text) - stp);. Click;;TForm1. BitBtn1Click (Sender: TObject);. Text: =floattostr (strtofloat (Edit8. Text) +stp);. Click;;TForm1. Button1Click (Sender: TObject);x0,xk,YMax,YMin: real;_K,_B: real;a,b,alf,bet,h,t: real;x,y: real;i,na,nb: integer;f1 (t,x,y: real): real;: =y;;f2 (t,x,v: real): real;: =-_K*y-x*x*x+_B*cos (t);;Runge (a,b,h: real; var x,y: real);k1,k2,k3,k4,l1,l2,l3,l4,t: real;: =a;(t <= b) do

begin: =h*f1 (t,x,y);: =h*f2 (t,x,y);: =h*f1 (t+1/2*h,x+1/2*k1,y+1/2*l1);: =h*f2 (t+1/2*h,x+1/2*k1,y+1/2*l1);: =h*f1 (t+1/2*h,x+1/2*k2,y+1/2*l2);: =h*f2 (t+1/2*h,x+1/2*k2,y+1/2*l2);: =h*f1 (t+h,x+k3,y+l3);: =h*f2 (t+h,x+k3,y+l3);: =x+1/6* (k1+2*k2+2*k3+k4);: =y+1/6* (l1+2*l2+2*l3+l4);RG1. ItemIndex=0 then g. AddPathXY (x,y);: =t+h;; {while};. FirstPoint;. OnPaint: =Button1click;: =strtofloat (InitTEdit. Text);: =strtofloat (FinalTEdit. Text);: =strtofloat (MaxEdit. Text);: =strtofloat (MinEdit. Text);. SetBorder;. SetLabels (x0,xk,Ymin,Ymax);

_K: =strtofloat (edit1. Text);

_B: =strtofloat (edit5. Text);: =strtoint (Edit10. Text);: =strtoint (Edit9. Text);: =Pi/6*strtofloat (Edit8. Text);: =t+2*Pi*na;: =t+2*Pi*nb;: =strtofloat (edit2. text);: =strtofloat (edit3. text);: =strtofloat (Edit7. Text);: =alf;: =bet;RG1. ItemIndex of

: begin(a,b,h,x,y);; {0}

: begin: =a;i: =1 to nb do

begin(t,t+2*Pi,h,x,y);

if i>=na then g. AddPointXY (x,y);

t: =t+2*Pi;; {for}

end; {1}; {case};TForm1. BitBtn4Click (Sender: TObject);check of

: Edit2. Text: =floattostr (strtofloat (Edit2. Text) - stp);

: Edit3. Text: =floattostr (strtofloat (Edit3. Text) - stp);; {case}. Click;;TForm1. BitBtn3Click (Sender: TObject);check of

: Edit2. Text: =floattostr (strtofloat (Edit2. Text) +stp);

: Edit3. Text: =floattostr (strtofloat (Edit3. Text) +stp);; {case}. Click;;TForm1. BitBtn5Click (Sender: TObject);check of

: Edit10. Text: =floattostr (strtofloat (Edit10. Text) - 1);

: Edit9. Text: =floattostr (strtofloat (Edit9. Text) - 1);; {case}. Click;;TForm1. BitBtn6Click (Sender: TObject);check of

: Edit10. Text: =floattostr (strtofloat (Edit10. Text) +1);

: Edit9. Text: =floattostr (strtofloat (Edit9. Text) +1);; {case}. Click;;TForm1. Edit2Click (Sender: TObject);: =0;. Color: =clLime;. Color: =clWindow;. Color: =clWindow;. Color: =clWindow;;TForm1. Edit3Click (Sender: TObject);: =1;. Color: =clLime;. Color: =clWindow;. Color: =clWindow;. Color: =clWindow;;TForm1. Edit10Click (Sender: TObject);: =2;. Color: =clWindow;. Color: =clWindow;. Color: =clLime;. Color: =clWindow;;TForm1. Edit9Click (Sender: TObject);: =3;. Color: =clWindow;. Color: =clWindow;. Color: =clLime;. Color: =clWindow;

end;.