- •Автор электронной книги
- •Примеры инженерных расчетов
- •Разное
- •Сопротивление материалов
- •Метод конечных элементов
- •Быстрый старт
- •Интерфейс Mathcad
- •Рабочее окно Mathcad
- •Главное меню
- •Панели инструментов
- •Построение выражений и их вычисление
- •Цепкие операторы
- •Редактирование объектов Mathcad
- •Стандартные функции
- •Ввод текста
- •Функции пользователя
- •Форматирование чисел
- •Построение плоского графика функции
- •Построение трехмерных графиков
- •Основные возможности Mathcad
- •Глобальное присвоение значений
- •Символьные вычисления
- •Решение уравнений
- •Символьное решение
- •Численное решение (функция Root)
- •Решение систем уравнений (функция Find)
- •Исследование функции на экстремум
- •Работа с матрицами
- •Создание матриц
- •Основные действия с матрицами
- •Решение матричных уравнений
- •Оператор векторизации
- •Решение дифференциальных уравнений
- •Анализ экспериментальных данных
- •Интерполяция
- •Регрессия
- •Элементы математической статистики
- •Обмен данными с другими программами
- •Учет размерностей в Mathcad
- •Преобразование функции в матрицу и матрицы в функцию
- •Строковые функции
- •Программирование
- •Анимация
- •Отладка Mathcad-документов
- •Уменьшение размера файла
- •Сообщения об ошибках в численных вычислениях
- •Сообщения об ошибках в символьных вычислениях
При выполнении символьных операций с матрицами необходимо помнить, что если какому-либо символу ранее присвоено численное значение, то при использовании символьного знака равенства этот символ участвует в символьных расчетах как 39 число. Если символу ранее присвоено значение вектора или матрицы, то символьные вычисления с его участием становятся невозможными. В этих случаях надо использовать для символьных вычислений меню Symbolics.
Оператор векторизации
Mathcad допускает в качестве аргумента функции вводить не только числа, но и векторы. При этом вычисляется значение функции для всех элементов вектора. Если аргумент функции — матрица, то, чтобы вычислить значения функции для всех элементов матрицы, надо использовать оператор векторизации (рис. 36).
Рис. 35. Символьные операции с матрицами
Для использования оператора векторизации надо: ввести выражение или функцию;
выделить синим уголком необходимую часть выражения (чаще всего выражение целиком);
на математической панели щелкнуть на кнопке открывшейся панели — кнопке Vectorize
выделенной частью выражения появится векторизации;
нажать клавишу =.
Vector and Matrix Toolbar, а в
JJJJJJG
( f(M) ) (Векторизация). Над стрелка — символ операции
Оператор векторизации изменяет смысл векторной или матричной операции. Векторизация означает выполнение однотипной операции, предписанной
выражением, со всеми элементами массива. Например, A — операция невозможная, если A — вектор или матрица.
40
Рис. 36. Операция векторизации в Mathcad
Начиная с версии Mathcad 2000, аргумент функции может быть и вектором, и функцией. Как и в случае использования дискретной переменной, выражение вычисляется для всех элементов вектора.
Если аргумент функции — матрица, необходимо применение оператора векторизации, чтобы выполнить то же самое, то есть вычислить функцию для всех элементов матрицы. В нашем случае это корень квадратный из каждого элемента
матрицы A. В случае перемножения матриц A B это матричное произведение, а
JJJJJG
A B — это попарное произведение элементов матриц A и B с одинаковыми индексами. Все массивы под знаком векторизации должны быть одного размера, так как операция над всеми массивами производится поэлементно. Использование векторов или матриц в качестве аргументов функции приведены на рис. 36.
ВНИМАНИЕ
Если аргумент — вектор, векторизация не нужна. Если аргумент — матрица, векторизация нужна.
Решение дифференциальных уравнений
Математически решение дифференциальных уравнений — очень сложная проблема. Mathcad не в состоянии решить без дополнительных упрощений многие дифференциальные уравнения и их системы. Все, что Mathcad может сделать с ними, подробно описано в электронной книге в разделе Решение дифференциальных уравнений. Здесь рассмотрим лишь использование одной функции odesolve. Имя функции odesolve можно писать и с прописной, и со строчной буквы. Алгоритм функции odesolve использует большинство, имеющихся в Mathcad функций решения дифференциальных уравнений, фактически заменяя их. Эта замечательная функция появилась в Mathcad 2000 и могла решить лишь одно дифференциальное уравнение. В Mathcad 2001i возможности этой функции расширены. Теперь odesolve может решать и системы дифференциальных уравнений. В последующих версиях Mathcad устранен ряд ошибок, возникавших при использовании этой функции. В контекстном меню появилась возможность выбора метода решения дифференциальных уравнений.
В Mathcad много встроенных функций для решения дифференциальных уравнений. Все они, кроме функции odesolve, требуют определенной, непростой формы записи исходного уравнения. Функция odesolve позволяет записывать уравнение в блоке решения в привычном виде, как обычно записывают уравнение на листе бумаги.
41
Рис. 37. Решение дифференциального уравнения с начальными условиями
Обращение к функции odesolve требует записи вычислительного блока, состоящего из трех частей:
1.ключевое слово given;
2.дифференциальное уравнение и начальные или граничные условия к нему, или система дифференциальных уравнений и условия к ней;
3.функция odesolve(x, xk, n), где
x— имя переменной, относительно которой решается уравнение;
xk — конец интервала интегрирования. Начало интервала интегрирования указано выше в начальных условиях;
n — необязательный внутренний параметр, определяющий число шагов интегрирования, на которых вычисляется решение дифференциального уравнения.
Чем больше n, тем с большей точностью будет решено уравнение, тем больше будет время решения. Параметр n не является обязательным. Его можно удалить, предоставив Mathcad возможность самому выбирать число шагов интегрирования.
ВНИМАНИЕ
Появление других математических выражений в вычислительном блоке между словами given и odesolve недопустимо. Текстовую область внутри вычислительного блока размещать можно. Граничные условия можно задавать лишь в двух точках, одна из которых — начало интервала интегрирования.
Примеры использования функции odesolve приведены на рис. 37 – 40.
42
Рис. 38. Решение дифференциального уравнения с граничными условиями
ПРИМЕЧАНИЕ
Исходное уравнение можно записывать как с использованием оператора дифференцирования, так и со штрихом (рис. 39). Граничные условия следует записывать только со штрихом. Для набора штриха используйте сочетание клавиш
Ctrl+F7.
Функция odesolve возвращает решение дифференциального уравнения в виде функции, а не в виде массива, как все остальные функции решения дифференциальных уравнений, поэтому найденное решение можно интегрировать и дифференцировать (см. рис. 37 – 39), использовать в последующих расчетах как функцию пользователя.
Функция odesolve решает дифференциальные уравнения как с начальными условиями, когда все условия заданы в начале интервала интегрирования, так и с граничными условиями, заданными в двух точках. Из этих двух точек одна обязательно является началом интервала интегрирования, другая произвольная, но ее аргумент больше, чем в начальной точке. Решение уравнения с начальными условиями показано на рис. 37, с граничными условиями — на рис. 38. Решение дифференциального уравнения высокого порядка (четвертого) продемонстрировано на рис. 39.
43
Рис. 39. Решение дифференциального уравнения 4-го порядка
Рис. 40. Решение системы дифференциальных уравнений с начальными условиями
Решение системы дифференциальных уравнений приведено на рис. 40. При этом обращение к функции odesolve изменилось. Для решения одного уравнения: odesolve(x, xk, n).
Для решения системы дифференциальных уравнений: odesolve( (вектор имен неизвестных), x, xk, n).
Впримере на рис. 40 при решении системы трех уравнений вектор имен неизвестных содержит 3 имени.
Вразделе помощи Mathcad Help написано, что функция odesolve может решать системы дифференциальных уравнений и с начальными и с граничными условиями. Однако реально удается решить только системы с начальными условиями.
Потренируйтесь в использовании функции odesolve (рис. 41).