Математичне моделювання на електронно-обчислювальній машині

 

Зміст


1. Поняття математичного моделювання

. Завдання

. Постановка задачі та метод її розвязку

. Блок-схема модифікованого метода Ейлера

. Код програми в середовищі Delphi 7

. Опис програми та її блок-схема

. Контрольні приклади


1. Поняття математичного моделювання


Поняття математичного моделювання трактується різними авторами по своєму. Ми будемо його повязувати з нашою спеціалізацією - прикладна математика.

Під математичним моделюванням ми будемо розуміти метод дослідження процесів або явищ шляхом побудови їхніх математичних моделей і дослідження цих процесів.

В основу методу покладемо адекватність між змінними складеного рівняння і досліджуваного процесу. Зрозуміло, що на практиці ці процеси не будуть абсолютно ідентичні. Але можна удосконалювати математичну модель, яка більш точно буде описувати цей процес.

Треба памятати, що в останньому випадку, як правило, математичні рівняння ускладнюються. А це означає, що їх моделювання на ЕОМ потребує більше часу, або ж більше не визначаючих обчислювальних комплексів.

Схема таких досліджень починається з постановки задачі і закінчується проведенням ефективного обчислювального експерименту. Її умови можна записати в такій формі:

а) постановка задачі;

б) побудова математичної моделі;

в) перевірка її адекватності;

г) узагальнення та теоретичне дослідження даного класу задач;

д) створення програмного забезпечення;

е) проведення обчислювального експерименту;

ж) впровадження цих результатів в виробництво.


. Завдання


Дослідити кінематику хімічної реакції, яка описується рівнянням



Математична модель реакції представлена у вигляді:



де , ,-концентраціїкомпонентів у момент t, а , - константи швидкості реакції. За отриманими даними побудувати графіки зміни концентрації для кожного компонента. Обчислення провести модифікованим методом Ейлера.


3. Постановка задачі та метод її розв'язку


Диференційне рівняння п-порядку називається лінійним однорідними,якщо воно першої степені відносно шуканої функції у і її похідних у?,...,у(n-1), у(n), тобто має вид:


у(n) + а1у(n-1)+....+ аnу =0


Метод Ейлера являється відносно грубим і застосовується в основному для орієнтовних розрахунків. Але ідеї, які закладені в основі метода, являються вихідними для ряду інших методів.

Нехай задано диференціальне рівняння


у' = f (x,y )(1)


з початковими умовами


х = х0, у(х0) = у0(2)


Потрібно знайти розв'язок рівняння (1) на відрізку [а,b]

Розібємо відрізок [а,b] на n рівних частин, одержимо послідовність х0, х1, х2,…..,хn, де хі = х0+іh (i =0,1,2,….n), h = (b-a)/n -крок інтегрування.


Рис. 1


Розглянемо метод на елементарному відрізку , на якому інтегральну криву заміняємо в точці дотичною. Тобто в точці проводимо пряму з кутовим коефіцієнтом , рівняння даної прямої:



Визначаємо точку перетину цієї прямої з прямою проведеної в точці . Підставивши в рівняння прямої маємо:



Отримане значення вважають значенням шуканої функції. Операцію повторюємо на проміжку і так далі на всьому проміжку

З метою підвищення точності методу Ейлера використовують різні його модифікації.

Модифікований метод Ейлера. Відмінність полягає в тому, що спочатку розраховується значення функції в середині даного кроку, а потім робиться повний крок.

+1=Xk+h;+1=Yk+F(Xk+h/2;Yk+F(Xk;Yk)h/2);


4. Блок-схема модифікованого метода Ейлера


Рис. 2


5. Код програми в середовищі Delphi 7

Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Grids,, jpeg;= class(TForm): TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TButton;: TButton;: TStringGrid;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TChart;: TLineSeries;: TLineSeries;: TLineSeries;: TImage;Button1Click(Sender: TObject);Button3Click(Sender: TObject);Button2Click(Sender: TObject);LabeledEdit4KeyPress(Sender: TObject; varKey: Char);LabeledEdit3KeyPress(Sender: TObject; varKey: Char);LabeledEdit1KeyPress(Sender: TObject; varKey: Char);

{ Privatedeclarations }

{ Publicdeclarations };: TForm1;,b,h,k1,k2,ya,yb,yc,y1,y2,y3:real;,n:integer;Unit2;

{$R *.dfm}(t:real):real;:=-k1*(t+5);;(t:real):real;:=k1*(t+5)-k2*(sqr(t)-13);;(t:real):real;:=k2*(sqr(t)-13);;TForm1.Button1Click(Sender: TObject);:=strtofloat(labelededit1.Text);:=strtofloat(labelededit2.Text);:=strtoint(labelededit3.Text);:=strtoint(labelededit4.Text);:=strtoint(labelededit6.Text);:=strtoint(labelededit8.Text);:=strtoint(labelededit5.Text);:=strtoint(labelededit7.Text);(b<=a) or (n<1) then.Enabled:=false;.Visible:=true;.RowCount:=n+2;.Cells[0,0]:='t';.Cells[1,0]:='Ca(t)';.Cells[2,0]:='Cb(t)';.Cells[3,0]:='Cc(t)';.Cells[0,1]:=floattostr(a);.Cells[1,1]:=floattostr(ya);.Cells[2,1]:=floattostr(yb);.Cells[3,1]:=floattostr(yc);:=(b-a)/n;:=1;:=ya+Ca(a+h/2)*h;:=yb+Cb(a+h/2)*h;:=yc+Cc(a+h/2)*h;:=a+h;:=y1;:=y2;:=y3;:=i+1;.Cells[0,i]:=floattostr(a);.Cells[1,i]:=floattostr(y1);.Cells[2,i]:=floattostr(y2);.Cells[3,i]:=floattostr(y3);i>n;.Clear;.Clear;.Clear;i:=1 to StringGrid1.RowCount-1 do.AddXY(StrToFloat(StringGrid1.Cells[0,i]),(StringGrid1.Cells[1,i]),

'',clGreen);i:=1 to StringGrid1.RowCount-1 do.AddXY(StrToFloat(StringGrid1.Cells[0,i]),(StringGrid1.Cells[2,i]),

'',clRed);i:=1 to StringGrid1.RowCount-1 do.AddXY(StrToFloat(StringGrid1.Cells[0,i]),(StringGrid1.Cells[3,i]),

'',clBlue);;;TForm1.Button3Click(Sender: TObject);.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Text:='';.Clear;.Clear;.Clear;i:=0 to stringgrid1.RowCount-1 do.Cells[0,i]:='';.Cells[1,i]:='';.Cells[2,i]:='';.Cells[3,i]:='';;;TForm1.Button2Click(Sender: TObject);.Close;;TForm1.LabeledEdit4KeyPress(Sender: TObject; varKey: Char);(keyin['0'..'9',#08,',','-']) thenkey:=#0;;


6. Опис програми та її блок-схема


При запуску програми перед користувачем відкривається головне вікно. Це вікно розділене на дві частини:


Графічна частина

Частина вводу вихідних даних

В частині вводу вихідних даних користувачу необхідно ввести початковий та кінцевий час (в секундах), задати початкові умови для методу, кількість ітерацій, а також коефіцієнти, що відповідають за швидкість хімічної реакції.

Після цього користувач має натиснути кнопку «Розрахувати» і програма після деяких перевірок почне розрахунок модифікованим методом Ейлера. В результаті буде отримано чисельні значення кожної функції, які будуть занесені в таблицю і по цим значення буде побудовано три графіки різного кольору.

Для того, щоб очистити всі поля, таблиці та графіки необхідно натиснути на кнопку «Очистити»


Рис. 3


В цьому блоці виконується підключення необхідних модулів, обявляються константи, функції змінних та створюються контроль.

Блок 2

В даному блоці відбувається ввід початкових даних користувачем.

Блок 3

В даному блоці відбувається перевірка введених даних та рішення програми про наступні кроки дій.

Блок 4

В цьому блоці програма проводить розрахунок модифікованим методом Ейлера і заповнюється таблиця із результуючими даними.

Блок 5

В даному блоці будуються графіки по розрахованими даними.


7. Контрольні приклади


Приклад№1


Рис. 4


Рис. 5

математичний моделювання метод ейлер

Приклад №2


Рис. 6


Рис. 7



Зміст 1. Поняття математичного моделювання . Завдання . Постановка задачі та метод її розвязку . Блок-схема модифікованого метода Ейлера . К

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ