Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Решение систем диференційних рівнянь методом Рунге-Куты 4 порядка

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Для отримання (розподілу технологічних параметрів в часі та в просторі (не більше об'єкта)(необхідно зробити СДУ методом (яких дав би високу точність рішення за минималььных витратах часу влади на рішення (оскільки ЕОМ повинна працювати у режимі реального часу й встигати над перебігом технологічного процесу (Якщо час влади на рішення завдання велике (то котра управляє вплив (вироблена на ЕОМ… Читати ще >

Решение систем диференційних рівнянь методом Рунге-Куты 4 порядка (реферат, курсова, диплом, контрольна)

року міністерство освіти Украины.

Донецький державний технічний университет.

Кафедра хімічної технології топлива.

Курсова работа на тему: Рішення систем диференційних рівнянь методом.

Рунге — Кутты 4 порядка по дисципліни: Математичні методи лікування й моделі у розрахунках на ЭВМ Выполнил: студент грн. ХТ-96.

Кузнєцов М.В.

Проверил: доц. Чехівської Б.Я.

р. Донецьк 1998 год.

РЕФЕРАТ.

Диференціальні Рівняння, Метод Рунге-Кутта, РК-4, Концентрація, Метод Эйлера, Завдання Коші, Ряд Тейлора, Паскаль, Реакція, Інтервал, Коефіцієнти Диференціального Уравнения.

Листов: 28 Таблиць: 2 Графіків: 4.

Вирішити систему диференційних рівнянь методом Рунге-Кутты 4 порядку, расчитать записимость концентрації речовин, у залежність від часу, проаналізувати отриману залежність, переконатися у дієвості метода.

1. Постановка задачи…6.

2. Суть метода…8.

3. Вибір методу реалізації программы…14.

4. Блок — схема…15.

5. Программа…17.

6. Ідентифікація переменных…19.

7. Результаты…20.

8. Обговорення результатов…21.

9. Інструкція до программе…23.

10.

Заключение

…27.

Звичайні диференціальні рівняння (ОДУ) широко йдуть на математичного моделювання процесів і явищ у різноманітних галузях науку й техніки. Перехідні процеси в радіотехніці, кінетика хімічних реакцій, динаміка біологічних популяцій, рух космічних об'єктів, моделі економічного розвитку досліджуються з допомогою ОДУ.

У диференціальний рівняння n-го ладу у ролі невідомих величин входять функція y (x) і його перші n похідних по аргументу x.

((x, y, y1, … y (n))=0. 1.1.

З теорії ОДУ відомо, що рівняння (1.1) еквівалентно системі n рівнянь першого порядка.

(k (x, y1, y1', y2, y2 ', …, yn, yn ')=0.

1.2.

где k=1, …, n.

Рівняння (1.1) і еквівалентна йому система (1.2) мають нескінченне безліч рішень. Єдині рішення виділяють з допомогою додаткових умов, яких мають задовольняти шукані рішення. Залежно від виду таких умов розглядають три типу завдань, котрим доведено існування й одиничність решений.

Перший тип — це завдання Коші, чи завдання з початковими умовами. Для завдань крім вихідного рівняння (1.1) у певній точці xo повинні бути задано початкові умови, тобто. значення функції y (x) і його производных.

y (x0)=y0', y'(x0)=y10, …, y (n-1)(x0)=yn-1,0.

Для системи ОДУ типу (1.2) початкові умови задаються в виде.

y1(x0)=y10, y2(x0)=y20, …, yn (x0)=yn0.

1.3.

До другої типу завдань ставляться звані граничні, чи крайові завдання, у яких додаткові умови задаються як функціональних співвідношень між шуканими рішеннями. Кількість умов має збігатися з порядком n рівняння або системи. Якщо вирішення завдання визначається інтервалі x є (x0, xk (, то такі умови може бути задано як у межах, і всередині інтервалу. Мінімальний порядок ОДУ, котрим то, можливо сформульована гранична завдання, дорівнює двум.

Третій тип завдань для ОДУ — це завдання за власні значення. Такі завдання різняться тим, що, крім шуканих функцій y (x) та його похідних в рівняння входять додатково m невідомих параметрів (1((2(((хm (які називаються власними значеннями (Для одиничності рішення на інтервалі [x0(xk] що необхідно дати m+n граничних умов (Як прикладу може бути завдання визначення власних частот (коефіцієнтів диссипации (структури електромагнітних полів і механічних напруг у коливальних системах (завдання перебування фазових коефіцієнтів (коефіцієнтів загасання (розподілу напряженностей полів хвильових процесів і т (д (.

До чисельному рішенню ОДУ доводиться звертатися (не вдається побудувати аналітичне вирішення завдання через відомі функції(Хоча для деяких завдань чисельні методи виявляються ефективнішими навіть за наявності аналітичних решений (.

Більшість методів рішення ОДУ грунтується на завданню Коші(алгоритми і програми на яку розглядаються в дальнейшем (.

1. Постановка задачи.

Багато процеси хімічної технології описуються СДУ — починаючи з кінетичних досліджень, і закінчуючи хімічними технологічними процесами (У основу математичних способів описи процесів покладено СДУ і СЛАУ (Ці рівняння описують матеріальні і теплові баланси об'єктів хімічної технології(а як і структури потоків технічних речовин, у цих аппаратах (.

Для отримання (розподілу технологічних параметрів в часі та в просторі (не більше об'єкта)(необхідно зробити СДУ методом (яких дав би високу точність рішення за минималььных витратах часу влади на рішення (оскільки ЕОМ повинна працювати у режимі реального часу й встигати над перебігом технологічного процесу (Якщо час влади на рішення завдання велике (то котра управляє вплив (вироблена на ЕОМ можуть призвести до негативним впливам (Методів рішення існує багато (У цій роботі розглядатимуть метод рішення СДУ методом Рунге-Кутта 4 порядка.

Для зручності роботи з ЕОМ, необхідно цю кінетичну схему перетворити на зручний до роботи за комп’ютером вид. І тому необхідно кінетичну схему процесу у вигляді рівнянь. Зблизька кінетичною схеми процесу необхідно враховувати коефіцієнти швидкостей реакцій. Але, оскільки процес протікає при ізотермічних умовах, коефіцієнти швидкостей реакцій вважатимуться за константи швидкостей хімічної реакції. З наведеної нижче схеми ми можемо скласти ряд диференційних рівнянь, які враховують изотермичность процесса.

Так як коефіцієнти K1, K2,K3,K4 є константами, можна рівняння записати наступного виде.

Для перетворення даних диференційних рівнянь від використання їх під час розрахунків теплових і кінетичних схем методами Рунге-Кутты необхідно підставляти замість похідних значень концентрацій, значення концентрацій даних на початку процесу. Це пов’язано з тим, що метод Рунге-Кутты четвертого порядку, який використаний розрахунку кінетичною схеми процесу. Тому що це метод вимагає відомостей лише одну точці, й значень функции.

2. Суть метода.

Розбір і розгляд методів (застосовуваних практично на вирішення диференційних рівнянь (ми розпочнемо з їх широкої категорії(відомої за загальним назвою методів Рунге-Кутта (.

Методи Рунге-Кутта мають такими свойствами:

1(Ці методи є одноступенчатыми: щоб знайти уm+1(потрібна інформацію про попередньої точці xm (ym (.

2(Вони узгоджуються із низкою Тейлора до членів порядку hp (де ступінь р різна щодо різноманітних методів і називається порядковим номером чи порядком метода (.

3(Не вимагають обчислення похідних від f (x (y)(а вимагають обчислення самої функции (.

Розглянемо спочатку геометричне колег і виведемо деякі формули з урахуванням геометричних аналогій (Після цього ми підтвердимо отримані результати аналитически (.

Припустимо (нам відома точка xm (ym на шуканої кривою (Тоді ми можемо провести пряму лінію з тангенсом кута нахилу у (m=f (xm (ym)(яка пройде через точку xm (ym (Це побудова показано на рис (1(де крива є точне (але звісно невідоме рішення рівняння (а є пряма лінія L1 побудована так (як це тільки що описано (.

Тогда наступній точкою рішення вважатимуться ту (де пряма L1 перетне ординату (проведену через точку x=xm+1=xm+h (.

Уравнение прямий L1 така: y=ym+y (m (x-xm) оскільки y (=f (xm (ym) і ще (xm+1=xm+h тоді рівняння прийме вид.

ym+1=ym+h*f (xm (ym).

1(1.

Помилка при x=xm+1 показано вигляді відрізка е (Вочевидь (знайдене в такий спосіб близьке значення цілком узгоджується з розкладанням до кількох Тейлора до членів порядку h (отже помилка обмеження дорівнює et=Кh2.

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

Формула 1(1 описує метод Эйлера (одне із найбільш давніх і широко відомих методів чисельного інтегрування диференційних рівнянь (Зазначимо (що метод Эйлера одна із методів Рунге-Кутта першого порядка (.

Розглянемо виправлений метод Эйлера і модифікаційний метод Эйлера (У виправленому методі Эйлера ми бачимо середній тангенс кута нахилу дотичній обох точок: xm (ym і xm+h (ym+hy (m (Остання точка є та сама (що у методі Эйлера відзначалося xm+1(ym+1(Геометричний процес перебування точки xm+1(ym+1 можна простежити по рис (2(З допомогою методу Эйлера перебуває точка xm+h (ym+hy (m (що на прямий L1(У цьому точці знову обчислюється тангенс (дає пряму ((Нарешті(через точку xm (ym ми проводимо пряму L (паралельну ((Крапка (у якій пряма L перетнеться з ординатою (відновленої з x=xm+1=xm+h (і буде шуканої точкою xm+1(ym+1(.

Тангенс кута нахилу прямий (і прямий L равен.

Ф (xm (ym (h)=([f (xm (ym)+f (xm+h (ym+y (mh)] 1(2.

де y (m=f (xm (ym).

1(3.

Рівняння лінії L у своїй записується в виде.

y=ym+(x-xm)Ф (xm (ym (h)(.

отже ym+1=ym+hФ (xm (ym (h)(.

1(4.

Співвідношення 1(2(1(3(1(4 описують виправлений метод Эйлера (.

Щоб з’ясувати (наскільки добре його цілком узгоджується з розкладанням до кількох Тейлора (пригадаємо (що розкладання до кількох функції f (x (y) можна записати наступним образом:

f (x (y)=f (xm (ym)+(x-xm)(f/(x+(y-ym)(f/(x+(1(5.

где приватні похідні обчислюються при x=xm і y=ym (.

Підставляючи в формулу 1(5 x=xm+h і y=ym+hy (m і використовуючи вираз 1(3 для y (m (отримуємо f (xm+h (ym+hy (m)=f+hfx+hffy+O (h2)(.

где знову функція f та її похідні обчислюються у точці xm (ym (Підставляючи результат в 1(2 і виконавши необхідні перетворення (получаем.

Ф (xm (ym (h)=f+h/2(fx+ffy)+O (h2)(.

Підставимо отримане вираження у 1(4 і порівняти з поруч Тейлора ym+1=ym+hf+h2/2(fx+ffy)+O (h3)(.

Як кажуть (виправлений метод Эйлера цілком узгоджується з розкладанням до кількох Тейлора до членів ступеня h2(будучи (в такий спосіб (методом РунгеКутты другого порядка (.

Розглянемо модифікаційний метод Эйлера (Розглянемо рис (3 де початкове побудова зроблено як і(як і рис (2(На цього разу ми беремо точку (що лежить на перетині цієї прямий і ординатою x=x+h/2(На малюнку цю крапку освічена через Р (та її ордината дорівнює y=ym+(h/2)y (m (Обчислимо тангенс кута нахилу дотичній у цій точке.

Ф (xm (ym (h)=f+(xm+h/2(ym+h/2*y (m)(.

1(6.

де y (m=f (xm (ym).

1(7.

Пряма з такою нахилом (через Р (позначена через (*(Після тим (ми проводимо через точку xm (ym пряму паралельну (*(і позначаємо її через L0(Перетин цієї прямий з ординатою x=xm+h праці й потрібну точку xm+1(ym+1(Рівняння прямий можна записати як y=ym+(xxm)Ф (xm (ym (h)(де Ф задається формулою 1(6(Поэтому.

ym+1=ym+hФ (xm (ym (h).

1(8.

Співвідношення 1(6(1(7(1(8 описують так званий модифікаційний метод Эйлера і є ще однією методом Рунге-Кутта другого порядку (Узагальнимо обидва методу (Зауважимо (що обидві методу описуються формулами вида.

ym+1=ym+hФ (xm (ym (h).

1(9.

и в обох випадках Ф має вид.

Ф (xm (ym (h)=a1f (xm (ym)+a2f (xm+b1h (ym+b2hy (m)(1(10 де y (m=f (xm (ym).

1(11.

Зокрема (для виправленої методу Эйлера.

a1=a2=½; b1=b2=1(.

В нас саме для модификационного методу Эйлера.

a1=0(a2=1(b1=b2=½(.

Формулы 1(9(1(10(1(11 описують певний метод типу Рунге-Кутты (Подивимося (якого порядку метод можна розраховувати отримати у кращому разі і є допустимі значення параметрів a1(a2(b1 і b2 (.

Щоб самому отримати відповідність ряду Тейлора до членів ступеня h (у випадку досить одного параметра (Щоб самому отримати узгодження до членів ступеня h2(треба ще два параметра (оскільки необхідно враховувати члени h2fx і h2ffy (Оскільки ми маємо всього чотири параметра (троє фахівців з яких будуть потрібні до створення погодження з поруч Тейлора до членів порядку h2(той самий краще (потім тут можна розраховувати — це метод другого порядка (.

В розкладанні f (x (y) до кількох 1(5 на околиці точки xm (ym між іншим x=xm+b1h (y=ym+b2hf (Тоді f (xm+b1h (ym+b2hf)=f+b1hfx+b2hffy+O (h2)(де функція і похідні в правій частині рівності враховано у точці xm (ym (.

Тогда 1(9 можна переписати як ym+1=ym+h[a1f+a2f+h (a2b1fx+a2b2ffy)]+O (h3)(.

Порівнявши цієї формули з розкладанням до кількох Тейлора (можна переписати в виде.

ym+1=ym+h[a1f+a2f+h (a2b1fx+a2b2ffy)]+O (h3)(.

Если зажадати збіги членів hf (то a1+a2=1(Порівнюючи члени (містять h2fx (отримуємо a2b1=½(Порівнюючи члени (містять h2ffy (отримуємо a2b2=½(.

Так як домовилися до трьох рівнянням визначення чотирьох невідомих (то одна з цих невідомих можна поставити довільно (виключаючи (то, можливо (нуль (залежно від цього (який параметр взяти як произвольного (.

Поклавши (наприклад (a2=((0(тоді a1=1-((b1=b2=½(і співвідношення 1(9(1(10(1(11 зведуться к.

ym+1=ym+h[(1-()f (xm (ym)+(f (xm+h/2((ym+h/2(f (xm (ym))]+O (h3).

1(12.

Це найбільш загальна форма записи методу Рунге-Кутта другого порядку (При (=½ ми маємо виправлений метод Эйлера (при (=1 отримуємо модифікаційний метод Эйлера (Всім ((відмінних нуля (помилка обмеження равна.

et=kh3.

1(13.

Методы Рунге-Кутта третього і четвертого порядків можна вивести цілком аналогічна тій (як це робилося при виведення методів першого і другого порядків (Ми не відтворювати викладки (а обмежимося тим (що наведемо формули (описують метод четвертого порядку (одне із найбільш вживаних методів інтегрування диференційних рівнянь (Цей класичний метод Рунге-Кутта описується системою наступних п’яти соотношений.

ym+1=ym+h/6(R1+2R2+2R3+R4).

1(14 де R1=f (xm (ym)(.

1(15.

R2=f (xm+h/2(ym+hR½)(.

1(16.

R3=f (xm+h/2(ym+hR2/2)(.

1(17.

R4=f (xm+h/2(ym+hR3/2).

1(18.

Ошибка обмеження цього дорівнює et=kh5 отже формули 1(14−1(18 описують метод четвертого порядку (Зауважимо (що під час використання цього функцію необхідно вираховуватимуть чотири раза (.

3. Вибір методу реалізації программы.

зважаючи на викладене, на вирішення систем диференційних рівнянь ми вибираємо найбільш точний метод рішення — метод Рунге-Кутта 4 порядку, одне із найбільш вживаних методів інтегрування диференційних уравнений (.

— його є одноступеневою і одношаговым.

— вимагає інформацію лише одну точке.

— має невелику погрешность.

— значення функції розраховується при кожному шаге.

4. Блок-схема программмы.

Основна программа Процедура INIT.

Вход.

f1,C[1], C[2], C[3].

f1,k1,k2,k3,k4.

f1,Xn, Xk, dp, n, eps, p.

выход.

5. Программа.

PROGRAM smith04; USES crt; VAR i, n: integer; sum, k1, k2,k3,k4,p, dp, eps, Xn, Xk, X, dX:real; rSR, C, dC, r1, r2,r3,r4,cPR:array[1.3] of real; f1, f2:text;

PROCEDURE Difur; BEGIN dC[1]: =C[3]*k2+C[2]*k4-C[1]*k1-C[1]*k3; {dcA} dC[2]: =C[1]*k3-C[2]*k4; {dcB} dC[3]: =C[1]*k1-C[3]*k2; {dcC} END;

PROCEDURE RK4; BEGIN.

Difur;

FOR i:=1 TO n DO BEGIN r1[i]: =dC[i];

C[i]: =cPR[i]+r1[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN r2[i]: =dC[i];

C[i]: =cPr[i]+r2[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN r3[i]: =dC[i];

C[i]: =cPR[I]+r3[i]*dX;

END;

Difur;

FOR i:=1 TO n DO r4[i]: =dC[i];

FOR i:=1 TO n DO rSR[i]: =((r1[i]+r2[i])*(r2[i]+r3[i])*(r3[i]+r4[i]))/6; END;

PROCEDURE STROKA; BEGIN WRITE (f2, «| «, x:4:1, «| «, c[1]: 7:3, «| «, c[2]: 7:3, «| «, c[3]: 7:3, «| «); WRITE (f2,sum:3:0, «| «, dc[1]: 7:3, «| «, dc[2]: 7:3, «| «, dc[3]: 7:3, «| «); WRITELN (f2); END;

PROCEDURE RUN; BEGIN WRITE («Step 3: Calculating data and writting results to file: out. rez »);

X:=Xn; dX:=0.05; REPEAT.

IF (ABS (x-p)Xk); WRITELN («- done. »); END;

PROCEDURE INIT; BEGIN ClrScr; WRITELN («Smith-04: v1.0 (з) 1998 by Mike Smith [email protected] »); WRITELN; WRITELN; WRITE («Step 1: Read data from file: in. dat »); ASSIGN (f1, «in.dat »); RESET (f1); READLN (f1,C[1], C[2], C[3]); READLN (f1,k1,k2,k3,k4); READLN (f1,Xn, Xk, dp, n, eps, p); WRITELN («- done. »); ASSIGN (f2, «out.rez »); REWRITE (f2); WRITE («Step 2: Write header to file: out. rez »);

WRITELN (f2, «========================================================== «); WRITELN (f2, «| t, c| Ca,% | Cb,%| Cc,% | SUM | dCa | dCb | dCc | «); WRITELN (f2, «========================================================== «); WRITELN («- done. »); END;

PROCEDURE DONE; BEGIN WRITELN («Step 4: Close all files and exiting… »); CLOSE (f1);

WRITELN (f2, «============================================================ «); CLOSE (f2); WRITELN; END;

BEGIN.

INIT;

RUN;

DONE;

END.

6. Ідентифікація переменных.

Таблиця 1.

7. Результати расчета.

Таблиця 2.

8. Обговорення результатів расчета.

Через війну розрахунку кінетичній схеми процесу мовою Паскаль методом Рунге-Кутты, отримано результати залежності зміни концентрації реагують речовин у часі. З отриманих результатів, можна дійти невтішного висновку, що зроблено вірно, оскільки, з отриманих значень швидкостей реакцій можна дійти невтішного висновку, що дотримується баланс швидкостей хімічної реакции.

Розглянемо процес докладніше. Речовина На протязі всього процесу витрачається освіту речовин У і З. Концентрації речовини На початковий час витрачається швидше, ніж концентрації його ж у кінці процесу. Це пов’язано з тим, що швидкість хімічної реакції залежить від концентрації реагує речовини. Похідна має знак «мінус». Це засвідчує тому, що речовина витрачається. Отже, ніж вище концентрація речовини, який входить у процес, тим більша його реагування коїться з іншими речовинами. Речовини У і З утворюються пропорційно, оскільки, з кінетичній схеми процесу значень констант швидкостей хімічної реакції, видно, що освіта цих речовин і витрати цих речовин, однаково. Похідна має знак «плюс». Це свідчить, що речовина образуется.

Графік. 4.

Это видно ще й за результатами розрахунку, протягом усього часу дослідження процесу концентрації та швидкості речовин У і З однакові. У цьому можна переконатися з вигляду графічної залежності концентрації речовин У і З від времени.

Можна сміливо сказати, що відбувається у бік збільшення концентрації речовин У і З повагою та зменшення концентрації речовини А. Процес буде протікати досі встановлення рівноваги, але в разі рівновагу не встановлено, оскільки речовини продовжують витрачатися і утворюватися. На протязі всього процесу жоден з які виникають речовин не змінило знак похідною. Це засвідчує тому, що відбувається у одну сторону.

9. Інструкція до программме Итак, програма складається з 3 основних процедур:

1) Init — процедура инициалиации, що включає у собі введення данных;

2) Run — процедура обчислення і методи обробки результатів, включає у собі виклик двох допоміжних процедур Difur, RK-4, Stroka, перша у тому числі відпо-відає обчислення, а остання — виведення успіхів у файл в табличном виде;

3) Done — процедура підготовки до виходу з программы;

и трьох вспомогательных:

a) Difur — процедура обчислення похідних (зміна концентрації речовин за единикцу часу).

b) RK-4 — використовуючи значення похідних, вирахуваних процедурой.

Difur, обчислює последущие концентрації речовин методом Рунге;

Кутта.

з) Stroka — процедура виведення результату в файл в табличном виде Рассмотрим всі ці процедури поподробнее:

Процедура INIT:

В даної процедурі задіяні оператори ввода/вывода Wite/Read, оператор модуля Crt — CrlScr — очищення екрана, файлового ввода/вывода — Reset/Rewrite — відкриття файла для читання й створення нового файла, відповідно. Ця процедура виконує функцію ініціалізації програмних даних, зчитування даних із файла in. dat, створення, відкриття на запис файла out. rez і запис до нього шапки таблиці результатов.

Процедура RUN:

В даної процедурі задіяні оператори циклу Repeat/Until, і For/Do з операторами умовного переходу IF/Then. Залежно та умовами викликаються процедури Difur і Strok. У тілі циклу постійно викликається процедура RK-4 що викликає 4 разу функцію Difur.

Процедура DONE:

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

Процедура DIFUR:

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

Процедура STROKA:

Данная процедура з допомогою оператора виведення WRITE записує результати в файл, відповідний файловою перемінної F2, призначеної коммандой ASSIGN у процедурі INIT.

Процедура RK-4:

Данная процедура, використовуючи виклики процедур Difur, і навіть цикли оператори циклу FOR, обчислює последуущие концентрації речовин по предидущим точкам.

Програма є 2 файла — файл з вихідним текстом мовою Паскаль smith. pas і виконуваний модуль smith. exe скомпільований компілятором TNT Pascal 3.25 фірми Layer`s Ins.

Виконуваний модуль програми призначений для запуску в операційні системи: MS Dos, Windows95, Windows NT, OS/2, соціальній та X-windows під Linux (за наявності эмулятора).

Для нормальної роботи програмі необхідно 640 кb «нижньої» пам’яті і 20 kb дискового простору. Погодьтеся — вимоги мінімальні, огляду на те, що саме програма абсолютно не вимоглива до процессору.

У процесі роботи програма зчитує дані з файла in. dat і записує результати своєї роботи в файл out. rez в табличном вигляді. Вихідний файл програма відкриває стандартними засобами ОС, не перевіряючи його наявність перед роботою, тому, якщо це файл нічого очікувати доступний в каталозі, у якому міститься програма, компілятор видасть повідомлення про помилку. Якщо ви після запуску програми побачили щось на кшталт «Runtime error 202 at 0000:0A86» — це лише отже, що ваша програма окремо не змогла знайти файл з вихідними даними нинішнього року каталозі. Якщо ви забули вмістили його туди, скопіюйте цей файл до каталогу з програмою і запустіть виконуваний модуль вкотре. Якщо цей файл у Вас відсутня, Вам доведеться зробити його самому. І тому у кожному текстовому редакторі наберіть 3 виділених сморжі та збережіть створений файл безпосередньо з ім'ям in.dat.

100 0 0 0.2 0.1 0.2 0.1 0 10 0.5 3 0.05 0.

Створивши файл і скопіювавши його до исполняемому модулю програми, запустіть виконуваний модуль ще раз.

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

Step 1: Read data from file: in.dat.

— done.

Step 2: Write header to file: out. rez — done.

Step 3: Calculating data and writting results to file: out.rez.

— done.

Step 4: Close all files and exiting…

Перший крок (step1) повідомляє, що ці з файла in. dat були успішно прочитаны.

Другий — що програма успішно створила вихідний файл out. rez і записала до нього шапку таблиці з данными.

У третьому повідомленні сказано, що ці успішно пораховані і записані в вихідний файл out.rez.

Четверте повідомлення повідомляє про закінчення обчислень і завершенні программы.

Потому, як програма відпрацює, Ви зможете познайомиться з результатами, хто був враховано і перебувають у файл результатів out.rez. Проглянувши його будь-який програмою перегляду текстових файлів чи вывев його за печатку, ви отримаєте таблицю з результатами.

10.

Заключение

.

У виконання розрахунку отримана залежність зміни концентрації речовини у часі. З розрахунку слід, що протягом всього процесу речовина, А витрачалося освіту У і З. Процес не досяг кінцевого стану (не досяг рівноваги) Максимум концентрації речовини спостерігався при наступних значеннях времени:

при початковому значенні часу max відповідав речовини А;

за значення часу, рівному 10 годинах, max відповідав речовин B і З, проте, не є максимумом концентрації речовин, у процесі взагалі, оскільки речовини B і З продовжують образовываться;

У виконання роботи було зроблено розрахунок системи диференційних рівнянь методом Рунге-Кутты четвертого порядку, зроблено розрахунок кінетичною схеми процесу при ізотермічних умовах при даних значеннях концентрацій і констант швидкостей. Розрахунок виконаний з малою величиною погрешности.

1. Мудров А. Е. Численные методи для ПЕОМ мовами Паскаль, Фортран і Бейсик. МП «Раско», Томськ, 1991 г.

———————————- [pic].

[pic].

[pic].

[pic].

[pic].

НАЧАЛО.

INIT.

RUN.

КОНЕЦ

[pic].

[pic].

[pic].

[pic].

[pic].

[pic].

PROCEDURE INIT; BEGIN ClrScr; WRITE («Step 1: Read data from file: in. dat »); ASSIGN (f1, «in.dat »); RESET (f1); READLN (f1,C[1], C[2], C[3]); READLN (f1,k1,k2,k3,k4); READLN (f1,Xn, Xk, dp, n, eps, p); WRITELN («- done. »); ASSIGN (f2, «out.rez »); REWRITE (f2); WRITE («Step 2: Write header to file: out. rez »); WRITELN (f2,'_____________________________________ «); WRITELN (f2, «¦t, c ¦ Ca,% ¦ Cb,% ¦ Cc,% ¦SUM¦ dCa ¦ dCb ¦ dCc ¦ «); WRITELN (f2, «_____________________________________ «); WRITELN («- done. »); END;

PROCEDURE RUN; BEGIN X:=Xn; dX:=0.05; REPEAT.

IF (ABS (x-p)Xk); WRITELN («- done. »); END;

PROCEDURE DONE; BEGIN CLOSE (f1); WRITELN (f2, «___________________ «); CLOSE (f2); WRITELN; END;

PROCEDURE Difur; BEGIN dC[1]: =C[3]*k2+C[2]*k4-C[1]*k1-C[1]*k3; dC[2]: =C[1]*k3-C[2]*k4; dC[3]: =C[1]*k1-C[3]*k2; END;

PROCEDURE STROKA; BEGIN WRITE (f2, «¦ «, x:4:1, «¦ «, c[1]: 7:3, «¦ «, c[2]: 7:3, «¦ «, c[3]: 7:3, «¦ «); WRITE (f2,sum:3:0, «¦ «, dc[1]: 7:3, «¦ «, dc[2]: 7:3, «¦ «, dc[3]: 7:3, «¦ «); WRITELN (f2); END;

PROCEDURE RK4; BEGIN.

Difur;

FOR i:=1 TO n DO BEGIN r1[i]: =dC[i];

C[i]: =cPR[i]+r1[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN r2[i]: =dC[i];

C[i]: =cPr[i]+r2[i]*(dX/2);

END;

Difur;

FOR i:=1 TO n DO BEGIN r3[i]: =dC[i];

C[i]: =cPR[I]+r3[i]*dX;

END;

Difur;

FOR i:=1 TO n DO r4[i]: =dC[i];

FOR i:=1 TO n DO rSR[i]: =((r1[i]+r2[i])*(r2[i]+r3[i])*(r3[i]+r4[i]))/6; END;

Показати весь текст
Заповнити форму поточною роботою