Как найти минор в маткаде

125 / 41 / 3

Регистрация: 06.12.2012

Сообщений: 264

1

Как построить минор матрицы

11.05.2013, 00:13. Показов 18120. Ответов 8


Студворк — интернет-сервис помощи студентам

так сказать попытка не….

как сделать в маткаде, чтобы программа высчитывала необходимый минор матрицы

то есть
есть к примеру матрица “а” 3х3
1 2 3
4 5 6
7 8 9

необходим минор 1;1
что будет
5 6
8 9

потом это высчитываем получаем -3

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

как то так



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

11.05.2013, 00:13

Ответы с готовыми решениями:

Вывести минор по элементу матрицы
Здравствуйте. Подскажите пожалуйста.
Занимаюсь дискретным преобразованием Фурье (матричным). Мне…

Минор матрицы
Здравствуйте.
При реализации минора матрицы я столкнулся с неясной для меня проблемой.
1. При…

Минор матрицы
Помогите рассчитать минор каждого элемента матрицы 4×4.

Максимальный минор матрицы
Добрый день.
Подскажите пожалуйста как заменить метод minor() на блок ассемблерного кода.
На…

8

Модератор

Эксперт по математике/физике

5091 / 3907 / 1342

Регистрация: 30.07.2012

Сообщений: 11,680

11.05.2013, 01:01

2

Лучший ответ Сообщение было отмечено VSI как решение

Решение

Вот так это можно сделать в Maple…
> restart; with(linalg):
> A:=matrix(3,3,[1,2,3,4,5,6,7,8,9]);
> B:=minor(A,1,1);
> det(B);
-3



2



Модератор

Эксперт по математике/физике

5091 / 3907 / 1342

Регистрация: 30.07.2012

Сообщений: 11,680

11.05.2013, 11:11

3

Лучший ответ Сообщение было отмечено VSI как решение

Решение

А вот так это можно сделать в Mathcad v.15

Миниатюры

Как построить минор матрицы
 



3



125 / 41 / 3

Регистрация: 06.12.2012

Сообщений: 264

11.05.2013, 22:16

 [ТС]

4

Цитата
Сообщение от VSI
Посмотреть сообщение

А вот так это можно сделать в Mathcad v.15

нда…. мой маткад 8 такое не понянет, буду пользоваться первым вариантом

Добавлено через 4 часа 21 минуту
я кое что придумал
смотрите

я её создал в маткаде 8

Миниатюры

Как построить минор матрицы
 



0



0 / 0 / 0

Регистрация: 17.03.2015

Сообщений: 1

17.03.2015, 15:08

5

Господин VSI, А не могли бы вы помочь юному электрику подробно объяснить программную часть, пожалуйста.
Все вот ети notanumber и приемчики с транспонированием, а то я в маткаде не ухом, не рылом)
знаю только элементарное



0



0 / 0 / 0

Регистрация: 18.01.2017

Сообщений: 1

18.01.2017, 19:53

6

Понимаю, что грубо, но в v.14 я работал с этим.. Естественно, только при ORIGIN:=1

Миниатюры

Как построить минор матрицы
 



0



0 / 0 / 0

Регистрация: 20.12.2017

Сообщений: 4

23.12.2017, 18:46

7

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



0



Модератор

Эксперт по математике/физике

5091 / 3907 / 1342

Регистрация: 30.07.2012

Сообщений: 11,680

23.12.2017, 19:56

8

Цитата
Сообщение от rojeck
Посмотреть сообщение

…нахождение определителя матрицы в програмной области с использованием миноров этих

Это как? Опишите алгоритм…



0



0 / 0 / 0

Регистрация: 20.12.2017

Сообщений: 4

23.12.2017, 23:31

9

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



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

23.12.2017, 23:31

Помогаю со студенческими работами здесь

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

Доказать что если ранг матрицы равен r, то минор, стоящий на пересечении любых r линейно независимых столбцов
Доказать что если ранг матрицы равен r, то минор, стоящий на пересечении любых r линейно…

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

Базисный минор, линейная комбинация
Следующие числа на рисунке являются линейными комбинациями базисного минора второго порядка?:
3,…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

9

Лабораторная работа 6

Тема: Использование
матриц специального вида для выполнения
матричных операций в системе MathCad

Задание

  1. Сформировать
    матрицу А размером 44.

  2. Добавить к матрице
    А одну строчку и один столбец, пользуясь
    кнопкой
    «Insert»,
    расположенной в диалоговом окне
    «Insert
    Matrix».

  3. Умножая на матрицу
    специального вида, сформировать
    матрицу-столбец, соответственно равную
    j-му
    столбцу матрицы A
    (j
    = 1, 3, 5
    ).

  4. Умножая на матрицу
    специального вида, сформировать
    матрицу-строку, соответственно равную
    i
    -ой строке
    матрицы A
    (i
    = 3, 4, 5
    ).

  5. Получить новую
    матрицу из матрицы А перестановкой
    местами 1 и 3 строк.

  6. Получить новую
    матрицу из матрицы А перестановкой
    местами 2 и 4 столбцов.

  7. Пользуясь матрицей
    специального вида, найти сумму элементов
    3-го столбца матрицы А.

  8. Пользуясь матрицей
    специального вида, найти сумму элементов
    4-ой строки матрицы А.

  9. Вычислить
    определитель матрицы А разложением по
    1 –ому столбцу.

  10. Вычислить
    определитель матрицы А разложением по
    5 –ой строке.

Порядок
выполнения работы

  1. Загрузить систему
    Mathcad.

  2. Познакомиться с
    методическим указанием.

  3. Выполнить задание.

  4. Подготовить отчет.
    В отчет включить разделы: тема, ход
    работы, вывод.

  5. Сдать работу
    преподавателю.

Методические указания

Известно, что в
результате умножении матрицы
на вектор
получается вектор. Причем, каждый i
–ый элемент
этого вектора-результата представляет
собой сумму попарных произведений
соответствующих элементов
i
–ой строки матрицы на элементы
вектора-сомножителя. Очевидно, если в
векторе, на который умножается матрица,
все элементы равны нулю, а один элемент
равен единице, то результатом такого
произведения будет число, соответствующее
тому элементу i
–ой строки
матрицы, где векторным сомножителем
будет единица. Такой вывод можно
использовать для выделения (формирования)
из матрицы нужного столбца. На рис.1
(а)-(б) показаны примеры выделения первого
и четвертого столбцов из матрицы А.

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

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

Рассуждая, таким
образом, можно с помощью вспомогательного
вектора с единичными компонентами
получить вектор, компоненты которого
будут равны сумме строк (столбцов)
матрицы (рис.1 (д)), а также суммы отдельно
выделенного столбика (строчки) (рис.1
(г)-(е)).

(а)

Формирование
матрицы А, матриц В1 и В2 из одного
столбика, в которых единичный элемент
соответствует выделяемому столбику
(строчке).

(б)

Получение
из матрицы А 1-го и 4-го столбцов

(в)

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

(г)

Вычисление
суммы элементов 4-го столбца

(д)

Вычисления
вектора – сумм элементов в столбцах
матрицы

(е)

Вычисление
суммы элементов 4-ой строки

(ж)

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

(з)

Перестановка
первого и второго столбцов матрицы.

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

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

Алгебраическим
дополнением элемента называется минор
этого элемента, взятый со знаком (-1)i+j,
где i
– номер
строки, j
– номер столбца. Минором называется
определитель, получаемый из исходной
матрицы, вычеркиванием i
– ой строки,
j
– го столбца. Следует отметить, что
нумерация строк и столбцов в этом случае
идет от единицы.

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

Определение
системной переменной, задающей
индексацию от 1

Формирование
исходной матрицы

Выделение минора
вычеркиванием первой строчки и первого
столбца

Выделение
минора вычеркиванием первой строчки
и второго столбца

Выделение
минора вычеркиванием первой строчки
и третьего столбца

Вычисление
детерминантов для выделенных миноров

Вычисление
определителя

Проверка
правильности

Вывод:
совпадение результатов дает основания
считать, что расчеты произведены
правильно

Контрольные вопросы

  1. Как формируется
    вспомогательная матрица для выделения
    столбца из матрицы?

  2. Как формируется
    вспомогательная матрица для выделения
    строки из матрицы?

  3. Как сформировать вспомогательную
    матрицу для перестановки строк? Столбцов?

  4. Назначение
    системной
    переменной ORIGIN?

  5. Как получить сумму
    элементов заданной строки? Столбца?

  6. Как из матрицы
    получить вектор – столбец, элементы
    которой будут равны сумме элементов
    строк?

  7. Как получить минор из матрицы?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Матрицы — вещь важная, а потому было бы просто непростительно отводить на них всего одну статью из нашего цикла о работе в среде MathCAD. Узнав о том, как можно транспонировать матрицы, вычислять определители, обратные матрицы, а также перемножать и складывать их, сегодня мы с вами продолжим издевательства над этими важными в математике объектами. Думаю, что изложенные ниже сведения будут полезны и в практических вычислениях, производимых в среде MathCAD, ведь матрицы очень часто встречаются в реальных задачах.

Еще о вспомогательных функциях

В прошлый раз мы немного поговорили о специальных MathCAD’овских функциях, позволяющих разрезать матрицы на составные части или же склеивать их. Это не единственные из вспомогательных функций, действующих над матрицами, которые могут пригодиться в практике повседневной работы. Пришло время познакомиться с некоторыми другими функциями, которые также имеют неплохой шанс оказаться весьма и весьма полезными. Особую роль в матричном исчислении играют единичные матрицы. На всякий случай напомню, что единичной называется такая матрица, у которой все недиагональные элементы равны нулю, а элементы, расположенные на главной диагонали (от верхнего левого угла к нижнему правому), равны единице. Единичные матрицы могут иметь самые разные размеры. Чтобы пользователь не тратил свое время на вбивание нулей и единиц в строки и столбцы такой матрицы, в MathCAD’е имеется специальная функция Identity, создающая единичную матрицу заданного размера. У этой функции есть единственный аргумент, задающий размерность матрицы.

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

Для определения размера матриц можно использовать функции Rows и Cols. Каждая из них имеет один-единственный входной параметр, которым является сама матрица, а на выходе выдают значения числа строк и столбцов соответственно. Для определения размера вектора можно использовать функцию length, которая работает аналогично указанным для матриц функциям.

Интересной также является предоставляемая MathCAD’ом функция для сортировки элементов векторов. Называется она просто и незатейливо — Sort. В качестве входного параметра этой функции нужно передать вектор, сортировкой которого мы будем заниматься, и на выходе получим почти такой же вектор, только его элементы будут упорядочены по возрастанию. Для сортировки строк и столбцов матрицы можно воспользоваться соответственно функциями Rsort и Csort, которым нужно передать в качестве параметров саму матрицу и номер того столбца или строки, которые должны быть отсортированы. Правда, работают эти функции несколько загадочно, иногда сортируя не только нужный столбец (строку), но и все остальные (см. соответствующую иллюстрацию). Чтобы изменить порядок следования чисел в векторе или порядок строк в матрице на противоположный, нужно воспользоваться функцией Reverse, в качестве аргумента для которой нужно передать изменяемые матрицу или вектор.

Ранг и норма матрицы

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

Минором матрицы порядка k называется определитель, вычисленный для матрицы, образованной из k столбцов и k строк данной матрицы. Главным минором называется минор, для которого номера выбранных столбцов совпадают с номерами выбранных строк. Понимаю, это определение звучит несколько громоздко, но я думаю, если вы прочитаете его внимательно еще раз, то все станет просто и понятно. Рангом матрицы называется наибольший порядок среди всех ее ненулевых миноров. Ранг матрицы характеризует число линейно независимых столбцов или строк матрицы, а потому в матричной алгебре эта характеристика используется весьма широко. Для вычисления ранга матрицы в MathCAD’е используется функция Rank, которой в качестве аргумента передается та самая матрица, ранг которой нужно вычислить.

Норма матрицы — понятие более расплывчатое, чем ранг. Для полного определения нормы матрицы используется система ограничений, которым должен подчиняться строящийся по определенным правилам функционал. Вы можете найти подробное определение нормы матрицы в любом учебнике по линейной алгебре. Мы же сейчас удовлетворимся знанием того, что норма матрицы — это некоторый аналог величины, который для векторов называют длиной (норма вектора как раз и есть его длина). Впрочем, в отличие от длины вектора, где все понятно и определенно, норма матрицы может вычисляться несколькими разными способами, и в зависимости от способа вычисления ее величина может быть различной. Всем функциям для вычисления нормы матрицы, о которых здесь идет речь, требуется в качестве аргумента передавать ту матрицу, для которой будет вестись вычисление нормы. Функция Norm1 определяет норму путем складывания модулей элементов для каждого из столбцов и выбором наибольшей из получившихся для столбцов сумм. Функция Normi работает аналогичным образом, только для вычисления сумм там используются не столбцы, а строки. Функция Norme вычисляет норму матрицы по тому же алгоритму, по какому вычисляется норма вектора: квадраты всех элементов матрицы суммируются, а затем из полученного числа извлекается корень.

Собственные вектора и собственные значения матриц

Собственным вектором x и собственным значением ? матрицы X называются такие вектор и число соответственно, которые удовлетворяют соотношению xX = ?x. Обычно матрица имеет несколько собственных векторов и соответствующих им собственных значений, а потому мы будем рассматривать именно этот случай. Конечно, в MathCAD’е не слишком сложно с помощью некоторых преобразований рассчитать необходимые числа и вектора самостоятельно, однако можно еще больше упростить себе жизнь, воспользовавшись встроенными в эту среду функциями.

Функция Eigenvecs принимает в качестве входного параметра некоторую матрицу, а возвращает другую, содержащую собственные вектора исходной. При интерпретации результатов работы этой функции необходимо помнить, что в MathCAD’е вектора записываются в виде столбцов, так что и в этой матрице каждый из столбцов является собственным вектором первоначальной матрицы. Другая функция, Eigenvals, также принимает на вход некоторую матрицу, однако выдает для нее уже не собственные вектора, а собственные значения. Записываются они также в виде столбика. В этом столбце они идут в том же порядке, что и столбцы в матрице, возвращаемые первой функцией. То есть i-му столбцу матрицы, получаемой на выходе функцией Eigenvecs, соответствует i-е собственное значение в векторе. Впрочем, проследить соответствие собственных векторов и собственных значений для матрицы можно и более наглядным образом. Для этого существует специальная функция Eigenvec (не путайте с Eigenvecs), которой на вход передаются матрица и одно из ее собственных значений, а она уже вычисляет соответствующий этому собственному значению собственный вектор.

Скалярное и векторное произведение векторов

Напоследок поговорим о вещах довольно простых, но очень распространенных в практике решения задач, а потому особенно важных. Сейчас мы рассмотрим, как с помощью MathCAD’а вычислять скалярное и векторное произведение векторов. Напомню, что скалярным произведением x.y называется число, равное x0y0 + x1y1 + x2y2 + … + xnyn, а вот с векторным все несколько сложнее. Оно определяется только для трехмерных векторов и вычисляется как определитель матрицы, составленной из базисных векторов (i, j и k) и элементов тех векторов, для которых вычисляется векторное произведение. Традиционно в математике векторное произведение обозначают c помощью крестика, который ставится между двумя перемножаемыми векторами.

Для вычисления скалярного и векторного произведения векторов обратимся снова к панели матричных вычислений, неоднократно выручавшей нас в наших упражнениях с MathCAD’ом. Скалярное произведение называется на ней Dot Product и обозначается как точка между двумя векторами, а векторное — Cross Product и обозначается крестиком, как я уже говорил выше. Чтобы перемножить два вектора, вы можете сначала обозначить их с помощью каких- либо символьных обозначений, а можете сразу записывать произведения между столбцами чисел.

Теперь, пожалуй, о матрицах самое основное и важное сказано. Как видите, в плане работы с векторами и матрицами MathCAD ничуть не менее мощный, чем во всем остальном. Поэтому использовать эту среду для матричных вычислений можно и нужно. Ну а как это делать, вы теперь уже знаете.

SF, spaceflyer@tut.by

Компьютерная газета. Статья была опубликована в номере 24 за 2008 год в рубрике soft

3. Определить все миноры матрицы А.

q  Ввести
сопроводительный текст “Миноры матрица А”

q  Определить
миноры матрицы, используя функцию submatrix(A,ir,jr,ic,jc)
(см. параграф “Функция submatrix(A,ir,jr,ic,jc)”).

Для выполнения операции надо ввести имя переменной, знак
присвоения (нажав клавиши “Shift” +
“:”), ввести функцию submatrix(A,ir,jr,ic,jc) с соответствующими
параметрами Последовательность действий и расположение выражения на экране
монитора приведена на Рис. 3.9.
Следует учесть, что индекс первой строки и первого столбца матрицы равен 0.

5. Просмотреть содержание переменных.

Для выполнения операции надо разместить курсор правее места
ввода выражения для определения минора, нажать левую. кнопку мыши, ввести имя
переменной содержащий минор и ввести знак равенства (нажав клавишу
“=”). Последовательность действий и расположение выражения на экране
монитора приведена на
Рис. 3.9.

6. Рассчитать определители миноров.

q  Ввести сопроводительный текст
“Определители миноров”

q  Рассчитать определители миноров.

Для выполнения операции надо ввести имя переменной,
содержащей минор, ввести функцию определителя (нажав клавиши “Shift” + “|”) и знак равенства (нажав клавишу
“=”). Подробнее о функции определителя матрицы см. в параграфе
“Элементарные матричные вычисления”). Последовательность действий и
расположение выражения на экране монитора приведена на Рис. 3.9.

7. Выписать базисные миноры.

Последовательность действий и
расположение выражения на экране монитора приведена на Рис. 3.9.

8. После завершения расчетов выровнять выражения по
горизонтали, как показано на Рис. 3.9.

На Рис. 3.9
приведен листинг примера №5.

Рис. 3.9.
Листинг программы MathCAD (Пример №5)

Пример №6

Задание. Исследовать
совместность системы линейных алгебраических уравнений

___________________________________________________

Последовательность действий.

1. Ввести сопроводительный текст “Пример № 6” в
правом верхнем углу листа. (см. Пример №1 п.1)

2. Определить:

– матрицу А, состоящую из коэффициентов левой части СЛАУ,

– вектор В, состоящий из коэффициентов правой части СЛАУ

– расширенную матрицу С, состоящую из коэффициентов левой и
правой частей СЛАУ.

q  Ввести
сопроводительный текст “Исходные данные” (см. Пример №1 п.1)

q  Определить
и заполнить матрицу А, В, используя шаблон матрицы (последовательность действий
см. в Примере №1 п.2).

Для определения матрицы А необходимо: выбрать место для
размещения матрицы, щелкнуть левой кнопкой мыши (появится красный крест),
ввести имя переменной (А), ввести знак присвоения (клавиши “Shift”+”:”), вызвать диалоговое окно Insert
Matrix
(Вставить матрицу) (клавиши “Ctrl”+”M”), ввести в текстовые окна Rows (Строки),
Columns (Колонки)
цифру 2, закрыть диалоговое окно, заполнить ячейки шаблона матрицы
коэффициентами левой части системы уравнений.

По аналогии определить матрицы В.

Последовательность действий и расположение выражения на
экране монитора приведена на Рис. 3.10.

q  Определить
расширенную матрицу С, используя функцию augment(A,B) (см.
параграф “Функции augment(A,B) и stack(A,B)”) (последовательность действий см. в Примере №3) и
вывести на экран значение полученной матрицы.

Расположение выражения на экране монитора приведена на Рис. 3.10.

3. Определить ранг матриц А и С (см. Пример №4).

q  Ранги
матриц A и С равны (rankA=rankC), следовательно система
уравнений совместна и имеет решение.

Последовательность действий и расположение выражения на
экране монитора приведена на Рис. 3.10.

4. Решить систему уравнений методом Крамера.

q  Ввести
сопроводительный текст в две строки “Решить систему уравнений методом
Крамера” и “Дополнительные матрицы”.

q  Определить
дополнительные матрицы А1 и А2. Матрица А1
получается заменой первого столбца матрицы А вектором В, а матрица А2
– заменой второго столбца матрицы А вектором В.

Лекція№9 – Операции с векторами и матрицами, матричные функции в математическом пакете MathCad

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

Понятие «вектор» обычно не отделяют от понятия «матриц». Векторы могут рассматриваться как матрицы, состоящие из одного столбца (или строки).

Матричные вычисления в MathCAD можно условно разделить на три основных типа.

К первому относятся такие элементарные действия над матрицами, как создание, извлечение из них данных, их умножение, сложение или скалярное произведение (в случае векторов). Для их реализации служат специальные операторы трех панелей семейства Math (Математические): Calculator (Калькулятор), Matrix (Матричные) иSymbolics (Символьные).

Ко второму типу можно отнести те матричные преобразования, которые требуют использования специальных функций и встроенных алгоритмов матричной алгебры, таких как, например, функции вычисления определителя, матричных норм или сортировки элементов векторов по возрастанию. Функции этой группы можно найти в категории Vector and Matrix (Векторные и матричные) у мастера функций.

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

В языках программирования начальные индексы массивов обычно равняются 0. По умолчанию в MathCAD индексы строк и столбцов также отсчитываются с 0. В том случае, если такая система вам неудобна или непривычна, можно изменить точку отсчета индексов на 1, задав системную переменную ORIGIN: ORIGIN:= 1.

Доступ к элементам вектора или матрицы осуществляется с помощью индексированных переменных. Например, чтобы использовать пятый элемент вектора с именем А, нужно записать этот элемент в виде: . А для того, чтобы взять элемент матрицы В, расположенный на пересечении 3-ей строчки и 4-го столбца нужно записать: .

Для задания индексов на панели Matrix предусмотрена специальная кнопка Subscript (Индекс). Перейти к записи индекса можно также с помощью клавиши «[» ( левая квадратная скобка). Нажав ее, вы увидите, что на месте будущего индекса, чуть ниже текста имени матрицы, появится черный маркер. В него через запятую следует ввести значения индексов. На первом месте при этом должен стоять номер строки, а на втором – столбца.

3.1. Создание векторов и матриц

В системе предусмотрены различные возможности задания векторов и матриц:

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

С помощью индексированных переменных.

С помощью использования команды Insert→Matrix, либо с помощью соответствующей кнопки панели Matrix.

Задание с помощью элементов программирования.

Применение встроенных функций.

Через связь с другим приложением, например Excel.

Создание таблицы данных.

Чтение из внешнего файла.

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

Пример 1. Требуется сформировать вектор x, состоящий из 6 элементов. Элементам этого вектора присвоить значения индексов.

Решение. Предоставим два варианта решения этой задачи:

с помощью индексированной переменной;

с помощью команды Insert→Matrix.

Вариант а

Для того, чтобы сформировать вектор, воспользуемся вспомогательной переменной, которая будет играть роль индекса (например, i), а затем будем использовать эту переменную для здания элементных значений вектора x. Формирование вектора представлено на рис. 3.1.

Рис. 3.1. Формирование вектора с использованием индексированной переменной

Вариант b

Формирование вектора х будем производить с помощью команды Matrix. Для этого сначала напишем оператор присваивания: «х:=» , а затем выполним команду Matrix. Эта команда открывает диалоговое окно«Insert Matrix», которое представлено на рис. 3.2, в котором необходимо указать число строк и число столбцов. В нашем примере число строк равно 6, а число столбцов равно 1.

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

Рис. 3.2. Вызов диалогового окна «Insert Matrix» для создания матрицы с помощью команды «Matrix»

Пример 2. В файле с именем «int(4_4).txt» записаны числа в виде матрицы четыре строчки по четыре элемента, разделенными пробелами. В файле с именем «int(4_1).txt» записаны числа в столбик. Требуется прочитать эти данные в матрицу Q и вектор P.

Решение. Для чтения данных из файла в матрицу/вектор можно воспользоваться функцией READPRN, которая имеет один параметр — имя файла. Фрагмент с решением представлен на рис. 3.3.

Рис. 3.3. Чтение данных из файлов

С матрицами могут производиться как численные, так и символьные вычисления. Операции с матрицами в системе MathCAD обозначаются так, как это принято в математике: , +, *, … .

На рис. 3.4 показано назначение некоторых специализированных команд, расположенных на панели инструментов Matrix.

Помимо этого, система MathCAD представляет большое количество функций для работы с векторами и матрицами. Воспользоваться этими функциями можно с помощью мастера функций f(x).

Х -1 – получить обратную матрицу

|X| – вычислить детерминант

М Т – транспонировать

М – из матрицы взять вектор-столбец

v – получить сумму элементов

–скалярное произведение векторов

–векторное произведение векторов

Рис. 3.4. Назначение некоторых команд, расположенных на панели инструментов «Matrix»

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

Рис. 3.5. Примеры матричных вычислений в MathCAD

Пример 3. Требуется сформировать диагональную квадратную матрицу с(6×6). Значения элементов главной диагонали должны совпадать с номером строки/столбца.

Решение. Для получения диагональной матрицы в системе предусмотрена функция diag, которая имеет один параметр – вектор диагональных элементов. Поэтому формирование матрицы начнем с создания вспомогательного вектора, в который занесем элементы для диагонали. Для формирования этого вспомогательного вектора (например, с именем s), воспользуемся вспомогательной переменной, которая будет играть роль индекса (например, i). Тогда формирование диагональной матрицы может быть получено в результате операций, как это показано на рис. 3.6.

Рис. 3.6. Формирование диагональной матрицы

Пример 4. Даны две матрицы: А(4×3) и В(4×2). Требуется объединить эти матрицы в одну матрицу С(4×5), причем, первыми столбцами новой матрицы должны быть столбцы матрицы А, а справа от этих элементов следовать столбцы матрицы В (методом «дописывания справа»).

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

Рис. 3.7. Объединения двух матриц по правилу «дописывания справа»

Пример 5. Даны две матрицы: А(2×3) и В(3×3). Требуется объединить эти матрицы в одну матрицу С(5×3), причем, в новой матрицы в качестве первых строк должны быть строки матрицы А, а за ними должны следовать строки матрицы В.

Решение. Для соединения двух матриц в одну матрицу по правилу «друг под другом» можно использовать функцию stack, параметрами которой будут являться имена соединяемых матриц, как это показано на рис. 3.8.

Рис. 3.8. Объединения двух матриц по правилу «друг под другом»

Пример 6. Дана матрица А(6×6). Требуется получить из этой матрицу подматрицу, в которую включить элементы, расположенные в строках, начиная с номера 2-го по номер 4-ый, и столбцах, начиная с номера 0-го по номер 5-ый.

Решение. Для выделения подматрицы с номерами столбцов и строк представленными граничными значениями предусмотрена функция submatrix. Эта функция имеет 5 параметров: имя матрицы, из которой производится выбор; начальный номер строки выбора; конечный номер строки выбора; начальный номер столбца выбора; конечный номер столбца выбора. Возможное решение представлено на рис. 3.9.

Рис. 3.9. Выделение подматрицы из заданной матрицы

Пример 7. Дана матрица А(6×6). Требуется получить из этой матрицу два вектора. Первый вектор должен совпадать с 4–ым столбцом матрицы А, а второй – с 3-ей строкой матрицы А.

Решение. Для получения векторных значений можно воспользоваться командой М (из матрицы взять вектор-столбец), которая расположена на панели «Мatrix». Для получения первого вектора эту команду нужно применить непосредственно к матрице А, а для получения второго вектора нужно сначала получить из матрицы Атранспонированную матрицу, а только потом воспользоваться командой «взять столбец». Возможное решение представлено на рис. 3.10.

Рис. 3.10. Выделение векторных значений из заданной матрицы

Пример 8. Из матрицы А(6×6) выделить минор, который образуется в результате вычеркивания из этой матрицы нулевой строчки и третьего столбца.

Решение. Решение задачи можно свести к соединению двух подматриц, выделенных из матрицы А, как это показано на рис. 3.11.

Рис. 3.11. Выделение минора из заданной матрицы

3.2. Использование матриц специального вида для выполнения матричных операций в системе MathCad

Известно, что в результате умножении матрицы на вектор получается вектор. Причем, каждый i–ый элемент этого вектора-результата представляет собой сумму попарных произведений соответствующих элементов i–ой строки матрицы на элементы вектора-сомножителя. Очевидно, если в векторе, на который умножается матрица, все элементы равны нулю, а один элемент равен единице, то результатом такого произведения будет число, соответствующее тому элементуi–ой строки матрицы, где векторным сомножителем будет единица. Такой вывод можно использовать для выделения (формирования) из матрицы нужного столбца.

Пример 9. Даны матрица: А(4×4). Требуется получить из этой матрицу два вектора. Первый вектор должен совпадать с 0–ым столбцом матрицы А, а второй — с 3-им столбцом матрицы А.

Решение. Для получения новых векторов сформируем два вспомогательных вектора: вектор B1 – с единичным значением в строке с номером 0, а второй вектор В4 – с единичным значением в строке с номером 3. Тогда для получения векторов в соответствии с условием задачи достаточно умножить матрицу А справа на векторы В1 и В2, как это показано на рис. 3.12.

Рис. 3.12. Выделение векторных значений из заданной матрицы

Аналогичным образом можно получить вектор-строку из матрицы. Для этого достаточно сформировать вспомогательный вектор – строку, у которой все компоненты равны нулю, а одна компонента, номер которой соответствует номеру выделяемой строки из матрицы, равна единице. Если этот вектор умножить слева на матрицу, то в результате будет получена нужная строка.

Пример 10. Дана матрица: А(4×4). Требуется выделить из матрицы первую строку по порядку (с номером 0).

Решение. Сначала требуется подготовить вспомогательный вектор-строку, а потом умножить эту строку слева на матрицу А. Вектор-строку можно получить из предыдущего примера транспонированием вектора-столбца В1.

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

Пример 11. Дана матрица: А(4×4). Требуется переставить в матрице строки с номерами 0 и 1.

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

Пример 12. Дана матрица: А(4×4). Требуется переставить в матрице столбцы с номерами 0 и 1.

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

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

Пример 13. Дана матрица: А(4×4). Требуется найти сумму элементов в столбце с номером 3.

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

Пример 14. Дана матрица: А(4×4). Требуется получить вектора, элементы которого будут представлять суммы элементов в столбцах матрицы.

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

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

Для простоты решения ограничимся случаем системы из трех линейных уравнений с тремя неизвестными. Рассуждения на случай большего числа уравнений можно провести аналогичным образом. Пусть требуется найти решение система линейных алгебраических уравнений (СЛАУ) вида:

(3.1)

Введем следующие обозначения:

, (3.2)

А – матрица коэффициентов;

В – вектор свободных членов;

х – вектор неизвестных.

В обозначениях (5.2) систему уравнений (5.1) можно записать в виде:

Из линейной алгебры известно, что система (3.3) имеет единственное решение при условии невырожденности матрицы, т.е. её детерминант должен быть отличным от нуля. Поэтому, какой бы вычислительный метод не применялся, решение системы линейных уравнений всегда нужно начинать с вычисления определителя (детерминанта) матрицы.

В разделе 6.4 мы уже рассматривали решение систем с использованием блока решения. Если применить к уравнению (3.3) аппарат матричных преобразований можно получить «матричную» формулу для вычисления x:

Помножим уравнение (3.3) слева на матрицу, обратную к матрице А:

. (3.4)

Воспользуемся свойством, что , гдеЕ – единичная матрица. Тогда уравнение (3.4) примет вид:

. (3.5)

Воспользуемся свойством, что Ex = x. Тогда уравнение (3.5) примет вид:

, (3.6)

где (3.6) – решение системы (3.3).

Пример 15. Требуется найти решение следующей системы линейных уравнений:

Решение. Решение СЛАУ матричным способом в системе MathCAD приведено на рис.3.13.

Решение матричных уравнений в маткаде

Mathcad для студентов

Mathcad для начинающих

Скачать программы бесплатно

Решение системы линейных алгебраических уравнений матричным способом в Mathcad

Рассмотрим системы линейных алгебраических уравнений в Mathcad в векторно-матричной форме A*x =b, где А – квадратная матрица коэффициентов при неизвестных, причем определитель матрицы должен быть отличным от нуля; х- вектор неизвестных; b – вектор свободных членов. Решение данной сводится к следующему. Если определитель матрицы А отличен от нуля, то матрица А обратима. Тогда, умножив левую и правую часть и сходного уравнения на обратную матрицу (А-1), получаем решение в виде x=A-1*b. Реализовать полученное решение средствами Mathcad не представляет сложностей. Для случая бесконечного множества решений получаем сингулярную матрицу, Mathcad выдает сообщение “Matrix is singular. Cannot compute its inversу – Матрица сингулярная. Нельзя вычислить эту инверсию” и прерывает вычисления. На листинге представлен пример решения систем линейных алгебраических уравнений.

Решение системы линейных алгебраических уравнений методом Крамера в Mathcad

В Mathcad метод Крамера также предназначен для решения системы n линейных уравнений с n неизвестными вида A*x =b на основе предварительного вычисления определителей системы, при условии, что определитель матрицы А отличен от нуля. Метод основан на формулах Крамера, вида , где – определитель матрицы, полученной из матрицы А системы заменой i –го столбца, т.е. столбца коэффициентов при неизвестном Xi вектором свободных членов, т.е. b. На листинге в Mathcad приведен пример решения системы линейных алгебраических уравнений методом Крамера.

Матрицы и векторы в Mathcad

Операции, выполняемые над векторами и матрицами в Mathcad, можно разбить на две большие группы. К первой группе относятся операции, которые применяются к отдельным векторам и матрицами. Например, транспонирование матрицы или вычисление обратной матрицы в Mathcad. Ко второй группе относятся операции, которые выполняются над группой векторов и матриц. Как правило, они выполняются над двумя матрицами или матрицей и вектором. Например, сложение, вычитание матриц, перемножение матриц или умножение матрицы и вектора. К векторам и матрицам в Mathcad, при выполнении операций над ними, могут предъявляться определенные требования в соответствии с требованиями классической математики. Например, при перемножении матрицы и вектора, количество столбцов матрицы должно быть равно количеству срок вектора. Поэтому при работе с векторами и матрицами пользователь должен иметь необходимую математическую подготовку. В таблице приведены основные операции, выполняемые над векторами и матрицами, используемые в Mathcad. В таблице приняты следующие обозначение: А – массив, под которым понимается вектор или матрица, М – матрица, z – скаляр, v – вектор.

Наиболее удобно выполнять матричные вычисления с использованием кнопок панели инструментов “Матрица”. По умолчанию индексация строк и столбцов элементов матрицы начинается с 0. Для того чтобы индексация начиналась с 1, необходимо системной переменной ORIGIN присвоить значение 1. На листинге приведен пример матричных вычислений в Mathсad.

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

Mathсad имеет более 50 функций, предназначенных для работы с векторами и матрицами. Все функции можно разбить на группы по их функциональному назначению. Например, функции, предназначенные для создания матриц общего и специального вида, редактирования и преобразования матриц, функции, определяющие параметры матриц и т. д. Рассмотрим часть этих функций, которые имеют наибольшее прикладное значение.

Среди функций, предназначенных для создания матриц, следует выделить функцию matrix(L,N,f), где L – число строк матрицы, N – число столбцов матрицы, f – функция f(l,n) при . Другая функция из этой группы identity(n). Функция предназначена для создания единичной матрицы размерности n. Следующая функция geninv(M) позволяет осуществить обращение матрицы M, аналогично операции M -1 .

Для определения размерности матрицы в Mathcad предназначены функция rows(M), определяющая число строк матрицы M, и функция cols(M), определяющая число колонок матрицы M.

Сортировку элементов матрицы осуществляют две функции csort(M,i), rsort(M,j). Функция csort(M,i) обеспечивает сортировку по возрастанию элементов i – го столбца путем перестановки строк, а функция rsort(M,j) – сортировку по возрастанию элементов j –ой строки путем перестановки столбцов.

Для определения минимального и максимального элемента матрицы используются функции min(M) и max(M).

Выделить произвольную подматрицу из матрицы М в Mathcad можно посредством функции submatrix (M, r1, r2, c1, c2), где М – исходная матрица, r1 и r2 –нижний и верхний номер строки матрицы М, включаемых в результирующую подматрицу, а с1 и с2 – нижней и верхний номер столбца матрицы М, включаемых в результирующую подматрицу. Слияние матриц можно осуществить, используя функции augment(A,B,…) и stack(A,B,…). Функция augment(A,B,…) предназначена для слияния матриц А, В и т.д. слева направо. Причем количество строк в матрицах должно быть одинаково. Вторая функция stack(A,B,…) выполняет слияние матриц сверху вниз. Количество столбцов в матрицах должно быть также одинаково. Данные функции могут быть применены и к векторам. На листинге приведен пример использования рассмотренных матричных функций.

Матричные вычисления в Mathcad

Создание векторов и матриц реализовано в Mathсad различными способами. В данном разделе рассматриваются только функции и операции с векторами и матрицами, а так же прикладное использование векторов и матриц для решения некоторых задач.

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

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

Основные операции с матрицами и векторами

Операции, выполняемые над векторами и матрицами, можно разбить на разные большие группы.

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

В Mathcad можно решать системы линейных алгебраических уравнений матричным способом.

Решение системы линейных алгебраических уравнений методом Крамера

Также предназначен метод Крамера для решения системы n линейных уравнений с n неизвестными.

[spoiler title=”источники:”]

http://allmathcad.com/ru/vsjo-o-mathcad/24-vsjo-o-mathcad/matrichnye-vychisleniya.html

[/spoiler]

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