- •Федеральное агентство по образованию
- •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. Задания
- •Библиографический список
- •Использование
4.4. Примеры выполнения
4.4.1. Интерполирование степенными многочленами с использованием метода неопределенных коэффициентов
Запрограммируем в Mathcadрешение примера 1.
Задаем системной переменной значение 1.
![]()
Задаем начальные значения экспериментальных массивов согласно табл. 3.


Задаем значение контрольной точки аргумента, в которой надо найти значение искомой функции:

Строим график экспериментальных значений (рис. 24).

Рис. 24. График экспериментальных значений
Так как имеем три экспериментальных точки, в качестве интерполирующей зависимости выберем степенной многочлен 2-го порядка
.
Пользуясь полученной формулой, составим систему линейных уравнений:

Данную систему запишем в векторно-матричной форме:

или
.
Решим полученную систему методом Крамера. Для этого сформируем 4 матрицы. Первая матрица С – главная матрица системы, остальные матрицы С0, С1 и С2 получаются из матрицы С путем замены 1-го, 2-го и 3-го столбца на вектор
соответственно.




Следует отметить, что программирование осуществляется с использованием имен переменных, а не значений. Это позволит сделать программууниверсальнойи использовать её для решения других подобных задач в дальнейшем.
Далее контролируем заполнение матриц:




Осуществляем расчет определителя матрицы С согласно правилу миноров.
Для набора формулы используем панель Greek(Греческий алфавит) иMatrix(Матрицы). Следует учесть, что для обозначения элементов двумерной матрицы С используется два индекса, разделенных запятыми (первый нумерует строку, второй – столбец). Если формула выходит за пределы страницы документа, часть её необходимо подсветить
![]()
и нажать Ctrl+Enter. В результате формула разобьётся на две строки.
![]()
Если удалить подсвеченный красным местозаполнитель, формула будет рассчитываться автоматически, как и прежде.
![]()
Далее высвечиваем результат расчета
![]()
и осуществляем проверку нажатием кнопки Determinant (Вычисление определителя) на панели Matrix (Матрицы)
![]()
Аналогично осуществляем расчет и проверку расчета определителей матриц С0, С1 и С2.
Рассчитываем коэффициенты a0,a1,a2.
![]()
![]()
![]()
![]()
![]()
![]()
Используя найденные коэффициенты, задаем функцию yr(xk) для получения расчетных значений. Имя функции отличается от y(x), чтобы не испортить заданные в начале программы значения экспериментальных массивов x и y.
![]()
Высвечиваем расчетное значение функции в контрольной точке (как и ожидалось, оно находится между второй и третьей экспериментальными токами – 12 и 15):
![]()
Добавляем к построенному ранее графику экспериментальных значений расчетную кривую yr(x1). Для этого сначала вводим ранжированную переменную x1, которая позволит получить не три, а девять расчетных значений и построить более гладкий график функции, отраженный с помощью пунктирной линии (рис. 25). Значение контрольной точки отражаем на графике с помощью крестика.
![]()

Рис. 25. Графики, полученные при интерполировании методом
неопределенных коэффициентов
4.4.2. Интерполирование степенными многочленами с использованием второй интерполяционной формулы Ньютона
Запрограммируем в Mathcadрешение примера 4. Программировать будем также с использованием имен переменных, чтобы программа получилась универсальной.
Задаем системной переменной значение 1.
![]()
Задаем начальные значения экспериментальных массивов согласно табл. 3.


Строим график экспериментальных значений (рис. 26).

Рис. 26. График экспериментальных значений
Так как имеем три экспериментальных точки, в качестве интерполирующей зависимости выберем степенной многочлен 2-го порядка
.
Формула (11) для n=2 будет выглядеть следующим образом:
,
у2 = у3 – у2,
2 у1 = у2 – у1 = у3 – 2у2 + у1,h=4.
Запрограммируем эти формулы в Mathcad, используя промежуточные переменные. Следует учесть при наборе следующиеособенности:
индексы элементов экспериментальных массивов xиyнабираются через клавишу;или с помощью кнопкиSubscript(Нижний индекс) на панелиMatrix(Матрицы);
имена переменных, обозначающих конечные разности, набираются в одну строку, без индексов.
![]()
![]()
![]()
![]()
![]()
Задаем функцию yr(xk) для получения расчетных значений. Имя функции отличается от y(x), чтобы не испортить заданные в начале программы значения экспериментальных массивов x и y.
![]()
Как видно, в расчетах не использовалось значение x1, поэтому точность интерполирования выше в конце таблицы.
Для того чтобы получить значения коэффициентов a0, a1 и a2, воспользуемся функцией parfrac. Для этого нажмем кнопкуConvert to Partial Fractions Keywords(Преобразование в частичных долях) на панелиSymbolic(Символы).
![]()
Присваиваем переменным a0, a1 и a2 значения согласно полученному выражению
![]()
![]()
![]()
и высвечиваем полученные значения коэффициентов
![]()
![]()
![]()
Использование пункта 5 в программе снижает её универсальность, т. к. при изменении исходных данных эти преобразования нужно будет провести вручную.
Используя найденные коэффициенты, задаем функцию yr(xk) для получения расчетных значений.
![]()
Задаем значение контрольной точки аргумента, в которой надо найти значение искомой функции:
![]()
Высвечиваем расчетное значение функции в контрольной точке (как и ожидалось, оно находится между второй и третьей экспериментальными токами – 12 и 15):
![]()
Добавляем к построенному ранее графику экспериментальных значений расчетную кривую yr(x1). Для этого сначала вводим ранжированную переменную x1, которая позволит получить не три, а девять расчетных значений и построить более гладкий график функции, отраженный с помощью пунктирной линии (рис. 27). Значение контрольной точки отражаем на графике с помощью крестика.
![]()

Рис. 27. Графики, полученные при интерполировании с помощью
второй интерполяционной формулы Ньютона
