рефераты рефераты
Главная страница > Курсовая работа: Решение систем дифференциальных уравнений методом Рунге - Кутты 4 порядка  
Курсовая работа: Решение систем дифференциальных уравнений методом Рунге - Кутты 4 порядка
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

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

  Рассмотрим процесс подробнее. Вещество А на протяжении всего процесса расходуется на образование веществ В и С. Концентрации вещества А в начальный момент времени расходуется быстрее, чем концентрации его же в конце процесса. Это обусловлено тем, что скорость химической реакции зависит от концентрации реагирующего вещества. Производная имеет знак «минус». Это говорит о том, что вещество расходуется. Следовательно, чем выше концентрация вещества, вступающего в процесс, тем выше скорость его реагирования с другими веществами. Вещества В и С образуются пропорционально, так как, исходя из кинетической схемы процесса и значений констант скоростей химической реакции, видно, что образование этих веществ и расходование этих веществ, одинаково. Производная имеет знак «плюс». Это говорит о том, что вещество образуется.

 

 

 

График. 4

 

Это видно также и по результатам расчета, на протяжении всего времени исследования процесса концентрации и скорости веществ В и С одинаковы. В этом можно убедиться по виду графической зависимости концентрации веществ В и С от времени.

Можно сказать, что процесс протекает в сторону увеличения концентрации веществ В и С и уменьшения концентрации вещества А. Процесс будет протекать до момента установления равновесия, но в данном случае равновесие не установлено, так как вещества продолжают расходоваться и образовываться. На протяжении всего процесса ни одно из образующихся веществ не поменяло знак производной. Это говорит о том, что процесс протекает в одну сторону.

9. Инструкция к программме

Итак, программа состоит из 3 основных процедур:

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

Run - процедура вычисления и обработки результатов, включает в себя вызов двух вспомогательных процедур Difur, RK-4, Stroka, первая из которых отвечает за вычисление, а последняя - за вывод результатов в файл в табличном виде;

Done - процедура подготовки к выходу из программы;

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

 

Difur - процедура вычисления производных (изменение концентрации веществ за единикцу времени )

RK-4 - используя значения производных, вычисленных процедурой Difur, вычисляет последущие концентрации веществ методом Рунге-Кутта

Stroka - процедура вывода результата в файл в табличном виде

Рассмотрим все эти процедуры поподробнее:

Процедура INIT:

Подпись: 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; 

     

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

Процедура RUN:

Подпись:  PROCEDURE RUN;
 BEGIN
X:=Xn;
 dX:=0.05;
 REPEAT
 IF (ABS(x-p)<eps) THEN BEGIN
 Difur;
 sum:=C[1]+C[2]+C[3];
 STROKA;
 p:=p+dp; END;
 FOR i:=1 TO n DO Cpr[i]:=C[i];
 RK_4;
 X:=X+dX;
 UNTIL(X>Xk);
 WRITELN(' - done.');
 END;


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

Процедура DONE:

Подпись: PROCEDURE DONE;
 BEGIN
CLOSE(f1);
 WRITELN(f2,'___________________');
 CLOSE(f2);
 WRITELN;
 END;


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

Процедура DIFUR:

Подпись: 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;


Данная процедура вычисляет производную изменения концентрации везества за единицу времени.

Процедура STROKA:

Подпись: 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;


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

Подпись:  PROCEDURE RK_4;
 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;


Процедура 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.

Страницы: 1, 2, 3, 4

рефераты
Новости