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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Менеджмент
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    755,38 Кб
  • Опубликовано:
    2013-05-31
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Зміст

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


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!