- •Федеральное агентство по образованию
- •2404000000-35 Удк 681.142:519.6
- •Оглавление
- •1. Основы работы в Mathcad 10
- •2. Роль численных методов 36
- •3. Методы аппроксимации и интерполирования 42
- •4. Лабораторная работа № 1. Интерполирование степенными многочленами 44
- •5. Лабораторная работа № 2. Параметрическая идентификация математических моделей методами аппроксимации 65
- •6. Решение систем линейных алгебраических уравнений 93
- •7. Лабораторная работа № 3. Решение систем линейных уравнений приближенными методами 109
- •8. Лабораторная работа № 4. Решение нелинейных уравнений приближенными методами 142
- •9. Лабораторная работа № 5. Решение систем нелинейных уравнений приближенными методами 174
- •10. Лабораторная работа № 6. Решение обыкновенных дифференциальных уравнений первого порядка численными методами 197
- •11. Лабораторная работа № 7. Численное интегрирование 212
- •12. Лабораторная работа № 8. Моделирование реактора идеального вытеснения для многостадийной химической реакции с линейной кинетикой 226
- •13. Лабораторная работа № 9. Расчет моделей процессов диффузии и теплопроводности с помощью явной разностной схемы 249
- •Предисловие
- •1. Основы работы в Mathcad
- •1.1. Панели инструментов
- •1.2. Ввод и вывод данных
- •1.3. Осуществление несложных вычислений
- •1.4. Построение и настройка графиков
- •1.5. Программирование в Mathcad
- •1.5.1. Программирование без программирования
- •1.5.2. Язык программирования Mathcad
- •1.5.3. Создание программы (Add Line)
- •1.5.4. Редактирование программы
- •1.5.5. Локальное присваивание ()
- •1.5.6. Условные операторы (if, otherwise)
- •1.5.7. Операторы цикла (for, while, break, continue)
- •1.5.8. Возврат значения (return)
- •1.5.9. Перехват ошибок (on error)
- •1.5.10. Примеры программирования
- •2. Роль численных методов
- •2.1. Этапы решения задачи на компьютере
- •2.2. Математические модели
- •2.3. Численные методы
- •3. Методы аппроксимации и интерполирования
- •4. Лабораторная работа № 1. Интерполирование степенными многочленами
- •4.1. Постановка задачи
- •4.2. Порядок выполнения работы
- •4.3. Краткие теоретические сведения
- •4.3.1. Метод неопределенных коэффициентов
- •4.3.2. Интерполяционный многочлен Лагранжа
- •4.3.3. Интерполяционные формулы Ньютона для равностоящих узлов
- •4.4. Примеры выполнения
- •4.4.1. Интерполирование степенными многочленами с использованием метода неопределенных коэффициентов
- •4.4.2. Интерполирование степенными многочленами с использованием второй интерполяционной формулы Ньютона
- •4.5. Требования к отчету
- •4.6. Контрольные вопросы и задания
- •4.7. Задания
- •5. Лабораторная работа № 2. Параметрическая идентификация математических моделей методами аппроксимации
- •5.1. Постановка задачи
- •5.2. Порядок выполнения работы
- •5.3. Краткие теоретические сведения
- •5.3.1. Метод выбранных точек
- •5.3.2. Метод средних
- •5.3.3. Метод наименьших квадратов
- •5.4. Примеры выполнения
- •5.4.1. Аппроксимация с использованием метода выбранных точек
- •5.4.2. Аппроксимация с использованием метода средних
- •5.4.3. Аппроксимация с использованием метода наименьших квадратов
- •5.4.4. Сравнительный анализ методов аппроксимации
- •5.5. Требования к отчету
- •5.6. Контрольные вопросы и задания
- •5.7. Задания
- •6. Решение систем линейных алгебраических уравнений
- •6.1. Общие положения
- •6.2. Точные методы решения систем линейных уравнений
- •6.2.1. Метод Крамера
- •6.2.2. Метод Гаусса
- •6.2.3. Метод обращения матриц
- •7. Лабораторная работа № 3. Решение систем линейных уравнений приближенными методами
- •7.1. Постановка задачи
- •7.2. Порядок выполнения работы
- •7.3. Краткие теоретические сведения
- •7.3.1. Математическое описание реактора идеального смешения непрерывного действия
- •7.3.2. Математическое описание кинетических закономерностей химических превращений
- •7.3.4. Приближенные методы решения систем линейных уравнений
- •7.3.4.1. Метод простых итераций
- •7.3.4.2. Метод Зейделя
- •7.4. Примеры выполнения
- •7.4.1. Пример выполнения задания точным методом
- •7.4.2. Пример выполнения задания методом итераций и методом Зейделя
- •7.5. Требования к отчету
- •7.6. Контрольные вопросы и задания
- •7.7. Задания
- •8. Лабораторная работа № 4. Решение нелинейных уравнений приближенными методами
- •8.1. Постановка задачи
- •8.2. Порядок выполнения работы
- •8.3. Краткие теоретические сведения
- •8.3.1. Этапы решения нелинейного уравнения
- •8.3.4. Метод деления отрезка пополам (вилки, дихотомии)
- •8.3.5. Метод Ньютона (метод касательных)
- •8.3.6. Метод простых итераций
- •8.4. Пример выполнения задания методом итераций
- •8.5. Требования к отчету
- •8.6. Контрольные вопросы и задания
- •8.7. Задания
- •9. Лабораторная работа № 5. Решение систем нелинейных уравнений приближенными методами
- •9.1. Постановка задачи
- •9.2. Порядок выполнения работы
- •9.3. Краткие теоретические сведения
- •9.3.1. Метод Ньютона
- •9.3.2. Метод итераций
- •9.4. Примеры выполнения
- •9.4.1. Метод Ньютона
- •9.4.2. Метод итераций
- •9.5. Требования к отчету
- •9.6. Контрольные вопросы и задания
- •9.7. Задания
- •10. Лабораторная работа № 6. Решение обыкновенных дифференциальных уравнений первого порядка численными методами
- •10. 1. Постановка задачи
- •10.2. Порядок выполнения работы
- •10.3. Краткие теоретические сведения
- •10.3.1. Метод Эйлера
- •10.3.2. Модифицированный метод Эйлера
- •10.3.3. Метод Эйлера-Коши
- •10.3.4. Метод Рунге-Кутта 4-го порядка
- •10.4. Примеры выполнения
- •10.4.1. Реализация метода Эйлера в математическом редактореMathcad
- •10.4.2. Решение обыкновенного дифференциального уравнения 1-го порядка с помощью функции rkfixed
- •10.5. Требования к отчету
- •10.6. Контрольные вопросы и задания
- •10.7. Задания
- •11. Лабораторная работа № 7. Численное интегрирование
- •11. 1. Постановка задачи
- •11.2. Порядок выполнения работы
- •11.3. Краткие теоретические сведения
- •11.3. 1. Метод прямоугольников
- •11.3.2. Метод трапеций
- •11.4. Пример выполнения
- •11.5. Требования к отчету
- •11.6. Контрольные задания
- •1 Таблица 101.7. Задания
- •12. Лабораторная работа № 8. Моделирование реактора идеального вытеснения для многостадийной химической реакции с линейной кинетикой
- •12. 1. Постановка задачи
- •12.2. Порядок выполнения работы
- •12.3. Краткие теоретические сведения
- •12.3.1. Математическая модель реактора идеального вытеснения
- •12.3.2. Численное решение систем дифференциальных уравнений
- •12.4. Пример выполнения
- •12.5. Проверка расчета с помощью функции rkfixed
- •12.6. Требования к отчету
- •12.7. Контрольные вопросы и задания
- •1 Таблица 112.8. Задания
- •13. Лабораторная работа № 9. Расчет моделей процессов диффузии и теплопроводности с помощью явной разностной схемы
- •13.3.2. Решение уравнений в частных производных
- •13.3.3.Метод сетки
- •13.3.4. Явная разностная схема
- •13.3.5. Условия устойчивости явной разностной схемы
- •13.4. Пример выполнения
- •13.5. Требования к отчету
- •13.6. Контрольные вопросы и задания
- •13.7. Задания
- •Библиографический список
- •Использование
7.3.4.2. Метод Зейделя
Другим вариантом итерационного процесса поиска корней системы линейных уравнений является метод Зейделя, который отличается от метода простых итераций тем, что при вычислении (i+1)-го приближения неизвестной величиныxjучитываются уже полученные(i+1)-е приближения неизвестныхx1, x2, , xj-1. Формульная запись метода имеет следующий вид:
(51)
где j=2, 3, …, n;i=0, 1, 2, ….
Метод Зейделя обеспечивает более быструю сходимость к решению.
Касаясь вопроса эффективности работы точных и приближенных методов, следует отметить, что на микроЭВМ, на которых обычно осуществляется решение задач АСУ ТП и память которых ограничена, использование точных методов для систем линейных уравнений выше 3-го порядка нерационально, так как их программная реализация занимает много памяти (обычно эти методы оформлены в виде стандартных программ).
Для этих машин целесообразно использование реализующих численные методы простых программ, которые занимают немного места и быстро решаются.
7.4. Примеры выполнения
Исследуем стационарный режим реактора идеального смешения непрерывного действия, в котором происходит химическая реакция следующего вида:
Начальные концентрации веществ на входе в реактор:
XA0=XB0=XD0=0,3333.
Константы скоростей элементарных стадий химической реакции:
k1=k3=0,5
k2=k4=0,1
Составим уравнения материального баланса согласно (38):
или
(52)
7.4.1. Пример выполнения задания точным методом
Преобразуем систему (52):
(53)
Запишем систему (53) в матричном виде:
(54)
или
.
Систему (54) решим методом обращения матриц, для чего воспользуемся встроенными средствами Mathcad.
Внимание!При выполнении собственного задания студент должен программировать заданный метод полностью,без использования встроенных функций.
Зададим исходные данные
Осуществим программирование решения системы. Используем оператор цикла for, т. к. заранее известно количество повторений (в качестве параметра цикла используем время пребывания ).
Осуществим решение с использованием обратной матрицы С-1. Данная матрица рассчитывается 10 раз. Результат решения системы записывается в вектор Х, который также рассчитывается 10 раз. Результаты решения системы, соответствующие каждому из 10-ти значений, записываются в массивы Ха, Xb, Xd с соответствующим индексом. Также рассчитывается сумма концентраций веществ для каждого, которая заносится в массив S. Для возвращения рассчитанных массивов из функции осуществляется их слияние в двумерный массив с помощью функции augment().
При вызове запрограммированной функции результаты возвращаются в массив х, который впоследствии выводится на экран.
Чтобы при построении графиков их подписи были легко понятны, введём массивы с новыми именами и запишем в них данные массива х по столбцам. Построим графики (рис. 45.
Рис. 45 Результаты решения системы линейных уравнений точным методом
7.4.2. Пример выполнения задания методом итераций и методом Зейделя
Решим систему (52) методом итераций.
Сначала запишем систему (52) в нормальном виде, причем постараемся из всех возможных вариантов выбрать такой, чтобы соблюдалось условие (47), т. е. чтобы сумма модулей коэффициентов нормальной системы уравнений по строкам или столбцам была меньше 1:
для всех
или
для всех.
Вариант преобразования 1.
Раскроем в уравнениях системы (52) скобки
(55)
Перенесем в первом уравнении системы (55) член k1XAвправо, а затем разделим обе части уравнения наk1.
Перенесем во втором уравнении системы (55) член k3XBвправо, а затем разделим обе части уравнения наk3.
Перенесем в третьем уравнении системы (55) член k4XDвправо, а затем разделим обе части уравнения наk4.
В левой части уравнений у неизвестных поставим индекс i+1, а справа индексi. В результате получим систему:
(56)
Осуществим проверку сходимости метода с использованием преобразованной системы (56). Для этого запрограммируем расчет суммы модулей коэффициентов системы уравнений по строкам или столбцам согласно условию (47).
Зададим закон изменения среднего времени пребывания
Рассчитаем суммы модулей коэффициентов по строкам системы (56) и поместим результаты в массив Sstr (т. к. имеем три уравнения, то строк три и получаем в массиве Sstr три столбца – 0, 1 и 2, а т. к. меняется в диапазоне от 1 до 10, а нумерация элементов в массиве начинается с нуля, то получаем в массиве Sstr 11 строк).
Далее рассчитаем суммы модулей коэффициентов по столбцам системы (56) и поместим результаты в массив Sstlb (т. к. имеем три вещества, то столбцов три и получаем в массиве Sstlb три столбца – 0, 1 и 2, а также 11 строк).
Высветим результаты, анализ которых показывает, что большинство полученных сумм значительно превышает 1 при любом значении .
Запрограммируем функцию, которая осуществляет проверку условия (47).
Элементы массивов z и u равны 1, если текущее значение в массиве Sstr и Sstlb соответственно меньше 1, иначе элементы массивов z и u равны 0. Элементы массивов р1 и р2 равны 1, если сумма модулей коэффициентов системы (56) по всем строкам или всем столбцам соответственно для каждого меньше 1. В элементы массива v записывается 1, если условие (47) выполняется.
Как видно из результатов, условие (47) не выполняется независимо от того, какое значение принимает . Это говорит о том, что нами некорректно выбран способ преобразования системы (52) в вид (56). Поэтому попробуем выполнить преобразование по-другому (вариант преобразования 2).
Вариант преобразования 2.
Используем систему (55)
Сгруппируем элементы в уравнениях (55) следующим образом:
а затем
(57)
Внимание! Такой вариант является предпочтительным, т. к. значения знаменателей коэффициентов превосходят значения числителей. Именно поэтому во втором уравнении системы (57) для переменнойXBмножительk3 помещен в знаменатель, аk2 – в числитель (k3>k2).
При проведении преобразований следует сделать так, чтобы искомая переменная рассчитывалась сама через себя в как можно большем количестве уравнений. Если это не удается сделать для всех уравнений, то хотя бы для одного (любого в системе) уравнения это требование нужно выполнить обязательно. В данном примере это удалось только для второго уравнения системы (57). Здесь концентрацияXBi+1рассчитывается через её же значение на предыдущем шагеXBi, а концентрации веществXAi+1,XDi+1рассчитываются черезXBi. Такой вариант вполне допустим.
Расчет суммы модулей коэффициентов по строкам и столбцам системы (57) дает результаты, которые говорят о том, что большинство полученных сумм не превышает 1 или превышает 1 незначительно. При использовании метода итераций гарантировано получение результата для значений 1 и 2. Тем не менее, при программировании метода результат получается для всех значенийот 1 до 10.
Для метода Зейделя система (57) преобразуется следующим образом:
(58)
Как видно, во втором уравнении системы для расчета используется значение ХАi+1, полученное на текущей итерации, а в третьем уравнении –ХBi+1.
Программирование решения методом итераций и методом Зейделя студент должен осуществить самостоятельно (блок-схемы алгоритмов приведены в пункте 7.4.3 на стр. 127–128).
Рекомендации:
при программировании использовать вложенные циклы, внешний цикл по осуществить с помощью оператораfor, а внутренний цикл поi– с помощью оператораwhile,– среднее время пребывания,i– текущая итерация;
для каждого из методов запрограммировать свою функцию расчета;
полученные для каждого метода результаты представить в табличном виде и в виде графиков, примерный вид приведен ниже (рис. 46).
Пояснение названий массивов:
– среднее время пребывания в реакторе;
Xait,Xbit,Xdit– значения концентраций, полученные по методу итераций;
Sit–сумма концентраций;
Iit– количество итераций, за которое получено решения для каждого.
Рис. 46 Результаты решения системы линейных уравнений методом итераций
провести сравнительный анализ трех использованных методов (рис. 47)
Рис. 47. Результаты сравнения методов решения системы линейных уравнений