- •Розглянути методи знаходження диференціальних рівнянь.
- •Розробити алгоритм розв’язання диференціальних рівнянь методом Ейлера.
- •Розробити програмний продукт для розв’язання диференціальних рівнянь методом Ейлера.
- •Розділ 1 Методи розв’язування систем диференціальних рівнянь що породжують атрактори
- •Основні поняття
- •Властивості та пов'язані визначення
- •Система Ресслера
- •Метод Ейлера
- •Розділ 3 Розробка програмного продукту розв’язування системи Реслера методом Ейлера
- •Постановка задачі
- •Вибір способу реалізації
- •Дослідження системи Ресслера
- •Висновки
- •Джерела
- •Додаток а
Висновки
У курсовій роботі було реалізовано розв’язування системи диференціальних рівнянь в програмній інтерпретації в середовищі програмування QT. По завершенні роботи були досягнуті необхідні цілі і виконані поставлені завдання:
розглянуто чисельні методи розв’язання диференціальних рівнянь;
проведено аналіз методу розв'язання диференціальних рівнянь;
описано метод Ейлера, необхідні для вирішення поставлених завдань;
розроблено алгоритм реалізації програми.
реалізовано розв’язання диференціальних рівнянь в програмній інтерпретації в середовищі програмування QT;
Джерела
Воронов В. К. Современная физика: Учебное пособие/ В. К. Воронов, А. В. Подоплелов // М.: КомКнига, 2005. - 512 с. - ISBN 5-484-00058-0, гл. 2 Физика открытых систем. п.п 2.4 Хаотический атрактор Рёсслера.
Эйлер Л. Интегральное исчисление. Том 1. — М.: ГИТТЛ, 1956. – 415 с.
Бабенко К. И. Основы численного анализа. — М.: Наука, 1986. – 183 с.
Наочні образи хаосу // Соросівський освітній журнал; Кузнецов А.П. – 2000-- . – Щомісячник. – 2000, № 11, с. 104-110;
Каханер Д., Моулер К., Нэш С. Численные методы и программное обеспечение (пер. с англ.). М.: Мир, 2001, 575 c.
Самарский А. А., Гулин А. В. Численные методы: Учеб. пособие для вузов. — М.: Наука. Гл. ред. физ-мат. лит., 1989. — 432 с.
Мудров А.Е.Численные методы для ПЭВМ на языках Паскаль, Фортран и Бейсик. МП “Раско”, Томск, 1991 г.
Додаток а
Текст програми.
void GLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotated(xRot / 16.0, 1.0, 0.0, 0.0);
glRotated(yRot / 16.0, 0.0, 1.0, 0.0);
glRotated(zRot / 16.0, 0.0, 0.0, 1.0);
GLUquadric* quad = gluNewQuadric();
float xnew,ynew,znew;
float epsilon=0.3;
float f=0.4;
float mu=8.5;
float dt=0.0008f;
float t=0.009f;
glColor3f( 1.0f, 0.0f, 1.0f );
glBegin( GL_LINES);
int i=0;
float xold=2.0f;
float yold=2.0f;
float zold=1.0f;
// Задаєм колір лінії
glColor3f(0,0,0);
glTranslated(-180,0,0);
gluQuadricDrawStyle(quad, GLU_FILL);
QFile open3("mas.txt"); // Робим прив'язку до файлу
QTextStream p3(&open3);
open3.open(QIODevice::WriteOnly | QIODevice::Text);
do
{
///*
i=i+1;
xnew=xold+dt*(-yold-zold);
ynew=yold+dt*(xold+epsilon*yold);
znew=zold+dt*(f+zold*xold-mu*zold);
QString str = QString::number(znew);
p3 « QString("%1 \r\n").arg(str);
if (i%100==0){
gluSphere (quad, 0.010, 3, 2);
glTranslatef(xnew*1/2000,ynew*1/2000,znew*1/2000);
}
xold=xnew;
yold=ynew;
zold=znew;
t=t+dt;
}
while (i<=50000);
open3.close();
glEnd();
glPopMatrix();
}
