С помощью калькулятора матриц вы сможете выполнять различные преобразования матриц, решать СЛАУ, а также находить некоторые характеристики, как, например, определитель, след и ранг. Подробнее о функционале и использовании калькулятора смотрите после блока с самим калькулятором.

Транспонирование — операция, при которой строки и столбцы матрицы меняются местами: a T ij = aji

Выполнено действий: 400687

Как пользоваться калькулятором матриц

  1. Выберите матрицу (или матрицы) с помощью переключателей ( )
  2. Укажите размер с помощью выпадающих списков под матрицей ( × )
  3. Заполните элементы (нулевые элементы можно не заполнять.)
  4. Выберите в выпадающем списке требуемую функцию и, если требуется, введите дополнительные параметры.
  5. Нажмите кнопку .
  6. Если вывод чисел не устраивает, просто поменяйте его — доступны три варианта представления: правильные дроби (2

Ввод данных и функционал

  • В качестве элементов используются обыкновенные правильные дроби ( 1/2 , 29/7 , -1/125 ), десятичные дроби ( 12 , -0.01 , 3.14 ), а также числа в экспоненциальной форме ( 2.5e3 , 1e-2 ).
  • Длина вводимых чисел ничем не ограничена, вводите хоть 1000 цифр, правда, возможно, придётся подождать, пока будут идти вычисления!
  • Используйте для работы одну или две матрицы (чтобы выполнять операции с двумя матрицами, передвиньте переключатель второй матрицы).
  • Вставляйте результат в A или B с помощью кнопок «Вставить в A» и «Вставить в B».
  • Перетаскивайте (drag-and-drop) матрицы из результата в A или B.
  • Используйте стрелки ( ← , ↑ , → , ↓ ) для перемещения по элементам

Что умеет наш калькулятор матриц?

Вычисление выражений с матрицами

Вы можете вычислять различные арифметические выражения с матрицами, а также с результатами некоторых преобразований этих матриц.

Из чего могут состоять выражения?

  • Целые и дробные числа
  • Матрицы A, B
  • Знаки арифметических действий: + — * /
  • Круглые скобки для изменения приоритета операций: ( )
  • Транспонирование: ^T
  • Возведение в целую степень: ^

Примеры корректных выражений

  • Cложение двух матриц: A+B , (A)+(B) , ((A) + B)
  • Возведение линейной комбинации матриц в степень: (3A — 0.5B)^5
  • Произведение транспонированной матрицы на исходную: A^TA
  • Обратная матрица в квадрате для B: B^-2

Что такое матрица?

Матрицей размера n×m называется прямоугольная таблица специального вида, состоящая из n строк и m столбцов, заполненная числами. Матрицы обозначаются заглавными латинскими буквами. При необходимости размер записывается следующим образом: An×m .

Примеры матриц

Элементы матрицы

Элементы A обозначаются aij , где i — номер строки, в которой находится элемент, j — номер столбца.

Некоторые теоретические сведения

Транспонирование — операция, при которой строки и столбцы матрицы меняются местами: a T ij = aji

Главная диагональ квадратной матрицы — диагональ, которая проходит через верхний левый и нижний правый углы. Элементы главной диагонали — aii

Единичная матрица En×n — квадратная матрица из n столбцов и n строк с единицами на главной диагонали и нулями вне её.

Ранг — это максимальное количество линейно независимых строк (столбцов) этой матрицы. Обозначение: rank(A)

След — это сумма элементов, находящихся на её главной диагонали. Обозначение: tr(A) или track(A)

Умножение матрицы на число — матрица такой же размерности, что и исходная, каждый элемент которой является произведением соответствующего элемента исходной матрицы на заданное число.

Возведение в степень — умножение заданной матрицы саму на себя n-ое количество раз, где n – степень, в которую необходимо возвести исходную матрицу. Обозначение: A n

Обратная матрица A −1 — матрица, произведение которой на исходную матрицу A равно единичной матрице: A -1 ×A = A×A -1 = E

Треугольная матрица — квадратная матрица, у которой выше (верхнетреугольная матрица) или ниже (нижнетреугольная матрица) главной диагонали находятся нули.

LU-разложение — представление матрицы в виде произведения двух матриц L и U, где L — нижнетреугольная матрица с еденичной диагональю, а U — верхнетреугольная матрица. A = L·U

Сложение матриц An×m и Bn×m — матрица Cn×m, получаемая попарной суммой соответствующих элементов матриц A и B, то есть каждый элемент матрицы C равен: сij=aij+bij

Разность матриц An×m и Bn×m — матрица Cn×m, получаемая попарной разностью соответствующих элементов матриц A и B, то есть каждый элемент матрицы C равен: сij=aij-bij

Умножение матриц An×k и Bk×m — матрица Cn×m, у которой элемент (cij) равен сумме произведений элементов i-той строки матрицы A на соответствующие элементы j-того столбца матрицы B: cij = ai1·b1j + ai2·b2j + . + aik·bkj

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

К матричным действиям с матрицами относятся такие операции, которые используются в матричном исчислении в математике. Базовые действия с матрицами (векторами): сложение, вычитание, транспонирование, умножение матрицы на число, умножение матрицы на матрицу, возведение квадратной матрицы в степень – осуществляются в MATLAB с помощью обычных знаков арифметических операций. Условия, при которых эти операции возможны, таковы:

при сложении или вычитании матриц они должны иметь одинаковые размеры;

при умножении матриц число столбцов первого множителя должно совпадать с числом строк второго множителя.

Невыполнение этих условий приводит к появлению сообщения об ошибке.

Приведем примеры базовых действий с матрицами

>> A=[0 -2 4;3 2 1];D=[-5 4 2;1 3 1];B=[-1 -2 -3;1 3 1;0 2 2];

Пример сложения и вычитания

Пример умножения на число

Пример транспонирования матрицы, при котором ее строки становятся столбцами, а столбцы – строками, осуществляется с помощью оператора (апостроф):

В математике транспонированная матрица А обозначается А Т .

Знак закреплен за матричным умножением векторов и матриц в смысле линейной алгебры. При этом число столбцов первой матрицы обязано равняться числу строк второй матрицы. Произведение прямоугольной матрицы An×k (таблицы чисел, расположенных в n строках и в k столбцах) на матрицу Bk×m определяется следующим образом: для того, чтобы получить элемент cij матрицы — произведения C = AB, следует элементы i — й строки матрицы А умножить на соответствующие элементы j — го столбца матрицы В и результаты сложить, т. е.

Матрица С = Сn×m занимает n строк и m столбцов.

Пример умножения матрицы на матрицу

Умножение двух векторов определено в математике только для векторов одинакового размера и лишь тогда, когда один из векторов сомножителей является строкой, а второй – столбцом. Иначе говоря, если векторы Х и У являются строками, то математический смысл имеют только две формы умножения этих векторов: U = X*Y’ и V = X’*Y. Причем в первом случае результатом будет скалярное произведение векторов Х и У (число), а во втором – внешнее произведение векторов Х и Y (квадратная матрица).

Скалярное произведение двух векторов вычисляет команда dot:

Векторное произведение. Для трехкомпонентных векторов в MATLAB существует команда cross, которая вычисляет векторное произведение двух векторов.

Командаdet(B) вычисляет определитель│B│ квадратной матрицы B.

Команда обращения матрицы inv(B) вычисляет матрицу В -1 , обратную заданной матрице B. Исходная матрица B должна быть квадратной, и ее определитель не должен быть равен нулю.

-0.6667 0.3333 -1.1667

0.3333 0.3333 0.3333

-0.3333 -0.3333 0.1667

Матрица, обратная матрице В, обозначается В -1 и удовлетворяет соотношениям (В -1 ) -1 = B, ВВ -1 = В -1 В = E, где E – единичная матрица того же порядка n, что и B.

Проверим правильность выполнения операции обращения матрицы B:

-1.0000 -2.0000 -3.0000

1.0000 3.0000 1.0000

В результате получили матрицу B, т. е. соотношение (В -1 ) -1 = B выполняется.

-0.0000 1.0000 -0.0000

Соотношения ВВ -1 = В -1 В = E также выполняются.

Примеры возведения квадратной матрицы в степень

-0.6667 0.3333 -1.1667

0.3333 0.3333 0.3333

-0.3333 -0.3333 0.1667

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

Если требуется извлечь квадратный корень из матрицы, то лучше применить матричную функцию sqrtm. Матричные экспонента и логарифм вычисляются при помощи матричных функций expm и logm.

В MATLABвводятся две новых операции (они не относятся к операциям линейной алгебры) деления матриц слева направо и справа налево. Первая операция записывается при помощи знака , а вторая – при помощи знака , которые помещаются между именами двух матриц – делимого и делителя. Операция B/A эквивалентна операции B*inv(A) и ее удобно использовать для решения матричного уравнения

а AB эквивалентна inv(A)*B и является решением матричного уравнения

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

Как правило, если f является одной из встроенных математических функций системы MATLAB или является заданной пользователем векторизованной функцией, то выражение f(A) представляет собой матрицу, полученную поэлементным вычислением f для A.

0.8415 0.9093 0.1411

Кроме поэлементного преобразования матриц с помощью математических функций, в MATLAB можно выполнять поэлементные преобразования матриц с помощью арифметических операций. К таким операциям относятся операции поэлементного умножения с помощью оператора (без пробела между точкой и звездочкой), поэлементного деления , обратного поэлементного деления , поэлементного возведение в степень . Операции поэлементного преобразования матриц выполняются только над матрицами одинакового размера и типа. В результате получается матрица такого же размера и типа. Проиллюстрируем поэлементные преобразования матриц на матрицах A и B:

>> A=[1 2 3 4 5;-2 3 1 4 0], B=[-1 3 5 -2 1;1 8 -3 -1 2]

Результатом поэлементного умножения матриц A и B является матрица, каждый элемент которой представляет собой произведение соответствующих элементов матриц A и B.

-1.0000 0.6667 0.6000 -2.0000 5.0000

-2.0000 0.3750 -0.3333 -4.0000 0

Результат – матрица, элементы которой являются частным от деления соответствующих элементов матриц A и B.

Обратное поэлементное деление

Warning: Divide by zero.

-1.0000 1.5000 1.6667 -0.5000 0.2000

-0.5000 2.6667 -3.0000 -0.2500 Inf

Результатом является матрица, элементы которой являются частным от деления соответствующих элементов матриц B и A.

Поэлементное возведение в степень

0.0010 0.0080 0.2430 0.0001 0.0050

-0.0020 6.5610 0.0010 0.0003 0

При поэлементном возведении в степень каждый элемент матрицы A возводится в степень, равную соответствующему элементу матрицы B.

Обратим внимание на результат, полученный при выполнении операции A.^B. Система MATLAB выделила общий множитель 1.0e+003 * для всех элементов результирующей матрицы.

Оригинальной в MATLAB является операция прибавления к матрице числа. Она записывается таким образом: A+x или x+A (где A – матрица, а x – число). Такая операция также не относится к операциям линейной алгебры. Например:

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

В MATLAB поэлементные операции над векторами аналогичны поэлементным операциям над матрицами.

Таким образом, система MATLAB является совершенным инструментом для работы с массивами. MATLAB позволяет выполнять мощные групповые вычисления над массивами, используя обычные математические операторы и функции. В традиционных языках программирования математические действия производятся только над скалярами. Матричные команды MATLAB чрезвычайно компактны по записи, но выполняют гигантский объем работы. Более того, матричные вычисления в MATLAB выполняются значительно быстрее, чем скалярные.

Транспонирование матрицы, умножение, возведение в степень

Как мы выяснили в предыдущей статье, с матрицами можно выполнять различные простые операции, такие как сложение, вычитание, умножение и т.д. Они называются простыми, поскольку имеют аналогии с операциями над обычными числами.

Но существуют и такие операции как транспонирование матрицы, произведение двух матриц и возведение матрицы в степень. Они уже имеют свой уникальный алгоритм действий, который мы сейчас разберем.

Итак, приступим к практике.

1. Транспонирование матрицы

Простым языком – это переворачивание матрицы, то есть первая строка превращается в первый столбец, вторая строка превращается во второй столбец, третья строка превращается в третий столбец и так далее.

Пусть дана матрица размером 4×3:

2. Произведение матриц

Рассмотрим такое произведение матриц:

ВАЖНО! Матрицы должны быть согласованными, то есть число столбцов в первой матрице А3х 3 должно совпадать с числом строк во второй матрице B 3 х2. Если этого не происходит, значит провести умножение матриц невозможно.

2.1. Первым делом нам необходимо выяснить размер матрицы C. Для этого мы берем количество строк А3х 3 и количество столбцов B 3 х2 и получаем, что матрица будет состоять из 3 строк на 2 столбцов.

2.2. Далее необходимо вычислить каждый элемент матрицы C. Для этого мы обращаем внимание на индекс каждого элемента. Первый индекс числа c 1 1 отвечает за номер строки в первой матрице, а второй индекс (c1 1 ) отвечает за номер столбца во второй матрице.

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

2.3. Аналогично получаем остальные элементы:

Необходимо помнить ПРАВИЛО, что A*B≠B*A. Это равенство будет выполняться только в том случае, если матрицы A и B являются перестановочными.

3. Возведение матрицы в степень

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

Теперь произведем вычисления:

Умножение происходит по алгоритму, описанному выше.

Можно заметить, что количество вычислений становится все больше и больше, поэтому советуем всегда перепроверять полученный результат.

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

Возведение матрицы в степень.

Пусть k — целое неотрицательное число. Для любой квадратной матрицы $A_$ имеем: $$ A^k=underbrace_ $$

При этом полагаем, что $A^0=E$, где $E$ — единичная матрица соответствующего порядка.

Задана матрица $ A=left(begin 1 & 2 -1 & -3 end right)$. Найти матрицы $A^2$ и $A^6$.

Согласно определению $A^2=Acdot A$, т.е. для нахождения $A^2$ нам просто нужно умножить матрицу $A$ саму на себя. Операция умножения матриц рассматривалась в первой части темы , поэтому тут просто запишем процесс решения без подробных пояснений:

$$ A^2=Acdot A=left(begin 1 & 2 -1 & -3 end right)cdot left(begin 1 & 2 -1 & -3 end right)= left(begin 1cdot 1+2cdot (-1) & 1cdot 2+2cdot (-3) -1cdot 1+(-3)cdot (-1) & -1cdot 2+(-3)cdot (-3) end right)= left(begin -1 & -4 2 & 7 end right). $$

Чтобы найти матрицу $A^6$ у нас есть два варианта. Вариант первый: банально продолжить домножать $A^2$ на матрицу $A$:

$$ A^6=A^2cdot Acdot Acdot Acdot A. $$

Однако можно пойти несколько более простым путём, используя свойство ассоциативности умножения матриц. Расставим скобки в выражении для $A^6$:

$$ A^6=A^2cdot Acdot Acdot Acdot A=A^2cdot (Acdot A)cdot (Acdot A)=A^2cdot A^2cdot A^2. $$

Если при решении первым способом потребовалось бы четыре операции умножения, то для второго способа — лишь две. Поэтому пойдём вторым путём:

$$ A^6=A^2cdot A^2cdot A^2=left(begin -1 & -4 2 & 7 end right)cdot left(begin -1 & -4 2 & 7 end right)cdot left(begin -1 & -4 2 & 7 end right)== left(begin -1cdot (-1)+(-4)cdot 2 & -1cdot (-4)+(-4)cdot 7 2cdot (-1)+7cdot 2 & 2cdot (-4)+7cdot 7 end right)cdot left(begin -1 & -4 2 & 7 end right)= left(begin -7 & -24 12 & 41 end right)cdot left(begin -1 & -4 2 & 7 end right)== left(begin -7cdot(-1)+(-24)cdot 2 & -7cdot (-4)+(-24)cdot 7 12cdot (-1)+41cdot 2 & 12cdot (-4)+41cdot 7 end right)= left(begin -41 & -140 70 & 239 end right). $$

Ответ : $A^2=left(begin -1 & -4 2 & 7 end right)$, $A^6=left(begin -41 & -140 70 & 239 end right)$.

Заданы матрицы $ A=left(begin 1 & 0 & -1 & 2 3 & -2 & 5 & 0 -1 & 4 & -3 & 6 end right)$, $ B=left(begin -9 & 1 & 0 2 & -1 & 4 0 & -2 & 3 1 & 5 & 0 end right)$, $ C=left(begin -5 & -20 & 13 10 & 12 & 9 3 & -15 & 8 end right)$. Найти матрицу $D=2AB-3C^T+7E$.

Вычисление матрицы $D$ начнем с нахождения результата произведения $AB$. Матрицы $A$ и $B$ можно перемножать, так как количество столбцов матрицы $A$ равно количеству строк матрицы $B$. Обозначим $F=AB$. При этом матрица $F$ будет иметь три столбца и три строки, т.е. будет квадратной (если этот вывод кажется неочевидным, посмотрите описание умножения матриц в первой части этой темы). Найдем матрицу $F$, вычислив все её элементы:

Итак, $F=left(begin -7 & 13 & -3 -31 & -5 & 7 23 & 31 & 7 end right)$. Пойдём далее. Матрица $C^T$ — транспонированная матрица для матрицы $C$, т.е. $ C^T=left(begin -5 & 10 & 3 -20 & 12 & -15 13 & 9 & 8 end right) $. Что же касаемо матрицы $E$, то это есть единичная матрица. В данном случае порядок этой матрицы равен трём, т.е. $E=left(begin 1 & 0 & 0 0 & 1 & 0 0 & 0 & 1 end right)$.

В принципе, мы и дальше можем идти пошагово, но оставшееся выражение лучше рассматривать целиком, не отвлекаясь на вспомогательные действия. По сути, нам остались лишь операции умножения матриц на число, а также операции сложения и вычитания.

$$ D=2AB-3C^T+7E=2cdot left(begin -7 & 13 & -3 -31 & -5 & 7 23 & 31 & 7 end right)-3cdot left(begin -5 & 10 & 3 -20 & 12 & -15 13 & 9 & 8 end right)+7cdot left(begin 1 & 0 & 0 0 & 1 & 0 0 & 0 & 1 end right) $$

Умножим матрицы в правой части равенства на соответствующие числа (т.е. на 2, 3 и 7):

$$ 2cdot left(begin -7 & 13 & -3 -31 & -5 & 7 23 & 31 & 7 end right)-3cdot left(begin -5 & 10 & 3 -20 & 12 & -15 13 & 9 & 8 end right)+7cdot left(begin 1 & 0 & 0 0 & 1 & 0 0 & 0 & 1 end right)== left(begin -14 & 26 & -6 -62 & -10 & 14 46 & 62 & 14 end right)-left(begin -15 & 13 & 9 -60 & 36 & -45 39 & 27 & 24 end right)+left(begin 7 & 0 & 0 0 & 7 & 0 0 & 0 & 7 end right) $$

Выполним последние действия: вычитание и сложение:

$$ left(begin -14 & 26 & -6 -62 & -10 & 14 46 & 62 & 14 end right)-left(begin -15 & 30 & 9 -60 & 36 & -45 39 & 27 & 24 end right)+left(begin 7 & 0 & 0 0 & 7 & 0 0 & 0 & 7 end right)= =left(begin -14-(-15)+7 & 26-30+0 & -6-9+0 -62-(-60)+0 & -10-36+7 & 14-(-45)+0 46-39+0 & 62-27+0 & 14-24+7 end right)= left(begin 8 & -4 & -15 -2 & -39 & 59 7 & 35 & -3 end right). $$

Задача решена, $D=left(begin 8 & -4 & -15 -2 & -39 & 59 7 & 35 & -3 end right)$.

Ответ : $D=left(begin 8 & -4 & -15 -2 & -39 & 59 7 & 35 & -3 end right)$.

Пусть $f(x)=2x^2+3x-9$ и матрица $ A=left(begin -3 & 1 5 & 0 end right) $. Найти значение $f(A)$.

Если $f(x)=2x^2+3x-9$, то под $f(A)$ понимают матрицу:

Именно так определяется многочлен от матрицы. Итак, нам нужно подставить матрицу $A$ в выражение для $f(A)$ и получить результат. Так как все действия были подробно разобраны ранее, то тут я просто приведу решение. Если процесс выполнения операции $A^2=Acdot A$ для вас неясен, то советую глянуть описание умножения матриц в первой части этой темы.

$$ f(A)=2A^2+3A-9E=2Acdot A+3A-9E=2 left(begin -3 & 1 5 & 0 end right)cdot left(begin -3 & 1 5 & 0 end right)+3 left(begin -3 & 1 5 & 0 end right)-9left(begin 1 & 0 0 & 1 end right)= =2 left(begin (-3)cdot(-3)+1cdot 5 & (-3)cdot 1+1cdot 0 5cdot(-3)+0cdot 5 & 5cdot 1+0cdot 0 end right)+3 left(begin -3 & 1 5 & 0 end right)-9left(begin 1 & 0 0 & 1 end right)= =2 left(begin 14 & -3 -15 & 5 end right)+3 left(begin -3 & 1 5 & 0 end right)-9left(begin 1 & 0 0 & 1 end right) =left(begin 28 & -6 -30 & 10 end right)+left(begin -9 & 3 15 & 0 end right)-left(begin 9 & 0 0 & 9 end right)=left(begin 10 & -3 -15 & 1 end right). $$

Ответ : $f(A)=left(begin 10 & -3 -15 & 1 end right)$.

В Mathcad 14 и 15 векторизация может осуществляться не только в численных, но и в символьных (аналитических) расчетах.

Большинство неспецифических функций Mathcad не требуют векторизации для проведения одной и той же операции над всеми элементами вектора. Например, аргументом тригонометрических функций по определению является скаляр. Если попытаться вычислить экспоненту от векторной величины, Mathcad осуществит векторизацию по умолчанию, возведя в степень e каждый элемент и выдав в качестве результата соответствующий вектор (листинг 7.13).

Листинг 7.13. Векторизация аргумента необязательна для большинства встроенных функций Mathcad

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

Для определения матрицы в Maple можно использовать команду matrix(n, m, [[a11,a12,…,a1n], [a21,a22,…,a2m],…, [an1,an2,…,anm]]), где n — число строк, m – число столбцов в матрице. Эти числа задавать необязательно, а достаточно перечислить элементы матрицы построчно в квадратных скобках через запятую. Например:

В Maple матрицы специального вида можно генерировать с помощью дополнительных команд. В частности диагональную матрицу можно получить командой diag. Например:

Генерировать матрицу можно с помощью функции f(i, j) от переменных i, j – индексов матрицы: matrix(n, m, f), где где n — число строк, m – число столбцов. Например:

Число строк в матрице А можно определить с помощью команды rowdim(A), а число столбцов – с помощью команды coldim(A).

Арифметические операции с матрицами.

Сложение двух матриц одинаковой размерности осуществляется теми же командами, что и сложение векторов: evalm(A+B) или matadd(A,B). Произведение двух матриц может быть найдено с помощью двух команд:

В качестве второго аргумента в командах, вычисляющих произведение, можно указывать вектор, например:

Команда evalm позволяет также прибавлять к матрице число и умножать матрицу на число. Например:

Определители, миноры и алгебраические дополнения. Ранг и след матрицы.

Определитель матрицы А вычисляется командой det(A). Команда minor(A,i,j) возвращает матрицу, полученную из исходной матрицы А вычеркиванием i-ой строки и j-ого столбца. Минор Mij элемента aij матрицы А можно вычислить командой det(minor(A,i,j)). Ранг матрицы А вычисляется командой rank(A). След матрицы А, равный сумме ее диагональных элементов, вычисляется командой trace(A). 7

Возведение матрицы в степень

К квадратным матрицам можно формально применять операцию возведения в степень n. Для этого п должно быть целым числом. Результат данной операции приведен в табл. 9.1. Ввести оператор возведения матрицы м в степень n можно точно так же, как и для скалярной величины: нажав кнопку Raise to Power (Возвести в степень) на панели Calculator (Калькулятор) или нажав клавишу . После появления местозаполнителя в него следует ввести значение степени n.

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

0 единичная матрица размерности матрицы M

1 сама матрица M

-1 M -1 — матрица, обратная M

-2, -3, . M -1 M -1 , (M -1 M -1 )M -1 , .

Некоторые примеры возведения матриц в степень приведены в листинге 9.15.

Листинг 9.15. Примеры возведения квадратной матрицы в целую степень

Векторизация массивов

Векторная алгебра Mathcad включает несколько необычный оператор, который называется оператором векторизации (vectorize operator). Этот оператор предназначен, как правило, для работы с массивами. Он позволяет провести однотипную операцию над всеми элементами массива (т. е. матрицы или вектора), упрощая тем самым программирование циклов. Например, иногда требуется умножить каждый элемент одного вектора на соответствующий элемент другого вектора. Непосредственно такой операции в Mathcad нет, но ее легко осуществить с помощью векторизации (листинг 9.16). Для этого:

· Введите векторное выражение, как показано во второй строчке листинга (обратите внимание, что в таком виде символ умножения обозначает оператор скалярного произведения векторов).

· Переместите курсор таким образом, чтобы линии ввода выделяли все выражение, которое требуется подвергнуть векторизации (рис. 9.3).

· Введите оператор векторизации, нажав кнопку Vectorize (Векторизация) на панели Matrix (Матрица) (рис. 9.3), или сочетанием клавиш + .

· Введите , чтобы получить результат.

Рис. 9.3. Оператор векторизации

Листинг 9.16. Использование векторизации для перемножения элементов вектора

Оператор векторизации можно использовать только с векторами и матрицами одинакового размера.

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

Листинг 9.17. Векторизация необязательна для большинства функций Mathcad

Символьные операции с матрицами

Все матричные и векторные операторы, о которых шла речь выше, допустимо использовать в символьных вычислениях. Мощь символьных операций заключается в возможности проводить их не только над конкретными числами, но и над переменными. Несколько примеров приведены в листинге 9.18.

Листинг 9.18. Примеры символьных операций над векторами и матрицами

Смело используйте символьный процессор в качестве мощного математического справочника. Например, когда Вы хотите вспомнить какое-либо определение из области линейной алгебры (так, правила перемножения и обращения матриц показаны в первых строках листинга 9.18).

Матричные функции

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

Функции создания матриц

Самым наглядным способом создания матрицы или вектора является применение первой кнопки панели инструментов Matrix (Матрицы). Однако в большинстве случаев, в частности при программировании сложных проектов, удобнее бывает создавать массивы с помощью встроенных функций.

Определение элементов матрицы через функцию

· matrix(M,N,f) — создание матрицы размера M*N, каждый i, j элемент которой есть f(i, j) (листинг 9.19);

o M — количество строк;

o N — количество столбцов;

o f (i, j) — функция.

Листинг 9.19. Создание матрицы

Для создания матриц имеются еще две специфические функции, применяемые, в основном, для быстрого и эффектного представления каких-либо зависимостей в виде трехмерных графиков (типа поверхности или пространственной кривой). Все их аргументы, кроме первого (функции), необязательны. Рассмотрим первую из функций.

· СгеаtеSрасе(F(или f1, f2, f3), t0, t1, tgrid, fmap) — создание вложенного массива, представляющего х-, у- и z-координаты параметрической пространственной кривой, заданной функцией р;

      • F(t) — векторная функция из трех элементов, заданная параметрически относительно единственного аргумента t;
      • f1(t) ,f2(t), f3(t) — скалярные функции;
      • t0 — нижний предел t (по умолчанию -5);
      • t1 — верхний предел t (по умолчанию 5);
      • tgrid — число точек сетки по переменной t (по умолчанию 2о);
      • fmap — векторная функция от трех аргументов, задающая преобразование координат.

Рис. 9.4. Использование функции CreateSpace с разным набором параметров

Пример использования функции CreateSpace показан на рис. 9.4. Заметьте, для построения графика спирали не потребовалось никакого дополнительного кода, кроме определения параметрической зависимости в вектор-функции F.

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

Рис. 9.5. Использование функции CreateMesh с разным набором параметров

· CreateMesh(F(или g, или f1, f2, f3) , s0, s1, t0, t1, sgrid, tgrid, fmap) — создание вложенного массива, представляющего х-, у- и z-координаты параметрической поверхности, заданной функцией F;

      • F(s,t) — векторная функция из трех элементов, заданная параметрически относительно двух аргументов s и t;
      • g (s, t) — скалярная функция;
      • f1(s,t),f2(s,t),f3(s,t) — скалярные функции;
      • s0, t0 — нижние пределы аргументов s, t (по умолчанию -5);
      • s1, t1 — верхние пределы аргументов s, t (по умолчанию 5);
      • sgrid, tgrid — число точек сетки по переменным s и t (по умолчанию 20);
      • fmap — векторная функция из трех элементов от трех аргументов, задающая преобразование координат.

Примеры вложенных массивов, которые создаются функциями CreateMesh и CreateSpace, приведены в листинге 9.20. Каждая матрица из числа трех вложенных матриц, образующих массив, определяет х-, у- и z-координаты точек поверхности или кривой, соответственно.

Листинг 9.20. Результат действия функций CreateMesh и CreateSpace (рис. 9.4 — 9.5)

Создание матриц специального вида

В Mathcad легко создать матрицы определенного вида с помощью одной из встроенных функций. Примеры использования этих функций приведены в листинге 9.21.

· identity (N) — единичная матрица размера N*N;

· diag(v) — диагональная матрица, на диагонали которой находятся элементы вектора v;

· geninv(A) — создание матрицы, обратной (слева) матрице А;

· rref (A) — преобразование матрицы или вектора А в ступенчатый вид;

Размер N*M матрицы А для функции geninv должен быть таким, чтобы N>M.

Листинг 9.21. Создание матриц специального вида

Источник: softaltair.ru

Добавить комментарий