Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Маткад.doc
Скачиваний:
43
Добавлен:
03.11.2018
Размер:
2.6 Mб
Скачать

Работа с матрицами и векторами

Выше рассматривались некоторые действия с матрицами. При решении систем уравнения выполнялось обращение матрицы, умножение матрицы на вектор взятие определителя. Рассматривались также способы заполнения матрицы. Операторами «сложение», «вычитание», «умножение» можно пользоваться, если матрицы отвечают соответствующим требованиям. Оператором «деление» можно только разделить все элементы матрицы на число. Оператором «сопряжение» меняется знак мнимой части элементов матрицы.

В этом разделе рассмотрим некоторые операторы, которые помогут при составлении универсальных программ.

Запись

Клавиши

Описание

Мn

M^n

Возведение матрицы М в степень n. (Возведение в степень можно выполнять только для квадратных матриц).

МТ

М Сtrl !

Транспонирование матрицы М (*)

М Сtrl –

Векторизация матрицы (выполнение одинаковых операций со всеми элементами матрицы) (*)

М Сtrl ^n

Выделение n – столбца матрицы

(*) – можно воспользоваться палитрой Matrix.

Примеры выполнения операндов приведены на рис.19.

Рис 19. Примеры применения операндов действий с матрицами

Только для работы с матрицами существует ряд встроенных функций, из которых наиболее часто применяемые при решении задач энергетики:

  • augment(M1,M2) – объединяет в одну две матрицы М1 и М2, имеющих одинаковое число строк (объединение по горизонтали);

  • stack(M1,M2) – объединяет в одну две матрицы М1 и М2, имеющих одинаковое число столбцов (объединение по вертикали);

  • submatrix(M,ir,jr,ic,jc) – выделяет подматрицу из матрицы М, со строками с ir по jr и столбцами с iс по jс;

Примеры использования встроенных функций приведены на рис.20.

Создание процедур

Очень часто необходимо повторять в определенной последовательности объем вычислений. MathCAD позволяет выполнить такие операции через процедуры. Главным различием между выражением и процедурой заключается в способе задания исходных данных. Рассмотрим, как создать процедуру решения системы уравнений третьей степени (рис. 21). Эта задача решалась ранее (пример на рис. 6).

При создании процедур используется палитра Программирование. Процедура задается оператором и исходными данными, которые заносятся в скобки через запятую.

Р ис.20. Примеры использования встроенных функций

Рис. 21. Процедура решения системы уравнений третьей степени и примеры ее использования к решению двух систем

Нажатием кнопки «Add Line» или клавишу ] создаем вертикальный столбец с полями ввода для операторов процедуры. Операция присваивания осуществляется нажатием кнопки со стрелочкой или одновременным нажатием клавиш Ctrl и [. В остальном операторы вводятся также, как описывалось ранее.

Если сравнить операторы, приведенные в третьем примере рис. 6 и в правой части процедуры рис. 21, то можно заметить, что они одинаковы и различаются только написанием. Но, без использования процедур решение новой системы уравнений требует повторения всех операторов. При использовании же процедур новая система уравнений решается только обращением к процедуре. Независимо от количества операторов в процедуре задача решается одним оператором.

Результатом процедуры является последний операнд.

При анализе нормальных и аварийных режимов электрических систем требуется составить матрицу собственных и взаимных проводимостей электрической сети. Покажем на примере матрицы четвертого порядка, как автоматизировать ее заполнение с помощью процедуры. Чтобы упростить пример, зададимся связями только в виде сопротивлений. Между узлами 3 и 0 включено сопротивление, равное 10 Ом, а между узлами 3 и 2 – 20 Ом. Процедура внесения сопротивления Z может быть составлена в следующей редакции (справа).

Командой Y3,3 := 0 формируется квадратная матрица четвертого порядка (первые строка и столбец имеют нулевой индекс). Далее программируется тело процедуры. В скобках левой части процедуры заносятся узлы m и n, и величина сопротивления Z. Первым оператором в правой части заносится в процедуру матрица Y. Далее проводимость 1/Z суммируются с содержимым соответствующих элементов матрицы Y. Результатом работы процедуры является матрица Y с занесенными новыми проводимостями. Нетрудно убедиться, что заполнение выполнено правильно. Тело матрицы в настоящем примере выдается, чтобы показать, как осуществляется ее заполнение после каждого обращения к процедуре. При решении же серьезной задачи применительно к системе с десятками и сотнями узлов матрица Y выдается только во время отладки при поиске ошибки.