Маткад умножение элементов матрицы. Операции с матрицами
Рассмотрим еще несколько исключительно важных действий линейной алгебры, связанных с понятием определителя матрицы. Несмотря на то, что некоторые из них реализованы в Mathcad также в виде операторов, они требуют (при проведении расчетов по численным алгоритмам) несравненно больше внимания, нежели операторы упомянутые в двух предыдущих разделах.
Определитель (Determinant ) матрицы обозначается стандартным математическим символом. Чтобы ввести оператор нахождения определителя матрицы, можно нажать кнопку Determinant (Определитель) на панели инструментов Matrix (Матрица) (листинг 7.14) или набрать на клавиатуре | (нажав клавиши SHIFT + \ ). В результате любого из этих действий появляется местозаполнитель, в который следует поместить матрицу. Чтобы вычислить определитель уже введенной матрицы:
- Переместите курсор в документе таким образом, чтобы поместить матрицу между линиями ввода (напоминаем, что линии ввода - это вертикальный и горизонтальный отрезки синего цвета, образующие уголок, указывающий на текущую область редактирования).
- Введите оператор нахождения определителя матрицы.
- Введите знак равенства (либо символьного вывода), чтобы вычислить определитель (численно или аналитически соответственно, как это показано в листинге 7.14).
Внимание!
Не путайте операторы вычисления определителя квадратной матрицы и длины вектора. В Matncad 12 введен принудительный контроль действий пользователя при вводе этих операторов во избежание путаницы (т. к. один и тот же символ используется для этих двух операций). При попытке вычислить определитель матрицы с помощью оператора |А|
, введенного с панели Calculator
(Калькулятор), а не Matrix
(Матрица), будет выдано сообщение об ошибке, а результат вычисления детерминанта появится только после того, как пользователь вызовет контекстное меню и подтвердит в нем, что он собирается вычислить именно определитель матрицы. То же самое касается и длины вектора, если попытаться ввести его не с панели Calculator
(Калькулятор), а с панели Matrix
(Матрица)
.
Массив - имеющая уникальное имя совокупность конечного числа числовых или символьных элементов, упорядоченных некоторым образом и имеющих определенные адреса. В пакете MathCAD используются массивы двух наиболее распространенных типов: одномерные (векторы), двумерные (матрицы).
Все встроенные средства пакета MathCAD, предназначенные для работы с матрицами собраны на Панели векторов и матриц (vector and matrix toolbar). Задавать матрицу можно либо вставив с панели матриц шаблон нужного размера и заполнив его числами, либо присваивая каждому элементу матрицы его значение (обычно это производится в цикле). Если элемент массива (матрицы) имеет несколько индексов (порядковый номер элемента), то они указываются через запятую. Для элементов матрицы первым идёт номер строки, вторым - номер столбца. Индексация массивов по умолчанию начинается с нуля, однако есть возможность управлять этим процессом. Номер первого элемента хранится в предопределённой переменной ORIGIN, значение которой можно менять. Встретив присвоение ORIGIN:=k, MathCAD будет все встречающиеся ниже массивы нумеровать, начиная с номера k. Любое обращение к элементу с меньшим номером будет вызывать сообщение об ошибке.
Для ввода матрицы (или вектора) требуется проделать следующую последовательность операций:
Задаём имя матрицы и вводим знак присваивания. Например, для задания матрицы А пишем А:. Получаем А:=;
С помощью команды Insert -> Matrix…, или комбинации клавиш Ctrl + M, или щелчком на кнопке панели Матрица, заполнив массив пустых полей для не слишком больших массивов.
Также векторы и матрицы можно задавать с использованием дискретного аргумента, когда имеется некоторая явная зависимость для вычисления элементов через их индексы.
Формирование вектора осуществляется аналогично.
Следует отметить второй вариант формирования матриц и векторов без обращения к окну работы с матрицами, а через переменные с индексами, например, Ai,j, Bi. Индекс к имени переменной припечатывается нажатием либо на кнопку Xn на панели математических инструментов, либо на клавишу [(открывающаяся квадратная скобка).
Операции с матрицами и векторами осуществляются по тем же правилам, что и для арифметических выражений.
ORIGIN:=1 определяем номер первого элемента
формируем матрицу А
формируем матрицу В
решаем матричное уравнение АХ=В
вывод решения
проверка
|A|=-2 находим определитель
обратная матрица
ORIGIN:=0 определяем номер первого элемента
А0,0:=1 А0,1=1 формируем матрицу А
А0,0:=5 А0,1=3
В0:=138 В1=540 формируем матрицу В
X:=lsole(A,B) решаем матричное уравнение АХ=В
Х0=63 Х1=75 вывод решения
А0,0Х0+А0,1Х1-В0=0 проверка
А1,0Х0+А1,1Х1-В1=0.
Вычисления с векторами и матрицами.
Векторные матричные операторы.
Для работы с векторами и матрицами система MathCAD содержит ряд операторов и функций. Введём следующие обозначения: для векторов - V, для матриц - M, и для скалярных величин - Z.
Оператор |
Назначение оператора |
|
Сложение двух векторов V1 и V2 |
||
Вычитание двух векторов V1и V2 |
||
Смена знака у элементов вектора V |
||
Смена знака у элементов матрицы M |
||
Вычитание из вектора V скаляра Z |
||
Умножение вектора V на скаляр Z |
||
Умножение двух векторов V1 и V2 |
||
Умножение матрицы M на вектор V |
||
Умножение двух матриц M1 и M2 |
||
Деление вектора V на скаляр Z |
||
Деление матрицы M на скаляр Z |
||
Обращение матрицы M |
||
Возведение матрицы M в степень n |
||
Вычисление квадратного корня из мV |
||
Вычисление определителя матрицы M |
||
Транспонирование вектора V |
||
Транспонирование матрицы M |
||
Кросс - умножение двух векторов V1 и V2 |
||
Получение комплексно - сопряженного вектора |
||
Получение комплексно - сопряженной матрицы |
||
Вычисление суммы элементов вектора V |
||
Векторизация вектора V |
||
Векторизация матрицы M |
||
Выделение n-го столбца матрицы M |
||
Выделение n-го элемента вектора V |
||
Выделение элемента (m, n) матрицы M |
фильтр excel строка матрица
Под понятием “векторизация” подразумевается одновременное проведение математических операций в их скалярном значении над всеми элементами вектора или матрицы, помеченными векторизации. Это можно понимать и как возможность параллельных вычислений.
Если А и В - векторы, то А*В даёт скалярное произведение этих векторов. Но то же произведение под знаком векторизации создает новый вектор, каждый j-й элемент которого есть произведение j -х элементов векторов А и В. Векторизация позволяет использовать скалярные операторы и функции с массивами.
Векторные и матричные функции.
Существует также ряд встроенных векторных и матричных функций:
возвращает длину вектора |
|
возвращает индекс последнего элемента |
|
возвращает максимальный по значению элемент |
|
возвращает минимальный по значению элемент |
|
возвращает вектор действительных частей вектора с комплексными элементами |
|
возвращает вектор мнимых частей вектора с комплексными элементами |
|
полностью асимметричный тензор размерности три. i, j, k должны быть целыми числами от 0 до 2 (или между >ORIGIN и ORIGIN+2, если ORIGIN?0). Результат равен 0, если любые два аргумента равны, 1 - если три аргумента являются чётной перестановкой (0, 1, 2), и минус 1, если три аргумента являются перестановкой (0, 1, 2), кратной 2 и некратной 4 |
Для работы с матрицами также существует ряд встроенных функций. Они перечислены ниже:
Augment (M1, M2) |
Объединяет в одну матрицы М1 и М2, имеющие одинаковое число строк (объединение идёт “бок о бок”) |
Создаёт единичную квадратную матрицу размером n*n |
|
Объединяет в одну матрицы М1 и М2, имеющие одинаковое число столбцов, располагая М1 над М2 |
|
submatrix(A,ir,jr,ic,jc) |
Возвращает субматрицу, состоящую из всех элементов, содержащихся в строках от ir по jr и столбцов с ic по jc (irJjr и icJjc) |
Создаёт диагональную матрицу, элемент главной диагонали которой - вектор V |
|
Матрицу, в которой (i,j)-й элемент содержит f(i,j), где i= 0, 1, …m и j=0, 1, …n |
|
Возвращает матрицу действительных частей матрицы М с комплексными элементами |
|
Возвращает матрицу мнимых частей матрицы М с комплексными элементами |
Функции, возвращающие специальные характеристики матриц.
Специальные характеристики матриц возвращаются следующими функциями:
возвращает число столбцов матрицы М |
|
возвращает число строк матрицы М |
|
возвращает ранг матрицы М |
|
возвращает след (сумму диагональных элементов) квадратной матрицы М |
|
возвращает среднее значение элементов массива М |
|
возвращает медиану элементов массива М |
|
возвращает число обусловленности матрицы, вычисленное в норме L1 |
|
возвращает число обусловленности матрицы, вычисленное в норме L2 |
|
Возвращает число обусловленности матрицы, вычисленное в норме евклидова пространства |
|
Возвращает число обусловленности матрицы, основанное на равномерной норме |
|
Возвращает L1, норму матрицы М |
|
Возвращает L2, норму матрицы М |
|
Возвращает евклидову норму матрицы М |
|
Возвращает неопределённую норму матрицы М |
Дополнительные матричные функции.
В профессиональные версии MathCAD включён ряд дополнительных матричных функций:
возвращает вектор, содержащий собственные значения матрицы М |
|
для указанной матрицы М и заданного собственного значения Z возвращает принадлежащий этому собственному значению вектор |
|
возвращает матрицу, столбцами которой являются собственные векторы матрицы М (порядок расположения собственных векторов соответствует порядку собственных значений, возвращаемых функцией eigenvals) |
|
возвращает вектор обобщенных собственных значений v, соответствующий решению уравнения M ? x = vi - N - x (матрицы М и N должны быть вещественными) |
|
возвращает матрицу, столбцы которой содержат нормированные обобщенные собственные векторы |
|
выполняет треугольное разложение матрицы М: P ? M = L ? U, L и U - соответственно нижняя и верхняя треугольные матрицы. Все четыре матрицы квадратные, одного порядка |
|
дает разложение матрицы A, A=Q ? R, где Q - ортогональная матрица и > - верхняя треугольная матрица |
|
дает сингулярное разложение матрицы А размером n?m: A=U ? S ·VT где и - ортогональные матрицы размером m·m и n·n соответственно, S - диагональная матрица, на диагонали которой расположены сингулярные числа матрицы А |
|
возвращает вектор, содержащий сингулярные числа матрицы А размером m·n, где mі n |
|
возвращает матрицу левую обратную к матрице А. L·A=E, где E - единичная матрица размером n·n, L - прямоугольная матрица размером n·m, A - прямоугольная матрица размером m·n |
Функции сортировки для векторов и матриц.
Начиная с третьей версии, в системе MathCAD появились некоторые дополнительные функции сортировки - перестановки элементов векторов и матриц.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное Государственное бюджетное образовательное учреждение высшего профессионального образования
«Поволжский государственный технологический университет»
(ФГБОУ ВПО «ПГТУ»)
Отчет по лабораторной работе №3
по дисциплине
«Теория систем и системный анализ»
25 вариант
Выполнила: студентка
1-го курса ЭФ группы
ПИб-11 Уртьева И.Ю.
Проверила:
Пайзерова Ф. А.
Йошкар-Ола
2012 г.
ЦЕЛЬ ЛАБОРАТОРНОЙ РАБОТЫ.
Научиться работать с матрицами в MathCAD .
Лабораторное задание.
3.1. Ввести заданные в столбце 1 матрицы (п.4.3.2).
3.2. Транспонировать заданные матрицы (матрицы из столбцов 1 и 2) (п.9.1.1)
3.3. Найти линейную комбинацию матриц (столбец 1) (п.9.1.2, 9.1.3)
3.4. Найти произведение каждой матрицы на транспонированную и транспонированной матрицы на саму матрицу (матрицы из столбцов 1 и 2). (п.9.1.2)
3.6. Решить систему линейных уравнений по вашему варианту (см. лабораторную работу 7 (решение систем уравнений, первый столбец таблицы)) матричным способом, и проверить, используя матрицы, правильность решения (см. приложение к этой лабораторной работе). Рассчитать модуль вектора правых частей и скалярное произведение этого вектора на самого себя.
Задания:
1)3*А-2*В, А= , В= .
2) f (x )=2* -3* +5, A =
3)
3.1. Ввести заданные в столбце 1 матрицы.
3*А-2*В, А= , В=
Для вычисления этого примера нужно на панели инструментов вызвать калькулятор, а так же нужно вызвать Панель инструментов «Вектор и матрица» и выбрать нужные значения:
Для начала нужно присвоить значение А и В: «А:=», «В:=» , а для того, чтобы задать матрицу, нужно кликнуть мышкой по
И после этого появится окошко, в котором нужно ввести количество строк и столбцов
После нажимаем ОК и появится
в которую вбиваем значения и получим результат:
3.2. ТРАНСПОНИРОВАТЬ ЗАДАННЫЕ МАТРИЦЫ
Чтобы транспонировать матрицы, необходимо вызвать на панели инструментов «Матрица» и выбрать.
И результат получится:
3.3. НАЙТИ ЛИНЕЙНУЮ КОМБИНАЦИЮ МАТРИЦ
Чтобы найти линейную комбинацию, нужно аналогичным же образом вбивать значения, представленные выше в пунктах и в результате получим:
3.4. НАЙТИ ПРОИЗВЕДЕНИЕ КАЖДОЙ МАТРИЦЫ НА ТРАНСПОНИРОВАННУЮ И ТРАНСПОНИРОВАННОЙ МАТРИЦЫ НА САМУ МАТРИЦУ.
Чтобы найти линейную комбинацию, нужно аналогичным образом вбивать значения, представленные выше в пунктах и в результате получится:
А для того, чтобы найти значение функции f (x )=2* -3* +5
нужно присвоить А «А:=» значения , затем присвоить х значение А «х:=А» .
А функцию f (x )=2* -3* +5
нужно записать в виде:
И в результате получится:
Чтобы найти значение определителя, нужно кликнуть мышкой по символу
и на экране выходит:
После этого нам нужно кликнуть мышкой по символу:
И в экране появится:
Также вбиваем значения и в результате получим:
3.6. РЕШИТЬ СИСТЕМУ ЛИНЕЙНЫХ УРАВНЕНИЙ ПО ВАШЕМУ ВАРИАНТУ (СМ. ЛАБОРАТОРНУЮ РАБОТУ 7 (РЕШЕНИЕ СИСТЕМ УРАВНЕНИЙ, ПЕРВЫЙ СТОЛБЕЦ ТАБЛИЦЫ)) МАТРИЧНЫМ СПОСОБОМ, И ПРОВЕРИТЬ, ИСПОЛЬЗУЯ МАТРИЦЫ, ПРАВИЛЬНОСТЬ РЕШЕНИЯ (СМ. ПРИЛОЖЕНИЕ К ЭТОЙ ЛАБОРАТОРНОЙ РАБОТЕ). РАССЧИТАТЬ МОДУЛЬ ВЕКТОРА ПРАВЫХ ЧАСТЕЙ И СКАЛЯРНОЕ ПРОИЗВЕДЕНИЕ ЭТОГО ВЕКТОРА НА САМОГО СЕБЯ.
Эту систему можно решить тремя способами:
- Матричная форма записи.
- Методом Крамера.
- Методом Гаусса.
Матричная форма записи
В данной системе уравнений даны три неизвестные и стоящие перед ними коэффициенты. И эти коэффициенты нужно записать в виде:
А значения этих трех неизвестных:
Для того, чтобы найти значения трех неизвестных, нужно воспользоваться формулой: x :=
Чтобы достовериться правильно ли значения подсчитали, воспользуемся формулой:
Так же чтобы удостовериться, что нашли те же значения правильно, сделаем проверку, подставляя значения в формулу:
x := Isolve (A , B )
и программа должна вывести одно и тоже значение
Результат работы программы:
МЕТОД КРАМЕРА
Чтобы решить систему уравнений методом Крамера, нужно вычислить их определители, заменяя столбцы:
После этого нужно найти отношение каждых этих определителей на определитель начальной матрицы. Этими действиями мы найдем значение неизвестных системы уравнений.
И в результате получим:
МЕТОД ГАУССА
Для того, чтобы решить систему методом Гаусса, нужно сперва ввести матрицу системы и матрицу - столбец правых частей.
После этого нужно сформировать расширенную матрицу системы.
Для того, чтобы сформировать расширенную матрицу системы, нужно использовать функцию augment (A , b ), которая формирует матрицу, добавляя к столбцам матрицы системы A справа столбец правых частей b (в приведенном документе расширенной матрице системы присвоено имя Ar ). Функция rref (Ar ) выполняет элементарные операции со строками расширенной матрицы системы Ar -приводит ее к ступенчатому виду с единичной матрицей в первых столбцах, т.е. выполняет прямой и обратный ходы гауссова исключения, Ag имя результата (ступенчатой формы матрицы Ar ). Функция submatrix (Ag ,0,2,3,3), выделяя последний столбец матрицы Ag , формирует столбец решения системы. Проверка (вычисление A позволяет убедиться в правильности решения. Результат работы в программе:
ВЫВОД.
Выполняя данную работу, мы научились вычислять матрицы, изучили панель операций с матрицами и векторами, научились вводить матрицы с разными размерами, вычисляли транспонированную матрицу. Так же научились вычислять определители матриц и проверили правильность решения матриц.
Кроме того, мы научились решать разными методами системы линейных алгебраических уравнений. Мы решили их с помощью матричной формы записи, методом Крамера и Гаусса, которые проверили на правильность решения.
Практическая работа № 3
В задачах линейной алгебры практически всегда возникает необходимость выполнять различные операции с матрицами.
Предварительно матрицу нужно определить и ввести в рабочий документ MathCAD.
Для того чтобы определить матрицу, введите с клавиатуры имя матрицы и знак присваивания (
Большинство вычислений с матрицами, как и другие вычисления в MathCAD, можно выполнять тремя способами – с помощью панелей инструментов, выбором операции в меню или обращением к соответствующей функции.
За кнопками на панели инструментов Матрицы закреплены следующие функции:
· определение размеров матрицы
· X n – ввод нижнего индекса
· X -1 – вычисление обратной матрицы
· |X| - вычисление определителя матрицы: ; вычисление длины вектора
· поэлементные операции с матрицами: если , то
· M <> – определение столбца матрицы: M < j> - j-й столбец матрицы
· M T – транспонирование матрицы:
· - вычисление скалярного произведения векторов:
· - вычисление векторного произведения двух векторов:
· - вычисление суммы компонент вектора: ;
· - определение диапазона изменения переменной
· визуализация цифровой информации, сохраненной в матрице.
Для того, чтобы выполнить какую-либо операцию с помощью панели инструментов, нужно выделить матрицу и щелкнуть в панели по кнопке операции либо щелкнуть по кнопке в панели и ввести в помеченной позиции имя матрицы.
Функции, предназначенные для решения задач линейной алгебры, собраны в разделе Векторы и матрицы (Vector and Matrix) ; их можно разделить на три группы: функции определения матриц и операции с блоками матриц, функции вычисления различных числовых характеристик матриц и функции, реализующие численные алгоритмы решения задач линейной алгебры.
Функции определения матриц и операции с блоками матриц:
· matrix(m, n, f) – создает и заполняет матрицу размерности m x n, элемент которой, расположенный в i-ой строке, j-ом столбце, равен значению f(i,j) функции f(x,y);
· diag(v) – создает диагональную матрицу, элементы главной диагонали хранятся в векторе v;
· identity(n) – создает единичную матрицу порядка n;
· augment(A, B) – формирует матрицу, в первых столбцах которой содержится матрица A, а в последних – матрица B (матрицы A и B должны иметь одинаковое число строк);
· stack(A, B) – формирует матрицу, в первых строках которой содержится матрица A, а в последних – матрица B (матрицы A и B должны иметь одинаковое число столбцов);
· submatrix(A, ir, jr, ic, jc) – формирует матрицу, которая является блоком матрицы A, расположенным в строках с ir по jr и в столбцах с ic по jc (ir<=jr, ic<=jc).
Номер первой строки (столбца) матрицы или первой компоненты вектора хранится в MathCAD в переменной ORIGIN. По умолчанию в MathCAD координаты векторов, столбцы и строки матрицы нумеруются, начиная с 0 (ORIGIN:=0). Поскольку в математической записи чаще всего используется нумерация с 1, перед началом работы с матрицами будем определять значение переменной ORIGIN равным 1, т.е. будем, прежде всего, выполнять команду ORIGIN:=1.
Функции вычисления различных числовых характеристик матриц:
· last(v) – вычисление номера последней компоненты вектора V;
· length(v) – вычисление количества компонент вектора V;
· rows(A) – вычисление числа строк в матрице A;
· cols(A) – вычисление числа столбцов в матрице A;
· max(A) – вычисление наибольшего элемента в матрице A;
· min(A) – вычисление наименьшего элемента в матрице A;
· tr(A) – вычисление следа квадратной матрицы A (след матрицы равен сумме ее диагональных элементов);
· rank(A) – вычисление ранга матрицы A;
· norm1(A), norm2(a), norme(A), normi(A) – вычисление норм квадратной матрицы A.
Функции, реализующие численные алгоритмы решения задач линейной алгебры:
· rref(A) – приведение матрицы к ступенчатому виду с единичным базисным минором (выполняются элементарные операции со стоками матрицы);
· eigenvals(A) – вычисление собственных значений квадратной матрицы A;
· eigenvecs(A) – вычисление собственных векторов квадратной матрицы A; значением функции является матрица, столбцы которой есть собственные векторы матрицы A, причем порядок следования векторов отвечает порядку следования собственных значений, вычисленных функцией eigenvals(A);
· eigenvec(A, l) – вычисление собственного вектора матрицы A, отвечающего собственному значению l;
· lsolve(A, b) – решение системы линейных алгебраических уравнений Ax=b.
Вычисления с использованием описанных функций выполняются стандартным для MathCAD способом. Чтобы обратиться к функции, введите с клавиатуры имя функции, перечислите в скобках ее аргументы, введите знак равенства и щелкните по свободному месту в рабочем документе вне выделяющей рамки. Результат вычислений (число, вектор, матрица) будет отображен в рабочем документе справа от знака равенства.
Если предполагается использовать результаты в дальнейших вычислениях, им следует присвоить имя. Для этого введите с клавиатуры имя переменной и знак присваивания, а справа от него – имя функции со списком аргументов в круглых скобках. Если теперь ввести с клавиатуры имя переменной, знак равенства и щелкнуть по свободному месту в рабочем документе вне выделяющей рамки, то результат вычислений будет отображен справа от знака равенства.
Имя функции можно вставить из списка: щелкните по месту вставки, затем по строке Функция (Function) меню Вставка (Insert) , выберите в окне списка стрелками прокрутки нужную функцию и подтвердите выбор щелчком по кнопке OK в окне диалога.
Вычисления могут производиться в двух режимах – автоматическом и последовательном. В первом случае операция выполняется сразу после ввода команды и щелчка по рабочему документу вне выделяющей рамки, во втором – после команды Вычислить (Calculate) . Режим вычислений устанавливается в меню Математика (Math) . По умолчанию включен режим автоматических вычислений.
MathCAD читает и выполняет введенные выражения слева направо и сверху вниз, поэтому следите, чтобы выражение для вычисления располагалось правее и ниже определенных для него значений переменных.