Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0615872_C78F2_makarov_e_g_raschety_v_mathcad.pdf
Скачиваний:
201
Добавлен:
30.03.2015
Размер:
2.19 Mб
Скачать

При выполнении символьных операций с матрицами необходимо помнить, что если какому-либо символу ранее присвоено численное значение, то при использовании символьного знака равенства этот символ участвует в символьных расчетах как 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).