- •Федеральное агентство по образованию
- •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. Результаты сравнения методов решения
системы линейных уравнений
