- •Часть 4
- •Введение
- •Лекция 1. Система математических расчетов MathCad и особенности ее применения
- •1. Общая характеристика системы MathCad
- •2. Информационная среда, предоставляемая в распоряжение пользователя
- •3. Входной язык, встроенные функции и модули системы MathCad
- •3.1. Входной язык системы MathCad
- •3.2. Основные модули системы MathCad
- •Лабораторное занятие 1: Вычисления и типы данных
- •1. Вычисление значений арифметических и алгебраических выражений
- •2. Переменные, функции и операторы
- •2.1. Переменные
- •2.2. Функции
- •2.3. Операторы
- •3. Данные в MathCad
- •3.1 Типы данных
- •3.2. Размерные переменные
- •4. Массивы
- •4.1. Создание массивов
- •4.2. Ранжированные переменные
- •Лабораторное занятие 2. Создание графиков
- •1. Двумерная графика
- •1.4. Полярный график
- •1.5. Построение нескольких рядов данных
- •1.6. Форматирование осей
- •1.7. Форматирование рядов данных
- •1.8. Трассировка и увеличение графиков
- •2. Трехмерная графика
- •2.1 Создание трехмерной графики
- •2.2. Форматирование трехмерных графиков
- •Лабораторное занятие 3. Символьные вычисления
- •1. Символьная алгебра
- •1.1.Разложение выражений (Expand)
- •1.2. Упрощение выражений (Simplify)
- •1.3. Разложение на множители (Factor)
- •1.4. Приведение подобных слагаемых
- •1.5. Определение коэффициентов полинома (Polynomial Coefficients)
- •1.6. Разложение на элементарные дроби
- •1.7. Подстановка переменной (Substitute)
- •1.8. Решение алгебраических уравнений (solve)
- •1.9. Суммы и произведения
- •2. Символьное решение задач математического анализа
- •2.1. Дифференцирование (Differentiate) и интегрирование (Integrate)
- •2.2. Разложение в ряд (Expand to Series)
- •2.3. Интегральные преобразования
- •3. Дополнительные возможности символьного процессора
- •3.1. Применение функций пользователя
- •3.2. Получение численного значения выражений
- •3.3. Последовательности символьных команд
- •Лабораторное занятие 4. Численные методы
- •1. Интегрирование и дифференцирование
- •1.1. Интегрирование
- •1.2. Дифференцирование
- •2. Алгебраические уравнения и оптимизация
- •2.1. Одно уравнение с одним неизвестным
- •2.2. Корни полинома
- •2.3. Системы уравнений
- •2.4. Символьное решение уравнений
- •3. Поиск экстремума функции
- •3.1. Экстремум функции одной переменной
- •3.2. Условный экстремум
- •3.3. Экстремум функции многих переменных
- •3.4. Линейное программирование
- •Лабораторное занятие 5. Матричные вычисления
- •Простейшие операции с матрицами
- •Транспонирование
- •Сложение
- •1.3. Умножение
- •1.4. Определитель квадратной матрицы
- •1.5. Модуль вектора
- •1.6. Скалярное произведение векторов
- •1.7. Векторное произведение
- •1.8. Сумма элементов вектора и след матрицы
- •1.9. Обратная матрица
- •1.10. Возведение матрицы в степень
- •1.11. Векторизация массивов
- •2.1.2. Создание матриц специального вида
- •2.2. Слияние и разбиение матриц
- •2.2.1. Выделение части матрицы
- •2.2.2. Слияние матриц
- •2.3. Сортировка матриц
- •2.4. Вывод размера матриц
- •2.5. Норма квадратной матрицы
- •2.6. Число обусловленности квадратной матрицы
- •2.7. Ранг матрицы
- •3. Система линейных уравнений
- •4. Собственные векторы и собственные значения матриц
- •Лабораторное занятие 6. Обыкновенные дифференциальные уравнения
- •1. Оду первого порядка
- •1.1. Вычислительный блок Given/Odesolve
- •1.2. Встроенные функции rkfixed, Rkadapt, Bulstoer
- •2. Оду высшего порядка
- •3. Системы оду первого порядка
- •3.1. Встроенные функции для решения системы оду
- •3.2. Решение системы оду в одной точке
- •Приложения Приложение 1. Встроенные функции и операторы
- •Встроенные функции
- •Приложение 2. Сообщения об ошибках
- •Оглавление
1. Оду первого порядка
Дифференциальное уравнение первого порядка может по определению содержать помимо самой искомой функции y(t) только ее первую производную y’(t). В подавляющем большинстве случаев дифференциальное уравнение можно записать в стандартной форме (форме Коши):
y'(t)=f(y(t),t),
и только с такой формой умеет работать вычислительный процессор MathCAD. Правильная с математической точки зрения постановка соответствующей задачи Коши для ОДУ первого порядка должна, помимо самого уравнения, содержать одно начальное условие – значение функции y(t0) в некоторой точке t0. Требуется явно определить функцию y(t) на интервале от t0 до t1. По характеру постановки задачи Коши называют еще задачами с начальными условиями, в отличие от краевых задач.
Для численного интегрирования одного ОДУ можно использовать либо вычислительный блок Given/Odesolve, либо встроенные функции. Первый путь позволяет наглядно представить задачу и результаты, а второй дает пользователю больше средств для воздействия на параметры численного метода. Исследуем оба варианта решения.
1.1. Вычислительный блок Given/Odesolve
Вычислительный блок для решения одного ОДУ, реализующий численный метод Рунге-Кутты, состоит из трех частей:
-
Given – ключевое слово;
-
ОДУ и начальные условия, записанные с помощью логических операторов, причем начальное условие должно быть в форме y(t0)=b;
-
odesolve(t,t1) – встроенная функция для решения ОДУ относительно переменной t на интервале (t0,t1). Допустимо задание функции odesolve(t,t1,step) с тремя параметрами, где step –внутренний параметр численного метода, определяющий количество шагов, в которых метод Рунге-Кутты будет рассчитывать дифференциальное уравнение. Чем больше step, тем с лучшей точностью будет получен результат, но тем больше времени будет затрачено на его поиск.
Задание 1. Реализуйте следующий пример и проанализируйте полученные результаты:
Результатом применения блока Given/Odesolve является функция y(t), определенная на промежутке (t0,t1). Можно построить график этой функции, используя графические средства MathCAD, или получить значения в какой-либо точке.
1.2. Встроенные функции rkfixed, Rkadapt, Bulstoer
Для решения ОДУ можно использовать встроенные функции. Этот способ несколько проигрывает первому как в простоте, так и наглядности и используется в ранних версиях MathCAD.
Задание 2. Реализуйте следующий пример и проанализируйте полученные результаты:
Результат решения здесь представлен не в виде функции, а в виде матрицы размерности M×2. Она состоит из двух столбцов: в одном находятся значение аргумента t (от t0 до t1 включительно), а в другом соответствующие значения искомой функции y(t). График решения соответствует получению решения в матричном виде, поэтому по осям отложены соответствующие столбцы, выделенные их матрицы y оператором Столбец матрицы (M<>)
2. Оду высшего порядка
Обыкновенное дифференциальное уравнение с неизвестной функцией y(t), в которое входят производные этой функции вплоть до y(N)(t), называются ОДУ N-го порядка. Если имеется такое уравнение, то для корректной постановки задачи Коши требуется задать N начальных условий на саму функцию y(t) и ее производные от первого до (N-1)-го порядка включительно.
В MathCAD можно решать ОДУ высших порядков как с помощью вычислительного блока Given/Odesolve, так и путем сведения их к системам уравнений первого порядка.
Внутри вычислительного блока:
-
ОДУ должно быть линейно относительно старшей производной, т.е. фактически должно быть поставлено в стандартной форме;
-
начальные условия должны иметь форму y(t)=b или y(N)(t)=b, а не более сложную (как, например: y(t)+y'(t)=b).
В остальном, решение ОДУ высших порядков ничем не отличается от решения уравнений первого порядка.
Задание 3. Откройте новый документ и решите задачу Коши для ОДУ второго порядка. Проанализируйте полученные результаты.
В этом задании решено уравнение затухающего гармонического осциллятора, который описывает, например, колебания маятника. Для модели маятника y(t) описывает изменения угла отклонения от вертикали, y'(t) – угловая скорость маятника (для ввода символа производной используется левая верхняя клавиша символьной клавиатуры), y'' (t) – ускорение, а начальные условия, соответственно, начальное отклонение маятника y(0)=0.1 и начальная скорость y'(0)=0.
Второй способ решения ОДУ высшего порядка связан со сведением его к эквивалентной системе ОДУ первого порядка. Если обозначить y0(t)≡y(t), а
y1(t) ≡y'(t)=y0'(t), тот исходное уравнение запишется через функции y0(t) и y1(t) в виде системы двух ОДУ:
y0'=y1,
y1'+0.1·y1+1·y0=0.
Методика решения такой системы приведена в следующем разделе.