Операции с матрицами и решение задач линейной алгебры

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

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

При попытке вычислить модуль вектора с панели Matrix будет ошибочное состояние. Точно также будет ошибочное состояние при попытке вычислить детерминант матрицы с панели Calculator.

Рассмотрим неизвестные вам до сих пор операторы панели Matrix.

- скалярное и векторное произведение векторов. Скалярное произведение векторов определяется как скаляр, равный сумме попарных произведений соответствующих элементов (идентичен обычному оператору умножения). Векторы должны иметь одинаковый размер. Для обозначения скалярного произведения используется символ «точка». Векторное произведение двух векторов u и v с углом q между ними равно вектору с модулем , направленным перпендикулярно плоскости векторов u и v. Векторное произведение векторов применимо только для трехкомпонентных векторов. Обозначают векторное произведение символом х, который можно ввести нажатием кнопки на панели Matrix/

- сумма элементов вектора.

- оператор векторизации. Он позволяет провести однотипную операцию над всеми элементами массива (т.е. матрицы или вектора), упрощая тем самым программирование циклов. Например, иногда требуется умножить каждый элемент одного вектора на соответствующий элемент другого вектора. Непосредственно такой операции в MathCAD нет, но ее легко осуществить с помощью векторизации. Оператор векторизации можно использовать только с векторами и матрицами одинакового размера.

Для решения задач линейной алгебры в MathCAD встроены матричные функции. Их можно разделить на три основные группы:

- функции определения (генерации) матриц и операции с блоками матриц;

- функции вычисления различных числовых характеристик матриц;

- функции, реализующие численные алгоритмы решения задач линейной алгебры.

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

Первая группа:

  1. matrix(m, n, f) – создает и заполняет матрицу размерности m x n, элемент которой, расположенный в i-ой строке и j-ом столбце равен значению f(i, j) функции f(x, y);
  2. diag(v) – создает диагональную матрицу, элементы главной диагонали которой хранятся в векторе v;
  3. identity(n) – создает единичную матрицу порядка n;
  4. augment(A, B) –объединяет матрицы A и B; матрица B располагается справа от матрицы A, при этом матрицы должны иметь одинаковое число строк;
  5. stack(A, B) – объединяет матрицы A и B, матрица В располагается внизу под матрицей А, при этом матрицы должны иметь одинаковое число столбцов;
  6. submatrix(A, ir, jr, ic, jc) – формирует матрицу, которая является блоком матрицы А, расположенным в строках с ir по jr и в столбцах с ic по jc, причем ir £ jr, ic £ jc.

Вторая группа:

  1. last(v) – вычисляет номер последнего элемента вектора V;
  2. length(v) – вычисляет количество элементов вектора V;
  3. min(v), max(v) – вычисляет минимальное и максимальное значения вектора V;
  4. Re(v) – создает вектор из реальных частей комплексных элементов вектора V;
  5. Im(v) - создает вектор из мнимых частей комплексных элементов вектора V;
  6. sort(V) – сортировка элементов вектора V по возрастанию;
  7. reverse (sort(v)) – сортировка элементов вектора V по убыванию;
  8. csort (A,n) – сортировка элементов n – го столбца матрицы А по возрастанию (перестановкой строк);
  9. rsort (A,n) – сортировка элементов n – ой строки матрица А по возрастанию (перестановкой столбцов);
  10. rows(A) – вычисляет число строк в матрице А;
  11. cols(A) – вычисляет число столбцов в матрице А;
  12. max(A), min(A) – определяет максимальное и минимальное значения матрицы А;
  13. tr(A) – вычисляет след квадратной матрицы А (след матрицы равен сумме ее диагональных элементов по главной диагонали);
  14. mean(A) – среднее значение элементов матрица А.

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

Третья группа:

  1. rref(A) – приведение матрицы к ступенчатому виду с единичным базисным минором (выполняются элементарные операции со строками матрицы: перестановка строк, умножение строки на число, сложение строк);
  2. rank(A) – вычисляет ранг матрицы А (количество линейно-независимых строк или это число ненулевых строк ступенчатой матрицы rref(A));
  3. eigenvals(A) – вычисление собственных значений квадратной матрицы А;
  4. eigenvecs (A) – вычисление собственных векторов квадратной матрицы А, значением функции является матрица, столбцы которой есть собственные векторы матрицы А, причем порядок следования векторов отвечает порядку следования собственных значений, вычисленных с помощью функции eigenvals(A);
  5. eigenvec(A,e) – вычисление собственного вектора матрицы А, отвечающего собственному значению e;
  6. normi(A) – max – норма, или ¥ - норма (infinity norm). в линейной алгебре используются различные матричные нормы, которые ставят в соответствие матрице некоторую скалярную числовую характеристику;
  7. lsolve (A,b) – решение системы линейных алгебраических уравнений вида .

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

В самом простом виде задача на собственные значения матрицы формулируется следующим образом: требуется найти такие значения l, чтобы матричное уравнение имело решение. В таком случае число l называют собственным числом матрицы А, а n- компонентный вектор Х, приводящий уравнение с заданным l в тождество – собственным вектором. В вышеприведенном примере собственные вектора матрицы А получены в матрице MS. Проверка проведена для первого столбца матрицы MS и соответствующего ему собственного числа l0=5.439.

Решение систем линейных алгебраических уравнений. Этот вопрос является центральным в вычислительной линейной алгебре.

В математике рассматриваются системы линейных уравнений двух видов - однородные и неоднородные.

Неоднородная система уравнений в матричном виде записывается следующим образом: . Здесь А – матрица коэффициентов системы, В – вектор свободных членов, Х – вектор неизвестных системы.

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

- метод обратной матрицы, он вам уже известен;

- метод исключений Гаусса;

- метод Крамера.

Неоднородная система линейных уравнений в случае равенства ее определителя нулю имеет множество решений, если ранг матрицы системы равен рангу расширенной матрицы системы, либо не имеет решения, если это условие не выполняется. Решить такие системы в MatCADe можно методом Гаусса.

В выше приведенном примере получили систему из трех уравнений с пятью неизвестными, поэтому решение системы будет иметь два свободных параметра (x4, x5).

Однородная система линейных алгебраических уравнений может быть представлена в виде , т.е. правая часть уравнения представляет вектор из нулевых элементов. Как известно, для того чтобы однородная система линейных уравнений имела решение, определитель соответствующей матрицы должен равняться нулю. Это означает, что количество независимых уравнений в системе (т.е. ранг матрицы) меньше, чем количество неизвестных (т.е. порядок матрицы): rank(A) < n. Но вначале нужно выделить в системе эти самые независимые уравнения. Это делается с помощью функции rref, которая с помощью метода исключений Гаусса приводит матрицу к ступенчатому виду.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: