Математичне моделювання на електронно-обчислювальній машині
Поняття математичного моделювання. Постановка задачі та метод її розв’язку. Блок-схема модифікованого метода Ейлера. Код програми в середовищі Delphi 7. Опис програми та її блок-схема. Контрольні приклади, дослідження кінематики хімічної реакції.
Рубрика | Экономико-математическое моделирование |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 31.05.2013 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Зміст
1. Поняття математичного моделювання
2. Завдання
3. Постановка задачі та метод її розв'язку
4. Блок-схема модифікованого метода Ейлера
5. Код програми в середовищі Delphi 7
6. Опис програми та її блок-схема
7. Контрольні приклади
1. Поняття математичного моделювання
Поняття математичного моделювання трактується різними авторами по своєму. Ми будемо його пов'язувати з нашою спеціалізацією - прикладна математика.
Під математичним моделюванням ми будемо розуміти метод дослідження процесів або явищ шляхом побудови їхніх математичних моделей і дослідження цих процесів.
В основу методу покладемо адекватність між змінними складеного рівняння і досліджуваного процесу. Зрозуміло, що на практиці ці процеси не будуть абсолютно ідентичні. Але можна удосконалювати математичну модель, яка більш точно буде описувати цей процес.
Треба пам'ятати, що в останньому випадку, як правило, математичні рівняння ускладнюються. А це означає, що їх моделювання на ЕОМ потребує більше часу, або ж більше не визначаючих обчислювальних комплексів.
Схема таких досліджень починається з постановки задачі і закінчується проведенням ефективного обчислювального експерименту. Її умови можна записати в такій формі:
а) постановка задачі;
б) побудова математичної моделі;
в) перевірка її адекватності;
г) узагальнення та теоретичне дослідження даного класу задач;
д) створення програмного забезпечення;
е) проведення обчислювального експерименту;
ж) впровадження цих результатів в виробництво.
2. Завдання
Дослідити кінематику хімічної реакції, яка описується рівнянням
Математична модель реакції представлена у вигляді:
де , ,-концентраціїкомпонентів у момент 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
Розглянемо метод на елементарному відрізку , на якому інтегральну криву заміняємо в точці дотичною. Тобто в точці проводимо пряму з кутовим коефіцієнтом , рівняння даної прямої:
Визначаємо точку перетину цієї прямої з прямою проведеної в точці . Підставивши в рівняння прямої маємо:
Отримане значення вважають значенням шуканої функції. Операцію повторюємо на проміжку і так далі на всьому проміжку
З метою підвищення точності методу Ейлера використовують різні його модифікації.
Модифікований метод Ейлера. Відмінність полягає в тому, що спочатку розраховується значення функції в середині даного кроку, а потім робиться повний крок.
Xk+1=Xk+h;
Yk+1=Yk+F(Xk+h/2;Yk+F(Xk;Yk)h/2);
4. Блок-схема модифікованого метода Ейлера
Рис. 2
5. Код програми в середовищі Delphi 7
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Grids,
ValEdit, jpeg;
type
TForm1 = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
Button1: TButton;
Button3: TButton;
StringGrid1: TStringGrid;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
LabeledEdit6: TLabeledEdit;
LabeledEdit8: TLabeledEdit;
Chart1: TChart;
Series2: TLineSeries;
Series1: TLineSeries;
Series3: TLineSeries;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure LabeledEdit4KeyPress(Sender: TObject; varKey: Char);
procedure LabeledEdit3KeyPress(Sender: TObject; varKey: Char);
procedure LabeledEdit1KeyPress(Sender: TObject; varKey: Char);
private
{ Privatedeclarations }
public
{ Publicdeclarations }
end;
var
Form1: TForm1;
a,b,h,k1,k2,ya,yb,yc,y1,y2,y3:real;
i,n:integer;
implementation
uses Unit2;
{$R *.dfm}
functionCa(t:real):real;
begin
Ca:=-k1*(t+5);
end;
functionCb(t:real):real;
begin
Cb:=k1*(t+5)-k2*(sqr(t)-13);
end;
functionCc(t:real):real;
begin
Cc:=k2*(sqr(t)-13);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=strtofloat(labelededit1.Text);
b:=strtofloat(labelededit2.Text);
n:=strtoint(labelededit3.Text);
ya:=strtoint(labelededit4.Text);
yb:=strtoint(labelededit6.Text);
yc:=strtoint(labelededit8.Text);
k1:=strtoint(labelededit5.Text);
k2:=strtoint(labelededit7.Text);
if (b<=a) or (n<1) then
begin
form1.Enabled:=false;
form2.Visible:=true;
end
else
begin
stringgrid1.RowCount:=n+2;
stringgrid1.Cells[0,0]:='t';
stringgrid1.Cells[1,0]:='Ca(t)';
stringgrid1.Cells[2,0]:='Cb(t)';
stringgrid1.Cells[3,0]:='Cc(t)';
stringgrid1.Cells[0,1]:=floattostr(a);
stringgrid1.Cells[1,1]:=floattostr(ya);
stringgrid1.Cells[2,1]:=floattostr(yb);
stringgrid1.Cells[3,1]:=floattostr(yc);
h:=(b-a)/n;
i:=1;
repeat
y1:=ya+Ca(a+h/2)*h;
y2:=yb+Cb(a+h/2)*h;
y3:=yc+Cc(a+h/2)*h;
a:=a+h;
ya:=y1;
yb:=y2;
yc:=y3;
i:=i+1;
stringgrid1.Cells[0,i]:=floattostr(a);
stringgrid1.Cells[1,i]:=floattostr(y1);
stringgrid1.Cells[2,i]:=floattostr(y2);
stringgrid1.Cells[3,i]:=floattostr(y3);
until i>n;
Series1.Clear;
Series2.Clear;
Series3.Clear;
for i:=1 to StringGrid1.RowCount-1 do
Series1.AddXY(StrToFloat(StringGrid1.Cells[0,i]),
StrToFloat(StringGrid1.Cells[1,i]),
'',clGreen);
for i:=1 to StringGrid1.RowCount-1 do
Series2.AddXY(StrToFloat(StringGrid1.Cells[0,i]),
StrToFloat(StringGrid1.Cells[2,i]),
'',clRed);
for i:=1 to StringGrid1.RowCount-1 do
Series3.AddXY(StrToFloat(StringGrid1.Cells[0,i]),
StrToFloat(StringGrid1.Cells[3,i]),
'',clBlue);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Labelededit1.Text:='';
Labelededit2.Text:='';
Labelededit3.Text:='';
Labelededit4.Text:='';
Labelededit5.Text:='';
Labelededit6.Text:='';
Labelededit7.Text:='';
Labelededit8.Text:='';
series1.Clear;
series3.Clear;
series2.Clear;
for i:=0 to stringgrid1.RowCount-1 do
begin
stringgrid1.Cells[0,i]:='';
stringgrid1.Cells[1,i]:='';
stringgrid1.Cells[2,i]:='';
stringgrid1.Cells[3,i]:='';
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.LabeledEdit4KeyPress(Sender: TObject; varKey: Char);
begin
ifnot (keyin['0'..'9',#08,',','-']) thenkey:=#0;
end;
6. Опис програми та її блок-схема
При запуску програми перед користувачем відкривається головне вікно. Це вікно розділене на дві частини:
Графічна частина
Частина вводу вихідних даних
В частині вводу вихідних даних користувачу необхідно ввести початковий та кінцевий час (в секундах), задати початкові умови для методу, кількість ітерацій, а також коефіцієнти, що відповідають за швидкість хімічної реакції.
Після цього користувач має натиснути кнопку «Розрахувати» і програма після деяких перевірок почне розрахунок модифікованим методом Ейлера. В результаті буде отримано чисельні значення кожної функції, які будуть занесені в таблицю і по цим значення буде побудовано три графіки різного кольору.
Для того, щоб очистити всі поля, таблиці та графіки необхідно натиснути на кнопку «Очистити»
Размещено на http://www.allbest.ru/
Рис. 3
В цьому блоці виконується підключення необхідних модулів, об'являються константи, функції змінних та створюються контроль.
Блок 2
В даному блоці відбувається ввід початкових даних користувачем.
Блок 3
В даному блоці відбувається перевірка введених даних та рішення програми про наступні кроки дій.
Блок 4
В цьому блоці програма проводить розрахунок модифікованим методом Ейлера і заповнюється таблиця із результуючими даними.
Блок 5
В даному блоці будуються графіки по розрахованими даними.
7. Контрольні приклади
Приклад№1
Рис. 4
Рис. 5
математичний моделювання метод ейлер
Приклад №2
Рис. 6
Рис. 7
Размещено на Allbest.ru
Подобные документы
Розвиток методології економіко-математичного моделювання. Економіко-математичні моделі в працях вітчизняних економістів. Математичне моделювання і зовнішньополітичні дослідження. Простір індикаторів в системі міжнародних відносин: задачі метатеорії.
реферат [228,8 K], добавлен 01.07.2008Поняття математичного моделювання. Види математичних моделей. Поняття диференціальних рівнянь. Приклади процесів, що моделюються диференціальними рівняннями експоненціальної змінної. Рівняння гармонічних коливань. Застосування диференціальних рівнянь.
курсовая работа [291,1 K], добавлен 01.10.2014Управлінське рішення як концентроване вираження процесу управління. Економіко-математичне моделювання процесів прийняття управлінських рішень. Окремі випадки економіко-математичного моделювання в менеджменті на прикладі прогнозування та планування.
курсовая работа [41,2 K], добавлен 24.03.2012Теоретико-методологічні основи дослідження взаємозв’язку макроекономічних показників з податками. Аналіз робіт та напрямків економіко-математичного моделювання у сфері оподаткування. Моделювання впливу податкової політики на обсяг тіньової економіки.
дипломная работа [1,5 M], добавлен 21.06.2010Моделювання як засіб розв'язання багатьох економічних завдань і проведення аналітичного дослідження. Теоретичні дослідження та програмне забезпечення моделювання процесу виробництва. Використання в економіці комп'ютерних технологій розв'язання моделей.
отчет по практике [23,0 K], добавлен 02.03.2010Методичні вказівки до виконання курсового проекту. Дослідження глобальних моделей виробництва та споживання. Побудова двогалузевої макроекономічної моделі. Дослідження виробничих функцій. Опис програми і початкові дані. Інструкція користувачу програми.
методичка [163,7 K], добавлен 12.01.2009Дослідження аспектів податкового регулювання різних економічних процесів, його напрямки та етапи. Математичне та графічне моделювання взаємозв’язку податкової політики та процесів виробництва на підприємстві у взаємодії із надходженнями до бюджету.
статья [115,3 K], добавлен 26.09.2011Приведення рівняння до безрозмірної форми. Знаходження точного розв'язку рівняння. Складання М-файлу правих частин рівняння у формі Коші. Створення підпрограми інтегрування, керуючої програми. Графік залежності амплітуди похибки від кроку інтегрування.
контрольная работа [1,2 M], добавлен 07.08.2013Аналіз умов застосування існуючих методик і моделей прогнозу характеристик цінних паперів, розробка концепції економіко-математичного моделювання облігацій і акцій. Кількісне дослідження й моделей і алгоритмів оцінювання ризикових і безризикових активів.
автореферат [64,1 K], добавлен 06.07.2009Процедури та моделювання систем зв’язку, формальний опис та оцінювання ефективності. Специфіка цифрового зображення сигналів. Особливості та методи побудови математичних моделей систем та мереж зв'язку. Математичні моделі на рівні функціональних ланок.
реферат [120,1 K], добавлен 19.02.2011