close

Вход

Забыли?

вход по аккаунту

?

Курсовая(9)

код для вставкиСкачать
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«НОВГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ имени ЯРОСЛАВА МУДРОГО»
Институт электронных и информационных систем
Кафедра «Прикладная математика и информатика»
Исследование поведения модели системы дифференциальных
уравнений.
Курсовая работа по дисциплине
«Математическое моделирование»
Студент группы ________
________________
(Фамилия И.О)
<<___>>_________2012г.
_____________
(подпись)
Профессор КПМИ _______________
(Фамилия И.О)
<<___>>_________2012г.
_____________
(подпись)
Великий Новгород, 2012
1
Содержание
1.
2.
3.
4.
5.
6.
Введение
Теория работы
Компьютерная реализация с примерами
Заключение
Список литературы
Приложения
2
3
4
7
17
15
16
Введение
Математическая модель — это приближенное описание какого-либо
класса явлений или объектов реального мира на языке математики. Основная
цель моделирования — исследовать эти объекты и предсказать результаты
будущих наблюдений. Однако моделирование — это еще и метод познания
окружающего мира, дающий возможность управлять им.
Математическое моделирование и связанный с ним компьютерный
эксперимент незаменимы в тех случаях, когда натурный эксперимент
невозможен или затруднен по тем или иным причинам. Например, нельзя
поставить натурный эксперимент в истории, чтобы проверить, «что было бы,
если бы...» Невозможно проверить правильность той или иной
космологической теории. В принципе возможно, но вряд ли разумно,
поставить эксперимент по распространению какой-либо болезни, например
чумы, или осуществить ядерный взрыв, чтобы изучить его последствия.
Однако все это вполне можно сделать на компьютере, построив
предварительно математические модели изучаемых явлений.
3
Теория работы
1)Основные этапы математического моделирования
а) Построение модели. На этом этапе задается некоторый
«нематематический» объект — явление природы, конструкция,
экономический план, производственный процесс и т. д. При этом, как
правило, четкое описание ситуации затруднено. Сначала выявляются
основные особенности явления и связи между ними на качественном уровне.
Затем найденные качественные зависимости формулируются на языке
математики, то есть строится математическая модель. Это самая трудная
стадия моделирования.
б) Решение математической задачи, к которой приводит модель. На этом
этапе большое внимание уделяется разработке алгоритмов и численных
методов решения задачи на ЭВМ, при помощи которых результат может
быть найден с необходимой точностью и за допустимое время.
в) Интерпретация полученных следствий из математической модели.
Следствия, выведенные из модели на языке математики, интерпретируются
на языке, принятом в данной области.
г) Проверка адекватности модели. На этом этапе выясняется, согласуются ли
результаты эксперимента с теоретическими следствиями из модели в
пределах определенной точности.
д) Модификация модели. На этом этапе происходит либо усложнение
модели, чтобы она была более адекватной действительности, либо ее
упрощение ради достижения практически приемлемого решения.
4
2)Исходные данные
x '  axy  sin(t )
y '  bxet  x  cye2t
a, b, c  (0,1]
3) Основная теория
Для моделирования данной нам системы дифференциальных уравнений мы
будем использовать метод Эйлера.
Метод Эйлера — наиболее простой численный метод решения (систем)
обыкновенных дифференциальных уравнений. Впервые описан Леонардом
Эйлером в 1768 году в работе «Интегральное исчисление». Метод Эйлера
является явным, одношаговым методом первого порядка точности,
основанном на аппроксимации интегральной кривой кусочно-линейной
функцией, так называемой ломаной Эйлера.
Пусть дана задача Коши для уравнения первого порядка
dx
 f ( x, y) y | xx0  y0
dy
где функция f определена на некоторой области D  R2 . Решение
разыскивается на интервале ( x0 , b] . На этом интервале введем узлы
x0  x1  ....  xn  b
Приближенное решение в узлах xi , которое обозначим через yi определяется
по формуле
yi  yi 1  ( xi  xi 1 ) f ( xi 1, yi 1 )
i  1, n
Эти формулы обобщаются на случай систем обыкновенных
дифференциальных уравнений.
5
4) Задание и план работы.
1. Изучение и проработка теоретического материала.
2. Разработка алгоритмов и компьютерной программы.
а) программа должна строить графики функций по входным данным;
б) исследовать поведение математической модели по графикам в
зависимости от выбранных коэффициентов;
3. Примеры реализации программы.
6
Компьютерная реализация
С помощью метода Эйлера, я реализовал программу, которая по введенным
начальным данным строит графики, по которым можно исследовать данную
систему дифференциальных уравнений (рис. 1).
Рисунок 1 – основной интерфейс программы.
Так как программа позволяет сразу строить два графика, то это позволяет
удобно исследовать поведение графиков в зависимости от заданных
параметров.
Далее мы будем рассматривать серию скриншотов, которые будут
иллюстрировать сделанные мною выводу по поводу поведения модели.
На графиках красной линией идет график функции Х, а синей Y.
7
Так как в функции Х мы можем наблюдать функцию sin(t), а мы делаем шаг
именно по t, то мы сможем увидеть, что начало графика имеет
«волнообразную» (синусоидальную) структуру, и начинает стремиться к
прямой линии с увеличением параметра t. Это мы получаем за счет
зависимости от функции Y ,которая в свою очередь имеет в теле функции
экспоненту.
Построив график Y с теми же начальными параметрами, мы увидим, что
график сначала резко увеличивается (за счет параметра t , который вначале
цикла равен 0 и затем медленно увеличивается  ,что экспонента близка к 1),
а затем выходит на отрезок стабильности, т.е. стабильно растет.
8
Далее, я начну изменять параметры a, b ,c для того чтобы проследить за
изменением характера нашей модели.
Самый интересный график по функции Х, как мне кажется, мы можем
получить, прировняв коэффициент a к 0.1 т.е. устремляя его к минимуму. Он
будет зависеть только от одного параметра t, который будет увеличиваться
пошагово. Поэтому мы получим своеобразную, показанную на графике
синусоидальную кривую.
График же зависимости Y не претерпел сильных изменений, его структура не
изменилась, а изменилась только скорость его роста.
9
При данных параметрах график Х ведет себя так же, как и в первом случае.
График Y имеет чуть меньше скорости в росте по сравнению с первым
графиком и чуть большую скорость, чем во втором случае, т.е. в первом
случае к 490 он уже достигал значения 1.75 , а во втором случае достигал
лишь 1.55. В данном примере он находиться чуть ниже, чем 1.75.
Этот случай тоже ничем примечательным не отличает. График Х ведет себя
стабильно – синусоидальные периодические колебания под углом. У графика
Y изменяется только скорость роста. Будем надеяться, что когда я начну
уменьшать по два параметра сразу, то нас ждут более интересные графики.
10
Уменьшив параметры a и b, мы получаем точно такой же график, который
мы получили и в начале, что является следствием того, что график функции
X не сильно зависит от параметра b.
График Y как всегда не может нам показать ничего интересного кроме
незначительного изменения скорости роста.
11
График X при единственном единичном параметре b. График если и
изменился, то себя выдал не сильно. Поэтому мы можем сделать заключение,
что параметр c влияет на него тоже слабо.
График Y все также остается, зависим от изменений, которые претерпевают
параметры b и c, вследствие чего скорость его, то увеличивается, то
уменьшается.
12
График X по-прежнему стремиться стать неколеблющейся прямой. График Y
набирает скорость роста.
Далее я попробую, уменьшите все параметры сразу и посмотреть, что
произойдет.
Ожидается, что график X будет в виде косой синусоидальной
увеличивающейся, а Y будет увеличиваться.
График X оправдал мои ожидания.
13
График Y растет, но чуть медленнее из-за уменьшенных значений
параметров b и c ,а с уменьшением параметра a он растет быстрее.
Устремляя параметр a, мы можем увидеть изменения угла в графике X.
14
Как можно заметить из этих двух графиков, функция Y зависит так же от
параметра a, который регулирует скорость возрастания. Чем меньше a тем
больше скорость роста.
Далее я решил поэкспериментировать с начальными данными, а точнее с
начальными значениями X,Y и t.
Так как я теперь знаю зависимость наших графиков X и Y то могу спокойно
предполагать и поведение.
15
Как мы видим все идет стабильно.
И вот свершилось. График X дал резкое увеличение, в то время когда график
Y все, также не спеша растет.
Уменьшив параметр a, мы увидим то, что и ожидали – график X стал заметно
притормаживать, в то время как график Y растет.
16
Продолжая развлекаться с начальными условиями, мы приходим к тому, что
при одинаковых начальных условиях график функции X намного быстрее
растет, чем график функции Y.
Хотя в то же время график функции X очень зависим от своего параметра a ,
вследствие чего при низком значении оного мы получим, что график Y будет
обгонять X.
17
При отрицательных начальных значениях график Y уменьшается, а график X
неотступно растет.
18
Заключение
Написав программу, которая позволяет изучать графики представленной
системы дифференциальных уравнений, я провел тщательный анализ оной и
сделал для себя следующие выводы:
1) График X очень сильно зависит от параметра a;
2) График Y зависит, но не очень сильно от параметров b и c, а скорость
его роста зависит от параметра a;
3) График X растет намного быстрее по сравнению с графиком Y, но если
уменьшить параметр a, то X затормозиться и Y его перегонит;
4) При отрицательных начальных значениях график Y уменьшается, в то
время как график X растет.
19
Список литературы
1.В.В. Фаронов «Delphi. Программирование на языке высокого уровня»
2.Б.Ф. Кирьянов «Математическое моделирование»
20
Приложение
Программа реализована в среде Delphi 7.
unit Laba;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, TeeFunci;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Chart1: TChart;
Series2: TLineSeries;
Button2: TButton;
Series1: TLineSeries;
TeeFunction1: TAddTeeFunction;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function f1(a:real;x:real;y10:real;y20:real):real;
21
begin
f1:=a*y10*y20+sin(x);
end;
function f2(b:real;x:real;c:real;y10:real;y20:real):real;
begin
f2:=(b*y10*exp(-x))+y10+(c*y20*exp(-2*x))
end;
procedure TForm1.Button1Click(Sender: TObject);
var
h,x,a,b,c:real;
y1:array[0..1000] of real;
y2:array[0..1000] of real;
i:integer;
begin
Chart1.Repaint;
y1[0]:=StrToFloat(Trim(Edit1.Text));
y2[0]:=StrToFloat(Trim(Edit2.Text));
x:=StrToFloat(Trim(Edit3.Text));
a:=StrToFloat(Trim(Edit4.Text));
b:=StrToFloat(Trim(Edit5.Text));
c:=StrToFloat(Trim(Edit6.Text));
h:=0.001;
for i:=0 to 500 do
begin
x:=x+h*i;
y1[i+1]:=y1[i]+h*f1(a,x,y1[i],y2[i]);
y2[i+1]:=y2[i]+h*f2(b,x,c,y1[i],y2[i]);
Form1.Series1.AddXY(x,y1[i],FloatToStrF(i,ffFixed,10,3),clRed);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
h,x,a,b,c:real;
y1:array[0..1000] of real;
y2:array[0..1000] of real;
i:integer;
begin
Chart1.Repaint;
y1[0]:=StrToFloat(Trim(Edit1.Text));
y2[0]:=StrToFloat(Trim(Edit2.Text));
x:=StrToFloat(Trim(Edit3.Text));
a:=StrToFloat(Trim(Edit4.Text));
b:=StrToFloat(Trim(Edit5.Text));
c:=StrToFloat(Trim(Edit6.Text));
22
h:=0.001;
for i:=0 to 500 do
begin
x:=x+h*i;
y1[i+1]:=y1[i]+h*f1(a,x,y1[i],y2[i]);
y2[i+1]:=y2[i]+h*f2(b,x,c,y1[i],y2[i]);
Form1.Series2.AddXY(x,y2[i],FloatToStrF(i,ffFixed,10,3),clBlue);
end;
end;
end.
23
Документ
Категория
Математика
Просмотров
9
Размер файла
688 Кб
Теги
курсовая
1/--страниц
Пожаловаться на содержимое документа