- •Федеральное агентство по образованию
- •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. Задания
- •Библиографический список
- •Использование
1. Основы работы в Mathcad
Создатели Mathcad изначально поставили перед собой такую задачу, чтобы дать возможность профессионалам-математикам, физикам и инженерам самостоятельно проводить сложные расчеты, не обращаясь за помощью к программистам. Но выяснилось, что вовсе без программирования Mathcad серьезно теряет в своей силе, в основном из-за недовольства пользователей, знакомых с техникой создания программ и желающих осуществить свои расчеты в привычном для себя программистском стиле.
Поэтому последние версии Mathcad имеют элегантный собственный язык. С одной стороны, он дает возможность программисту эффективно применять программный код в документах Mathcad, с другой, простота и интуитивность языка программирования позволяет быстро ему обучиться. Наконец, программные модули внутри документа Mathcad сочетают в себе и обособленность (поэтому их легко отличить от остальных формул), и простоту смыслового восприятия.
Несмотря на небольшое число операторов, язык программирования Mathcad позволяет решать самые различные, в том числе и довольно сложные, задачи и является серьезным подспорьем для расчетов.
1.1. Панели инструментов
Вычисления в Mathcad осуществляются путем написания набора операторов. Имеет значение порядок расположения операторов на листе. Вычисления осуществляются по порядку сверху вниз и слева направо.
Формирование операторов осуществляется с клавиатуры, а также с использованием пиктограмм, отвечающих за определенные действия и вычисления. Пиктограммы расположены на панелях инструментов. Вызов панелей осуществляется из меню ViewToolbars(ВидПанели инструментов) (рис. 1).
Рис. 1. Внешний вид Mathcad
1.2. Ввод и вывод данных
Для хранения данных в среде Mathcad, так же как и в средах программирования, используются переменные, массивы и т. д.
1. Для ввода значения переменной используется операторDefinition (Присвоить значение) «:=». Он расположен на панели ViewToolbarsMathCalculation (ВидПанели инструментовМатематикаАрифметика) (рис. 2)
Для вызова оператора можно использовать горячие клавиши: Shift+:(илиShift+Жпри русской раскладке клавиатуры).
Рис. 2. Панель Арифметика
2. Для вывода значения переменной используется операторEvaluate Numerically (Знак равенства) «=». Он расположен там же.
Следует помнить, что для правильного отражения присвоенного переменной xзначения этот оператор должен находиться ниже или правее предыдущего.
Сравните:
и
3. Ввод массива осуществляется так. Вводится имя массива, оператор присваивания
Затем вызывается ViewToolbarsMathMatrix (ВидПанели инструментовМатематикаМатрицы) (рис. 3), выбирается кнопка Insert Matrix (Вставить матрицу). В появившемся окне (рис. 4) выбирается нужное количество строк и столбцов. Например, для вектора, состоящего из трех элементов, выбираем 3 строки и 1 столбец. В появившейся заготовке заполняем числами элементы (рис. 5).
Рис. 3. Панель Матрицы
Рис. 4. Окно Вставить матрицу
Рис. 5. Заполнение матрицы
4. Для просмотра содержимого массива используется операторEvaluate Numerically (Знак равенства) «=».
5. Обращение к конкретному элементу массива осуществляют так. Набирают имя массива, затем нажимают кнопку MatrixSubscript (МатрицыНижний индекс) или горячие клавиши Shift+] (или Shift+ъ при русской раскладке клавиатуры). Получают заготовку, в которую вводят номер нужного элемента (если массив двумерный, то через запятую вводят второй номер – первый будет отвечать за строку, второй за столбец).
Затем нажимают пробел, чтобы синим маркером был подсвечен весь элемент, и набирают оператор «=» или «=:».
Просмотр элемента вектора:
Изменение элемента двумерного массива:
6. Нельзя путать индексированные переменные и переменные с подстрочником в имени. Последние задаются с помощью вставки в документ символа «.»(точки). Способы их задания представлены в табл. 1.
Таблица 1
Способ задания переменной |
Отображение переменной |
х [ 1 |
х1 – индексированная переменная |
х . 1 |
х1 –переменная с подстрочником в имени |
7. При работе с массивами следует уметь обращаться с системной переменной ORIGIN. Если в тексте документа она не упоминается, то её значение по умолчанию считается равным нулю и нумерация элементов в массиве начинается с нулевого элемента, как в языке Си.
При желании можно начать нумерацию с единицы. Для этого следует ввести оператор
Как видно из примера, теперь нулевой элемент в массиве отсутствует.
8. Достаточно часто возникает необходимость задать диапазон изменения значений переменной, например, для построения графика функции, определении индексированных переменных. Для этого в Mathcad существуют ранжированные переменные, использование которых в ряде случаев заменяет циклы. Задается переменная следующим образом:
Name := Begin, Begin+Step, End
где Name – имя переменной;
Begin – начальное значение переменной;
Еnd – конечное значение переменной;
Step – шаг изменения значения переменной (положительный, если Begin < End, и отрицательный, если наоборот).
Например, запись х := 5, 5.1 .. 6 означает, что переменная х изменяется от 5 до 6 с шагом 0,1. Символ «..»набирается в документе не двумя точками подряд, а вставкой в документ символа«;»либо с помощью клавиши «;» в английской раскладке клавиатуры, либо«Schift»+«4»в русской раскладке. Вывод значений ранжированной переменной осуществляется в таблицу, которая автоматически появляется на экране после нажатия «=» за именем переменной. Например, задаем
u := 8, 7.5 .. 6.
Затем набираем u = и получаем следующую таблицу:
-
u =
8
7.5
7
6.5
6