- •Министерство образования и науки рф
- •Введение
- •Требования к оформлению отчета*
- •Задания к лабораторным работам.
- •Лабораторная работа 2. Методы численного интегрирования.
- •Указания и требования к выполнению работы.
- •Методы численного интегрирования
- •Лабораторная работа № 3. Расчет реактора смешения для сложной реакции с линейной кинетикой
- •Требования по выполнению работы:
- •Замечания по выполнению работы.
- •Реактор идеального смешения
- •Методы решения систем линейных алгебраических уравнений.
- •Метод Жордана-Гаусса (обращения матриц).
- •Итерационные методы.
- •Лабораторная работа № 4
- •4.1 Обработка экспериментальных данных по парожидкостному равновесию.
- •Обработка экспериментальных данных.
- •38 Метанол-ацетон-гептан
- •43 Метанол-ацетон-циклогексан
- •1. Интерполирование.
- •2. Метод наименьших квадратов
- •4.2. Расчет температуры кипения и точки росы трехкомпонентной смеси.
- •Методы уточнения корней уравнений с одним неизвестным.
- •Расчет производится по следующим
- •Лабораторная работа 5 Расчет реактора идеального вытеснения
- •Требования по выполнению работы:
- •Методы решения обыкновенных дифференциальных уравнений
- •Лабораторная работа № 6 Исследование функции, нахождение ее характерных точек и ее графическое изображение в трехмерных координатах.
- •Содержание
- •Приложение –1 – описание языка турбо паскаль версия № 7.0
- •1. Алфавит языка
- •1.1. Символы, используемые в идентификаторах
- •1.2. Разделители.
- •1.3.2. Знаки операций
- •1.3.3. Зарезервированные слова
- •1.4. Неиспользуемые символы
- •2. Структура программы
- •3. Типы данных
- •3.1. Классификация типов данных
- •3.2. Простые типы данных
- •3.2.3. Символьный тип
- •3.2.4. Перечисляемый тип
- •3.2.6. Вещественные типы
- •4. Выражения
- •4.1. Переменные
- •4.2 .Константы.
- •4.2.1. Целые константы
- •4.2.4. Константные выражения
- •4.2.5. Типизированные константы
- •4.3. Стандартные функции
- •4.3.1. Арифметические функции
- •4.3.2. Функции преобразования типа
- •4.3.3. Функции для величин порядкового типа
- •4.4. Знаки операций
- •4.4.1. Арифметические операции
- •4.4.2. Логические операции
- •4.4.3. Операции с битами информации
- •4.4.4. Операции отношения
- •4.5. Круглые скобки
- •4.6. Порядок вычисления выражений
- •5. Операторы языка
- •5.1. Простые операторы
- •5.1.1. Оператор присваивания
- •5.1.2. Оператор безусловного перехода gото. Использование меток
- •5.1.3. Пустой оператор
- •5.2. Структурированные операторы
- •5.2.1. Составной оператор
- •5.2.2. Условный оператор if
- •5.2.3. Условный оператор саsе
- •5.2.4. Оператор цикла repeat
- •5.2.5. Оператор цикла while
- •5.2.6. Оператор цикла for
- •5.2.7. Использование стандартных процедур Break и Соntinue в операторах циклов repeat, while и for
- •6. Структурированные типы данных
- •6.1. Массив
- •6.2. Строка типа string
- •6.3. Аsciiz-строка
- •6.4. Запись
- •6.5. Множество
- •6.6. Файл
- •7 Динамические структуры — данных
- •7.1. Указатель
- •7.2. Работа с динамической памятью
- •7.3. Работа со структурами данных
- •8. Процедурные типы
- •9. Совместимость и преобразование типов данных
- •10 Процедуры и функции
- •10.1. Процедура
- •10.2. Функция
- •10.3. Формальные и фактические параметры
- •10.3.1 Параметры-значения
- •10.3.2. Параметры-переменные
- •10.3.3. Параметры-константы
- •10.3.4. Параметры без типа
- •10.3.5. Массивы и строки открытого типа
- •10.3.6. Параметры-процедуры и параметры-функции
- •10.4. Процедура еxit
- •10.5. Директивы подпрограмм
- •10.5.1. Директива forward
- •10.5.2. Директивы fаr и near
- •10.5.3. Директива ехтеrnal
- •10.5.4. Директива аssembler
- •Пример. Функция, определяющая максимальное из двух чисел
- •10.5.5. Директива inline
- •10.5.6. Директива interrupt
- •10.6. Рекурсивные процедуры и функции
- •11 Организация ввода-вывода
- •11.1. Стандартные процедуры и функции для всех файлов
- •Функции
- •11.2. Стандартные процедуры и функции для текстовых файлов
- •11.3. Стандартные процедуры и функции для типизированных файлов
- •Осуществляется настройка на элемент файла, с которым связана файловая переменная f. Элемент файла определяется номером №, причем нумерация элементов начинается с нуля.
- •11.4. Стандартные процедуры и функции для файлов без типа
- •11.5. Внешние устройства в качестве файлов
- •12 Объектно-ориентированное программирование в turbo pascal 7.0
- •12.1. Пример использования ооп
- •12.2. Понятие объекта
- •12.2.2. Наследование
- •12.2.3. Полиморфизм
- •12.3. Виртуальные методы
- •13 Модули
- •13.1. Заголовок модуля
- •13.2. Интерфейс модуля
- •13.3. Исполнительная часть модуля
- •13.4. Секция инициализации
- •13.5. Использование модуля в основной программе
- •13.6. Использование идентификаторов элементов модуля
- •14 Стандартные модули
- •14.1 Модуль System
- •Арифметические функции
- •Процедуры работы со строками
- •Функции работы со строками
- •Функции управления вводом-выводом
- •Процедуры управления вводом-выводом
- •Функции управления динамической памятью и адресные функции
- •Include Включение элементов множества
- •14.2. Модуль String
- •14.3. Модуль Сrt
- •C80 с080 Для совместимости с версией 3.0
- •14.4. Модуль Graph
- •14.4. Пример использования подпрограмм модуля Сrарh
Методы решения обыкновенных дифференциальных уравнений
Пусть в изотермическом реакторе идеального вытеснения протекает реакция типа: КА
А Р,
скорость которой определяется выражением:
rА = - КАхА , где КА- константа скорости реакции;
хА - концентрация реагента А по длине аппарата, запишется в виде:
=
rА
= - КА
xA
= f(,хА)
(6.5)
с
начальными условиями
![]()
![]()
Следовательно, для определения зависимости хA = f() необходимо проинтегрировать дифференциальное уравнение (6.5).
Формулы Эйлера. Пусть функция x=f() -(решение уравнения (6.5)) непрерывна и дифференцируема. Воспользуемся разложением этой функции в ряд Тейлора до второго члена включительно в окрестности точки х (см.рис.5), т.е. заменим график функции касательной в точке х :
x = x0 + f(0 ,x0 ) (6.6)
где - шаг интегрирования; f( ,x ) - правая часть уравнения (6.5) при х=х0 , =0. Следовательно, уравнение (6.6) позволяет вычислить значение функции f(х) в точке +. Используя вычисленное значение в качестве начального, по формуле (6.6) найдем решение в точке +2 и т.д.

x
x2



x1
x0
0
1
2
Рисунок 7.
Таким образом, в результате многократного применения формулы Эйлера - (6.6) будет получена последовательность значений функции и аргумента, которая является решением дифференциального уравнения (6.5). Нетрудно заметить, что точность решения по формуле (6.6) будет пропорциональна 2 и для увеличения точности необходимо уменьшить шаг интегрирования .
Для повышения точности формулы (6.6) можно воспользоваться некоторым усреднением тангенса угла наклона касательной в точке .
При решении дифференциальных уравнений с использованием модифицированной формулы Эйлера тангенс угла наклона касательной при вычислении последующего приближения равен правой части уравнения (6.5), вычисленной в точке i + /2, т.е. используется формула (6.7):
х


2
3
x1
x0
1
i
i+/2,
i+1
Рисунок 8.
xi+1=xi+ f(i+ /2, xi +/2 f(i,xi)) (6.7)
Как следует из рис. 8, значение функции хi+1 вычисляется следующим образом: 1. Определяется значение производной в точке i (линия 1).
2. Определяется значение производной в точке i+ /2 (линия 2).
3. Из точки i до пересечения с вертикалью =i+ /2 проводится прямая (6.6), угол наклона которой соответствует производной в точке i+ /2 (линия 3).
Очевидно, если промежуточная точка, в которой вычисляется направление отрезка интегральной прямой, отстоит от соседних точек на величину шага, то формула (6.7) перепишется в виде:
xi+1=xi+2 f(i,xi) (6.8)
При вычислении последующих приближений по усовершенствованной формуле Эйлера-Коши тангенс угла наклона касательной к интегральной кривой определяется как тангенс угла наклона биссектрисы касательных к кривой в двух прилежащих точках, т.е. в соответствие с формулой:
xi+1=xi+/2(f(i,xi)+f(i+,xi+ f(i,xi))) (6.9)
В

ычисления
по формуле (6.9) производятся следующим
образом (рис. 7):
3 2’

Х
2



xi+2
3’
xi+1
xi
i
i+1
i+2
1
Рисунок 9.
1. В точке i вычисляется значение производной;
2. Вычисляется значение производной в точке i+1=i+ ;
3. Из точки i до пересечения с прямой =i+1 проводится прямая, угол наклона которой равен полусумме углов наклона касательных в точках i и i+1 .
При использовании формул (6.7) и (6.8) для интегрирования дифференциальных уравнений с одинаковым шагом точность решения значительно возрастает по сравнению с формулой (6.6).
Решение по формуле Эйлера-Коши можно улучшить, если воспользоваться итерационным способом уточнения каждого значения хi+1. В этом случае, исходя из начального приближения, итерационный процесс проводится по формуле:
xi+/2(f(i,xi)+f(i+1,xki+1))
(6.10)
и
вычисления на каждом шаге повторяются
до тех пор, пока не будет выполнено
условие:![]()
Формулы Рунге-Кутта. Эти формулы интерпретируются геометрически по сравнению с формулами Эйлера как некоторая другая стратегия усреднения тангенса угла наклона отрезка интегральной прямой.
Различают формулы Рунге-Кутта первого, второго, третьего, четвертого и выше порядков. При увеличении порядка формулы возрастает объем вычислений, производимых на каждом шаге интегрирования. При выводе формул Рунге-Кутта порядка выше первого для определения коэффициентов уравнений необходимо фиксировать значения некоторых коэффициентов (задавать численные значения). Поэтому существует большое разнообразие формул, отличающихся коэффициентами. Так, в частном случае из формулы второго порядка, могут быть получены модифицированная и усовершенствованная формулы Эйлера. Формулы наиболее часто используемые в практике решения уравнений, получаются исходя из удобства вычисления коэффициентов.
При решении обыкновенных дифференциальных уравнений наибольшее распространение получили формулы четвертого порядка. Примером формулы Рунге-Кутта четвертого порядка являются соотношения:
xi+1 = xi + 1/6 (k1 + 2k2 +2k3 + k4) (6.11)
где:
k1 = f(i,xi)
k2 = f(i+ /2, xi + k1 /2)
k3 = f(i+ /2, xi + k2 /2)
k4 = f(i+ , xi + k3 )
Примером формулы пятого порядка является формула Рунге-Кутта-Мерсона:
xi+1 = xi + 1/6 (k1 + 4k4 + k5) (6.12)
где:
k1 = f(i,xi)
k2 = f(i+ /3, xi + k1 )
k3 = f(i+ /3, xi + k1/2+ k2/2)
k4 = f(i+ /2, xi + k1 3/8+ k3 9/8 )
k5 = f(i+ , xi + k1 3/2 - k3 9/2 + 6 k4)
Формулы Рунге-Кутта четвертого порядка обеспечивают точность, пропорциональную 5.
В двух следующих методах преодолен недостаток методов Эйлера, Рунге-Кутта и Рунге-Кутта-Мерсона: многократное вычисление на каждом шаге производной с последующим их “усреднением”, путем прогноза и коррекции поведения функции в текущей точке на основе информации о ее значениях в предшествующих точках. Интегрирования уравнений проводится конечно-разностными методами с использованием аппроксимации решения формулами Ньютона для интерполирования назад (метод Адамса) и для интерполирования вперед (метод Милна).
Метод Адамса
Интегрирование уравнения:
f(,х)
= x’
данным методом проводят по следующей
рекурентной формуле с точностью до
разностей третьего порядка:
xi+1 = xi + (55x’i - 59x’i-1 + 37 x’i-2 - 9 x’i-3)/24 (6.13)
Метод Милна
Интегрирование уравнения:
f(,х)
= x’
данным методом проводят по следующим
рекурентным формулам:
xi = xi-2 + (x’i + 4 x’i-1+x’i-2)/3 (6.14)
и
xi = xi-4 + 4(x’i-1 - x’i-2+2x’i-3)/3 (6.15)
Причем используются обе формулы. Сначала определяется первое xi(1) приближение по формуле (6.15), затем второе xi(2) по формуле (6.14). Если при этом выполняется условие: abs(xi(1) - xi(2))/2 , где - точность решения, то в качестве решения принимается xi(2). В противном случае расчеты по этим формулам повторяются, но с меньшим шагом.
Для увеличения точности интегрирование дифференциальных уравнений проводят с переменным шагом. В простейшем случае переменный шаг обеспечивается следующим образом. Из начальной точки проводится вычисление двух значений интегральной кривой с шагом /2 и одного значения с шагом . Если разность полученных значений функций (по модулю) не превышает заданной погрешности, то интегрирование проводится с шагом , в противном случае - с шагом /2.
