Урок 21. Векторы и матрицы в Mathcad
Павел Демидов 12.11.2014 Уроки Mathcad 2
С этими понятиями Вы могли сталкиваться, работая в Excel – столбец чисел называется вектор-столбцом, строка – вектор-строкой. Блок объектов является матрицей. Вычисления в Excel, по сути, являются операциями с векторами и матрицами. В этом уроке мы познакомимся с аналогичными вычислениями в Mathcad, и мы поймем, почему в Mathcad их проводить проще.
Введение
В предыдущих уроках наши векторы начинались с элемента с номером «0». В этом уроке для простоты сделаем номер первого элемента равным «1». Это можно сделать с помощью вкладки Расчет –> Параметры документа –> ORIGIN:
Это значение можно вывести прямо в документ, чтобы не забыть его и не запутаться:
Теперь рассмотрим несколько матриц:
Как видно, они могут включать в себя числа, символы и даже функции. Они также могут содержать текстовые элементы (строки).
Элемент матрицы можно вывести, используя подстрочные индексы:
Матрицы выше являются квадратными 2х2, но у них может быть любой размер по строкам и столбцам:
Запомните: первое число – номер строки (или их количество), второе – столбца.
Элементы, выделенные с помощью подстрочных индексов:
Для вектор-столбца второй индекс можно опустить, но не для вектор-строки:
Во вкладке Математика –> Операторы и символы –> Операторы –> Векторы и матрицы Вы найдете команды для выделения столбцов и строк:
Многие операции для векторов и матриц аналогичны операциям для обычных чисел, переменных и функций: сложение, вычитание, некоторые виды умножения. Поиск обратной матрицы близко к операции деления. Вы можете записать эти операторы, используя имена векторов и матриц. В качестве примера рассмотрим векторное произведение матрицы и вектора:
Мы рассмотрим эту операцию подробнее позже. Однако стоит заметить, что она требует девять операций умножения и девять – сложения.
Расписывать их утомительно и чревато ошибками – для больших матриц сделать это очень трудно.Применение векторов очень широко. Вспомните пиксели на экране монитора – их могут быть миллионы. Они обрабатываются с помощью операций с матрицами.
В Mathcad
Для создания вектора или матрицы откройте вкладку Матрицы/таблицы. Когда курсор находится в пустой области щелкните по самой левой кнопке «Вставить матрицу». Появится сетка с маленькими квадратами:
Перемести указатель на сетку, выберите желаемый размер матрицы, затем щелкните левой кнопкой мыши. Появится пустая матрица:
Матрице можно присвоить имя, щелкнув на левую скобку, нажав [:] для оператора присваивания и введя имя:
Вставку и удаление строк и столбцов легко осуществлять с помощью команд из меню «Операторы с векторами/матрицами» на вкладке Матрицы и таблицы:
Операции с матрицами
Эффект от различных операций с матрицами и векторами будет проще понять, используя символы. Будем использовать две матрицы и два вектора:
Транспонирование
Оператор транспонирования находится на вкладке Математика –> Операторы –> Векторы и матрицы:
Щелкните по правой границе матрицы и примените оператор. Он работает как для символьных, так и для числовых матриц:
Поэлементные операции
Часто операции в векторами приходится совершать поэлементно. Для этого служит оператор векторизации. Операции в Excel зачастую являются поэлементными, они также важны и в Mathcad. Чтобы перемножить два вектора поэлементно, сначала введите простое умножение:
Затем выберите все выражение и примените векторизацию:
Вычислите, чтобы посмотреть результат: первый элемент умножается на первый, второй – на второй, и т.д.:
Другие поэлементные операции:
Поэлементные операции применимы только к массивам одного размера.
Сложение и вычитание
Сложение и вычитание выполняется поэлементно:
Эта операция также применима лишь к массивам одного размера.
С помощью оператора суммирования можно найти сумму всех элементов вектора (не матрицы):
Скалярное произведение
Умножение на константу работает так:
При скалярном умножении матриц происходит умножение строк на столбцы. При этом используется тот же символ, что и при обычном умножении. Эта операция допустима только для тех матриц, в которых число строк в первой матрице равно числе столбцов во второй. Для наших матриц 2х2:
Заметьте, что последовательность множителей играет роль:
Скалярное произведение не коммутативно, за исключением особых случаев:
Скалярное произведение двух векторов дает результат с комплексно-сопряженными числами (с чертой сверху). Для действительных чисел на это можно не обращать внимания:
Векторное произведение
Этот оператор применим только для двух вектор-столбцов, состоящих из трех элементов:
Векторное произведение имеет широкое применение в механике, гидродинамике, электромагнетизме и в других областях.
Обратная матрица
Обратная матрица определяется только для квадратных матриц:
Произведение матрицы и ее обратной матрицы является единичной матрицей:
Произведение матрицы и единичной матрицы дает изначальную матрицу:
Определитель
Определитель можно найти только для квадратной матрицы. Его значение может быть равно нулю, даже если все элементы матрицы не равны нулю. Обратная матрица содержит дроби, в знаменателе которых находится определитель:
Если определитель равен нулю, обратной матрицы не существует, а матрица является сингулярной. Вспомните деление на ноль в обычной алгебре. Mathcad сообщит, если матрица является сингулярной:
Для скаляра определитель равен его модулю:
Для вектора команда Определитель вычисляет длину вектора:
Резюме
В этом уроке мы рассмотрели векторы и матрицы (массивы).
- Элементы массива можно вывести с помощью подстрочного индекса – один индекс для вектор-столбца, два – для других массивов.
Первое индекс – для строк, второй – для столбцов. - Есть специальные команды для извлечения отдельных строк и столбцов.
- Векторы и матрицы создаются и редактируются с помощью команд со вкладки Матрицы/таблицы.
Операции над векторами и матрицами, которые мы рассмотрели:
- Транспонирование.
- Поэлементные операции.
- Сложение и вычитание.
- Скалярное произведение.
- Векторное произведение.
- Поиск обратной матрицы.
- Поиск определителя.
About Павел Демидов
Выпускник МГТУ им. Н.Э. Баумана, технический специалист по продуктам PTC Mathcad и Solid Edge.
View all posts by Павел Демидов →
Пользовательские единицы измерения в Mathcad
Урок 22. Линейные уравнения в Mathcad
Операции над матрицами
Простейшие операции матричной алгебры реализованы в Mathcad в виде операторов, причем их запись максимально приближена к математическому значению.
Каждый оператор выражается соответствующим символом. Некоторые операции применимы только к квадратным матрицам NxN, некоторые допускаются только для векторов (например, скалярное произведение), а другие, несмотря на одинаковое написание, по-разному действуют на векторы и матрицы.Транспонирование
Транспонированием называют операцию, переводящую матрицу размерности MxN в матрицу размерности NxM, делая столбцы исходной матрицы строками, а строки — столбцами. Несколько примеров транспонирования приведены в примере. Ввод символа транспонирования (transpose) осуществляется с помощью панели инструментов Matrix (Матрица) или нажатием клавиш <Ctrl>+<!>. He забывайте, что для вставки символа транспонирования матрица должна находиться между линиями ввода.
Рис. Ввод матриц и основные операции над ними осуществляются при помощи панели Matrix
ПРИМЕЧАНИЕ
Все матричные и векторные операторы, о которых пойдет речь, допустимо использовать как в численных, так и в символьных расчетах. Мощь символьных операций заключается в возможности проводить их не только над конкретными числами, но и над переменными. Смело используйте символьный процессор в качестве мощного математического справочника, когда вы хотите вспомнить какое-либо определение из области линейной алгебры. Именно по этой причине мы прибегаем к примерам символьных расчетов в большинстве иллюстраций к данному разделу.
Транспонирование векторов и матриц
Действия над матрицами
В Mathcad можно как складывать матрицы, так и вычитать их друг из друга. Для этих операторов применяются стандартные символы «+» или «—» соответственно. Матрицы должны иметь одинаковую размерность, иначе будет выдано сообщение об ошибке. Каждый элемент суммы двух матриц равен сумме соответствующих элементов матриц-слагаемых.
Результат унарной операции смены знака матрицы эквивалентен смене знака всех ее элементов. Для того чтобы изменить знак матрицы, достаточно ввести перед ней знак минуса, как перед обычным числом (нижняя строка примера).
Сложение, вычитание и смена знака матриц
Кроме сложения матриц Mathcad поддерживает операцию сложения матрицы со скаляром. Каждый элемент результирующей матрицы равен сумме соответствующего элемента исходной матрицы и скалярной величины.
Сложение матрицы со скалярной величиной
Иногда бывает нужно вычислить сумму всех элементов вектора или матрицы. Для этого существует вспомогательный оператор (пример 14, первая и вторая строки соответственно), задаваемый кнопкой Vector Sum (Суммирование элементов вектора) на панели Matrix (Матрица) или сочетанием клавиш <Ctrl>+<4>. Этот оператор чаще оказывается полезным не в матричной алгебре, а при организации циклов с индексированными переменными.
В том же примере (снизу) показано применение операции суммирования диагональных элементов квадратной матрицы. Эту сумму называют следом (trace) матрицы. Данная операция организована в виде встроенной функции tr:
tr (А) — след квадратной матрицы А.
Суммирование элементов и вычисление следа матрицы
При умножении следует помнить, что матрицу размерности MxN допустимо умножать только на матрицу размерности NxP (Pможет быть любым). В результате получается матрица размерности MхP.
Чтобы ввести символ умножения, нужно нажать клавишу со звездочкой <*> или воспользоваться панелью инструментов Matrix (Матрица), нажав на ней кнопку Dot Product (Умножение). Умножение матриц обозначается по умолчанию точкой, как показано в примере.
Перемножение матриц
Обратите внимание, что попытка перемножить матрицы А и В несоответствующего (одинакового 2х3) размера оказалась безрезультатной: после введенного знака равенства находится пустой местозаполнитель, а само выражение в редакторе Mathcad выделяется красным цветом. При установке курсора на это выражение появляется сообщение о несовпадении числа строк первой матрицы с числом столбцов второй матрицы.
Еще один пример, относящийся к умножению вектора на матрицу-строку и, наоборот, строки на вектор, приведен в примере.
ВНИМАНИЕ!
Тот же самый оператор умножения действует на два вектора по-другому !!!
Умножение вектора и строки
Аналогично сложению матриц со скаляром определяется умножение и деление матрицы на скалярную величину. Символ умножения вводится так же, как и в случае умножения двух матриц. На скаляр можно умножать матрицу любой размерности.
2. Написать программу в Mathcad или Smath для расчета угла между двумя векторами одинаковой размерности (убедитесь, что они того же размера, если не сказать пользователю, что он не может делать то, что они хотят). 3. Напишите программу MATLAB или Mathcad для умножения двух матриц.
(если возможно). а. Ваша программа должна работать для матрицы произвольного размера. б. Ваша программа должна сказать пользователя, если внутренние размеры не совпадают.Вопрос
Пошаговый ответ
2. Напишите программу в Mathcad или Smath для расчета угла между двумя векторами одинаковой размерности (убедитесь, что они того же размера, если не сообщить пользователю…
2. Напишите программу в Mathcad или Smath для расчета угла между двумя векторами одинаковой размерности (убедитесь, что они того же размера, если не сказать пользователю, что он не может делать то, что они хотят). 3. Напишите программу MATLAB или Mathcad для умножения двух матриц. (если возможно). а. Ваша программа должна работать для матрицы произвольного размера. б. Ваша программа должна сказать пользователя, если внутренние размеры не совпадают.
Рекомендуемый AI ответ:
1. В Mathcad или Smath создайте два вектора одинаковой размерности.
Рекомендация видео с лучшим совпадением:
Решено проверенным экспертом
У нас нет заданного вами вопроса, но вот рекомендуемое видео, которое может помочь.
Лучшее совпадение Вопрос:
Напишите программу на Java, которая просит пользователя ввести три угла треугольника. Если сумма трех введенных углов равна 180, выводится «Это допустимый треугольник», в противном случае «Это недопустимый треугольник».
Рекомендуемые видео
Стенограмма
Привет, я здесь. Мы пишем java-программу, которая использует 23 угла треугольника. Углы треугольника. Я говорю, что это треугольник снежной долины, если общая сумма превышает 280. Публичный старт заключается в том, как мы это делаем. Некоторые девушки могут быть более точными. Мы бы выбрали тип данных для хранения углов. Что происходит? Ладно, давай уберем это с дороги. Это Ммм. Мы будем использовать сканер для получения пользовательского ввода. Чтобы ввести первые ракурсы, нам нужно перейти на новостной канал от ферзя. Когда они заходили, мы назначали угрозу воротам Х. Проходим их еще раз. Мы назначим это Z, когда они сделают этот знак вознаграждения. Он наберет 20, и мы ожидаем, что все будет в порядке. Мировая прецессия теперь в порядке, когда у нас есть X, Y и Z, потому что двойник может справиться с этим. Мы скажем, если это правда. Если это происходит так, это правильный треугольник, потому что вызов 180 близок к 180. Если это правда, это правильный треугольник. Так он входит в дом. Я наткнулся на следующую строчку, в которой говорилось «снобы». Треугольник правильный. Посмотрим, сможем ли мы заставить его работать. Да, это. Он в первом углу. Позвольте мне ввести манго. У нас 120 человек, и мы направляем нашу помощь. Да, правильный треугольник. Не делай этого снова. Это класс. Так холодно. Даже не думай идти. Позвольте мне закончить на 120 0,8. Позвольте мне закончить четыре. Значит, 161. Со мной все будет в порядке до 20. Э-э, до 18. Еще раз спасибо. Это символический треугольник. Позвольте мне ввести кое-что. Там будет более 180 человек. Мы вошли 190 быстро. Это Ммм. Эм 49 говорит, что это неправильный треугольник. Спасибо за ваше время, мы объявляем стены X, Y и Z. Это не позволяет нам получать пользовательский ввод. Было показано, что они входят быстро. Мы относим их к тройке X. Y. Это Z. В неоценимом. Следующий дубль подойдет для межрегионального. Итак, для двойных позиций. Мы добавляем X и Y. Это Z. И c. ф. c делает вызов. Мы говорим, что это правильный треугольник. Это неправильный треугольник. Спасибо за время. Урок сделан.
Поделиться Вопрос
Добавить в плейлист
Хммм, кажется, у вас нет плейлистов. Пожалуйста, добавьте свой первый плейлист.
`
6. Матрицы и линейные уравнения
М. Борна
Мы хотим решить систему одновременных линейных уравнений с использованием матриц:
a 1 x + b 1 y = c 1
a 2 x + b 2 y = c 2
Если мы позволим
`A=((a_1,b_1),(a_2,b_2))`, `\ X=((x),(y))\ ` и `\ C=((c_1),(c_2))`
, затем `AX=C` . (впервые мы увидели это в «Умножении матриц»).
Если мы теперь умножим каждую сторону
АХ = С
слева на
А -1 , у нас есть:
А -1 АХ = А -1 С .
Однако мы знаем, что А -1 А = I , Матрица идентичности. Получаем
IX = А -1 С .
Но IX = X , поэтому решение системы уравнения:
Х = А -1 С
См. рамку в верхней части Обратной матрицы для получения дополнительной информации о том, почему это работает.
Примечание: Мы не можем изменить порядок умножения и использовать CA -1 потому что умножение матриц не является коммутативным.
Пример — решение системы с использованием обратной матрицы
Решите систему с помощью матриц.
— х + 5 у = 4
2 х + 5 у = -2
Всегда проверяйте свои решения!
Ответ
Имеем:
`A=((-1,5),(2,5)),` ` \ X=((x),(y))\ ` и `\ C=((4), (-2))`
Чтобы решить систему, нам нужно обратное A , которое мы запишем как A -1 .
Поменять местами ведущую диагональ:
9-1C` `=((-0,333,0,333),(0,133,0,067))((4),(-2))` `=((-2),(0,4)) ``((5,5),(2,-1))`
Этот ответ означает, что мы нашли решение `x = -2` и `y = 0,4`.
Решение верное?
Проверяем в исходной системе уравнений:
`{:(-x+5y,=4),(2x+5y,=-2):}`
Подставляя `x = -2` и `y = 0,4`, получаем:
`-(-2) + 5×(0,4) = 2 + 2 = 4` [Проверка OK]
`2×(−2) + 5×(0,4)` ` = −4 + 2` ` = −2` [Проверка ОК]
Итак, решение исходной системы уравнений
`x = -2,\ \ y = 0,4`.
Мы можем распространить описанный выше метод на системы любого размера. Мы не можем использовать тот же метод для нахождения обратных матриц больше 2×2.
Мы будем используйте систему компьютерной алгебры, чтобы найти инверсию больше, чем 2×2.
Пример — Система 3×3 Уравнения
Решите систему, используя матричные методы.
`{: (x+2y-z=6),(3x+5y-z=2),(-2x-y-2z=4) :}` 9-1С`
`=((5.5,-2.5,-1.5),(-4,2,1),(-3.5,1.5,0.5))((6),(2),(4))`
`=((22),(-16),(-16))`
Чек:
`22 + 2(-16) — (-16) = 6` [Проверка ОК]
`3(22) + 5(-16) — (-16) = 2` [Проверка ОК]
`-2(22) — (16) — 2(-16) = 4` [Проверка ОК]
Итак, решение `x = 22`, `y = -16` и `z = -16`.
Пример — Электронное применение системы 3×3 Уравнения
Найдите электрические токи, показанные решение матричного уравнения (получено по закону Кирхгофа) возникающие из этой цепи: 9-1((0),(24),(0))`
Используя систему компьютерной алгебры для выполнения обратной и умножения на постоянную матрицу, мы получаем:
`I_1= -6\ «А»`
`I_2= 4\ «А»`
`I_3= 2\ «А»`
Мы видим, что I 1 имеет отрицательное значение, как и ожидалось на принципиальной схеме.
Упражнение 1
Найдено следующее уравнение в конкретной электрической цепи. Найдите токи, используя матрицу методы. 9-1C`
`=((0,294,0,353,0,294),(0,118,-0,059,0,118),(0,588,-0,294,-0,412))((0),(6),(-3))`
`=((1,236),(-0,708),(-0,528))`
Поэтому
`I_A= 1,236\ «А»`,
`I_B= -0,708\ «А»` и
`I_C= -0,528\ «А»`
Упражнение 2
Помните эту проблему раньше? Если мы знаем задействованные одновременные уравнения, мы сможем решить система с использованием обратных матриц на компьютере.
Уравнения цепи с использованием закона Кирхгофа:
−26 = 72 I 1 − 17 I 3 − 35 I 4
34 = 122 I 2 − 35 I 3 − 87 I 7
−4 = 233 I 7 − 87 I 2 − 34 I 3 − 72 I 6
−13 = 149 I 3 − 17 I 1 − 35 I 2 − 28 I 5 − 35 I 6 − 34 I 7
−27 = 105 I 5 − 28 I 3 − 43 I 4 − 34 I 6
24 = 141 I 6 − 35 I 3 − 34 I 5 − 72 I 7
5 = 105 I 4 − 35 I 1 − 43 I 5
Каковы отдельные токи, I 1 по I 7 ?
Пользователи телефонов
ПРИМЕЧАНИЕ: Если вы пользуетесь телефоном, вы можете прокручивать любые широкие матрицы на этой странице вправо или влево, чтобы увидеть выражение целиком.
Ответ
Решение токов в цепи (система 7 × 7)
Мы решаем это с помощью компьютера следующим образом. Просто записываем слева матрицу коэффициентов, находим обратную (возводим матрицу в степень -1) и умножаем результат на постоянную матрицу.
Для этого можно использовать Matlab, Mathcad или аналогичные математические программы. Wolfram|Alpha — бесплатная альтернатива.
`Х=[(72,0,-17,-35,0,0,0), (0,122,-35,0,0,0,-87), (0,-87,-34,0,0,-72,233), (-17,-35,149-3),(-0,22243),(-0,27848),(0,21115),(0,20914)]`
Ответ означает, что токи в этой цепи равны (до 4 знаков после запятой):
`I_1 = -0,4680\ «А»`
`I_2= 0,4293\ «А»`
`I_3= 0,0005\ «А»`
`I_4= -0,2224\ «А»`
`I_5= -0,2785\ «А»`
`I_6= 0,2112 \ «А»`
`I_7= 0,2091 \ «А»`
Упражнение 3
Хотим 10 литров бензина содержащий 2% добавки. У нас есть следующие барабаны:
Бензин без присадки
Бензин с 5% присадкой
Бензин с 6% присадкой
Нам нужно использовать в 4 раза больше чистого бензин как бензин с 5% присадкой. Сколько нужно каждого?
Всегда проверяйте свои решения!
Ответ
Пусть
x = нет. литров чистого бензина
y = нет. литров 5% бензина
z = нет. литров 6% бензина
Из первого предложения имеем:
`х + у + z = 10`
Второе предложение дает нам:
Мы не получаем присадки из чистого бензина.
Получаем (5% от и ) л присадки из второго барабана.
Получаем (6% от з ) л присадки из третьего барабана.
НУЖНО 2% на 10 л добавки = 0,2 л = 200 мл.
Так
`0,05y + 0,06z = 0,2`
Умножая на 100, мы получаем:
`5y + 6z = 20`
Второе последнее предложение дает нам:
`х = 4у`
Мы можем записать это как:
`х — 4у = 0`
Это дает нам набор одновременных уравнений:
х + у + z = 10
5 у + 6 у = 20
х − 4 9009-1` `=((0. 96,-0.16,0.04),(0.24,-0.04,-0.24),(-0.2,0.2,0.2))`
Умножение обратной матрицы на C :
`( (0,96,-0,16,0,04),(0,24,-0,04,-0,24),(-0,2,0,2,0,2))((10),(20),(0))` `=((6.4),( 1.6),(2))`
Итак, у нас есть 6,4 л чистого бензина, 1,6 л 5% присадки и 2 л 6% присадки.
Правильно?
`6,4 + 1,6 + 2 = 10` л [Проверка в порядке]
`5% xx 1,6 + 6% xx 2 = 200` мл [Проверка в порядке]
`4 × 1,6 = 6,4` [Проверка в порядке]
Упражнение 4
Эта статическая задача была представлена ранее в Разделе 3: Матрицы.
Из диаграммы получаем следующие уравнения (эти уравнения взяты из теории статики):
Вертикальные силы:
F 1 sin 69,3° − F 2 sin 71,1° − F 3 sin 56,6° + 926 = 0
Горизонтальные силы:
Ф 1 cos 69,3° − F 2 cos 71,1° + F 3 cos 56,6° = 0
Моменты:
7,80 F 1 sin 69,3° − 1,50 F 2 sin 71,1° − 5,20 F 3 sin 56,6° = 0
Используя матрицы, найти силы F 1 , F 2 и F 3 .