Svinkovod.ru

Бытовая техника
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

4. Деление матриц

4. Деление матриц:

Деление матриц — действие над матрицами, которое в этом понятии не встретишь в учебниках. Но если есть необходимость разделить матрицу А на матрицу В, то в этом случае используют одно из свойств степеней:

Согласно этому свойству разделим матрицу А на матрицу В:

В результате задача о делении матриц сводиться к умножению обратной матрицы матрице В на матрицу А.

Обратная матрица есть только у невырожденной матрицы, т.е. у той матрицы, определитель которой не равен нулю. У вырожденной матрицы (определитель=0) обратной матрицы не существует.

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

Условие обратной матрицы

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

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

Покажу на примере схемы, как найти дополнение элемента, стоящего в первой строке второго столбца, значит элементы, стоящие в первой строке и втором столбце надо вычеркнуть. Оставшиеся элементы (их 4) — записываем в новый определитель, умноженный на (-1) в степени (1+2), где 1 и 2 -номера строки и столбца.

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

Рассмотрим на примере нахождение обратной матрицы:

Пусть дана матрица В:

Найдем ее определитель:

Определитель равен 232, это не ноль, значит матрица невырожденная и для нее можно найти обратную матрицу.

Для этого найдем 9 дополнений:

Дополнение для элемента, стоящего в первой строке первого столбца:

Дополнение для элемента, стоящего в первой строке второго столбца:

Дополнение для элемента, стоящего в первой строке третьего столбца:

Теперь определим следующие три дополнения для второй строки:

И последние три для третьей строки:

Теперь составим обратную матрицу:

Матрица обратная данной найдена.

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

Как же найти это число, называемое ранг матрицы?

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

Читайте так же:
Как восстановить скрытые строки в excel

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

Порядок первого минора определяется следующим образом:

1. посчитайте количество строк и столбцов в данной матрице;

2. выберите минимальное из этих двух чисел ( в случае если они разные);

3. отнимите единицу от получившегося числа.

Теперь у вас есть значение, которое показывает, сколько в миноре должно быть строк и столбцов. Миноров этого порядка может быть несколько. Надо ли их искать все? Все будет зависеть от того, чему будут равны эти миноры. Если мино получился, равный нулю, то надо искать другой минор этого порядка, пока не найдете, отличный от нуля. Возможны два случая:

1. Вы нашли минор, не равный нулю — значит ранг матрицы найден. Ранг — это порядок этого минора. Если в миноре было 2 строки и два столбца, значит ранг матрицы равен 2.

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

Ранг матрицы принято обозначать: r, r(A), rang A.

Давайте на примере рассмотрим как найти ранг матрицы. Я предложу вариант, когда количество строк и столбцов разные:

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

Найдем ее ранг. Начнем искать миноры с порядка 3, т.к. строк в матрице три, а столбцов четыре, минимальное этих чисел — 3.

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

Python: Numpy разделение матрицы

У меня есть матрица формы 4 x 129 . Я пытаюсь сделать горизонтальное разделение, как показано ниже:

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

Я хочу разбить матрицу x на 13 маленьких матриц, где каждый 12-й раскол должен быть размером 4 x 10 , а последний-размером 4 x 9 .

Есть ли какой-нибудь способ сделать это?

3 ответа

  • Симметричные матрицы в numpy?

ПРИВЕТ, Я хочу инициировать симметричную матрицу в python и заполнить ее нулями. На данный момент я инициировал массив известных измерений, но он непригоден для последующего ввода в R в качестве матрицы расстояний. Существуют ли какие-либо методы ‘simple’ в numpy для создания симметричной матрицы.

Для матрицы numpy в python from numpy import matrix A = matrix([[1,2],[3,4]]) Как я могу найти длину строки (или столбца) этой матрицы? Аналогично, как я могу узнать количество строк или столбцов? Пока что единственное решение, которое я нашел, — это: len(A) len(A[:,1]) len(A[1,:]) Который.

Вы можете передать индексы для разделения, и в этом случае вы можете создать их просто с помощью np.arange() :

Читайте так же:
Можно ли заливать полы в хрущевке бетоном

Я не знаю, как это сделать, используя np.hsplit с int в качестве второго параметра, но, оглядываясь вокруг, я нашел способ сделать это, используя массив в качестве параметра.

Способ сделать это был бы :

или в одной строке :

Edit : добавлено -1 при создании массива, чтобы предотвратить создание пустого массива в конце x, когда размер исходного массива кратен размеру подмассива, который мы хотим;

Edit2 : еще один способ создать temp_array-это

Ставлю все в одну строку :

Edit3 : Обнаружена проблема с использованием python3 (тестировался с использованием python2) : результатом деления int может быть float. Используйте // вместо / для деления, чтобы гарантировать, что результат будет int

Пояснение : Я создаю массив (‘splitting_array’) с каждым кратным размеру подмассива, который я хочу, строго между 0 и размером исходного массива.
Затем я разделил исходный массив, используя ‘splitting_array’. Согласно документу для numpy.split, он разделит original_array вдоль горизонтальной оси по индексам, заданным ‘splitting_array’.
Таким образом, в нашем случае original_array будет разделен перед каждым индексом, кратным 10.

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

Разделение означает, что он будет разрезан следующим образом

Вы также можете изменить форму отдельного раскола следующим образом

В приведенном выше примере предположим, что у нас есть только 129 элементов ( не умножая на 4 для простоты), разделение может быть.

В массивах 1-D и split , и hsplit работают аналогичным образом.

Надеюсь, это поможет

Похожие вопросы:

У меня есть матрица m*n numpy типа float. Я собираюсь использовать функцию счетчика (из коллекций) для получения количества определенных комбинаций элементов матрицы. Экспериментируя, я обнаружил.

Я пытаюсь как-то расширить матрицы numpy, которые обычно выглядят так: import numpy as np mtx = np.matrix([[[‘a’,’b’,’c’], [‘x’], 3], [[‘d’,’e’,’f’], [‘y’], 2], [[‘g’,’h’,’i’], [‘z’], 1]]) mtx #.

каков максимальный элемент / случай матрицы numpy или каков максимальный размер матрицы numpy? приведенный выше код возвращает ошибку памяти при переменной матрице size. so от какой окружающей.

ПРИВЕТ, Я хочу инициировать симметричную матрицу в python и заполнить ее нулями. На данный момент я инициировал массив известных измерений, но он непригоден для последующего ввода в R в качестве.

Для матрицы numpy в python from numpy import matrix A = matrix([[1,2],[3,4]]) Как я могу найти длину строки (или столбца) этой матрицы? Аналогично, как я могу узнать количество строк или столбцов.

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

Существуют ли альтернативные или лучшие способы преобразования матрицы numpy в массив python, чем этот? >>> import numpy >>> import array >>> b = numpy.matrix(1.0 2.0 3.0;.

У меня есть две матрицы numpy: name dimensions title (284,855) para (284, 4930) Массив title содержит заголовок страницы, а para содержит содержимое, где первый элемент массива title является.

Читайте так же:
Можно ли word перевести в excel

[python 2.7 и numpy v1.11.1] я смотрю на числа условий матрицы и пытаюсь вычислить число условий для матрицы без использования функции np.linalg.cond() . Основываясь на документации numpy.

Я работаю с Python/Numpy и хотел бы добавить вектор строк в одну строку матрицы, добавив соответствующие элементы и обновив матрицу новой строкой. Например, у меня есть следующий массив numpy A =.

Можно ли делить матрицы

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

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

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

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

Указанная задача появляется при решении матричных уравнений или систем матричных уравнений. При этом все компоненты этих структур — квадратные матрицы одинакового размера. Традиционно эта задача решается посредством нахождения обратной матрицы. Но есть и другой способ решения задачи!

Впервые формулы и правила непосредственного деления квадратных матриц одинакового размера вывел студент Кендюхов В.С. (07-ФАПИ. 2008 г.), под руководством одного из авторов (Часов К.В. [1, с. 46-48]). Необходимо отметить, что небезызвестные формулы Крамера вычисляют лишь неизвестную матрицу-столбец (решение системы n уравнений с n неизвестными), но не матрицу того же порядка, что и основная матрица системы при произведении матриц одного порядка, дающих в результате матрицу того же порядка, что и перемножаемые матрицы. Исследование литературных источников (по высшей алгебре) также не вывило наличия непосредственной операции деления квадратных матриц одинакового размера (кроме формул Крамера с известным ограничением).

Умение нестандартно делить квадратные матрицы одного размера позволяет получить более полное представление об операциях с матрицами и определителями [2, с. 92].

Поэтому авторы поставили перед собой проблему: внедрение в учебный процесс нестандартной методики деления квадратных матриц одного размера (в том числе и n-го порядка) без вычисления обратной, получение формул вычисления элементов неизвестной матрицы как множимого, так и множителя, реализация полученных формул в среде математического редактора MathCAD.

Основными результатами проведённого научного исследования одним из авторов (Колупаев И.А.) являются подтверждение формул вычисления элементов неизвестной матрицы-множимого (или множителя) 2-го, 3-го, . n-го порядков, правил их вычисления, полученных студентом Кендюховым В.С. Кроме того, были впервые получены формулы вычисления матрицы-множимого или множителя с помощью MathCAD.

Читайте так же:
Как в ворде быстро пронумеровать таблицу

При этом нужно отметить, что в среде MathCAD есть только одна операция деления — деления на матрицу-множитель (деление справа) (рис. 1). Но совершенно не представлена операция деления на матрицу-множимое (деление слева).

Рис. 1. Операция деления на матрицу-множитель (деление справа)

Авторами были изучены операции с матрицами в математическом редакторе MathCAD (в частности — рис. 1). Проводя компьютерный эксперимент, были получены соответствующие поставленной задаче формулы поэлементного расчёта искомой матрицы.

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

Ниже (рис. 2) приведены формулы нахождения элементов матрицы, получаемой при делении одной матрицы 2-го порядка на другую.

Рис. 2. Операция деления матрицы на матрицу

В результате вывода по формулам Крамера получаем матрицу-результат (рис. 3).

Рис. 3. Матрица-результат «левого» деления в теории

Далее составляем документ в MathCAD. Несмотря на то, что деление справа присутствует в редакторе (рис. 1), формулы были получены и реализованы (для проверки формул и правил). Для получения формул «левого» деления матриц зададим соответствующие матрицы третьего порядка (рис. 4). Соответствующие формулы и правила для деления матриц второго порядка легко переносятся на матрицы третьего порядка.

Рис. 4. Задание исходных матриц

Затем, используя правило [1, с. 47-48], составляем формулы, вычисляющие соответствующие элементы матрицы. После этого проверяем соответствующие формулы «левого» деления (рис. 5).

 

Рис. 5. Проверка «левого» деления матриц

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

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

1. Кендюхов В.С., Часов К.В. Операция деления матрицы на матрицу (квадратные) // Сборник студенческих работ, отмеченных наградами XIV студенческой научной конференции АМТИ. — Армавир: Изд-во АМТИ, 2008.- Вып.1. — С. 46-48.

2. Часов К.В. Развитие учебной деятельности студентов при обучении математике // Педагогика-XXI: материалы II Международной научно-теоретиче­ской конференции. — Ч.2. — Караганда: ПЦ «Полиграфист», 2011. — С. 90-95.

Примеры действий с матрицами

1) Действие первое. Вынесение минуса из матрицы (внесение минуса в матрицу).

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

Читайте так же:
Как в майкрософт ворд нумеровать страницы

Вынесем минус за пределы матрицы, сменив у КАЖДОГО элемента матрицы знак:

Внесем минус в матрицу, сменив у КАЖДОГО элемента матрицы знак:

2) Действие второе. Умножение матрицы на число.

Всё просто, для того чтобы умножить матрицу на число, нужно каждый элемент матрицы умножить на данное число. В данном случае – на тройку.

Еще один полезный пример:

– умножение матрицы на дробь

Сначала рассмотрим то, чего делать НЕ НАДО:

Вносить дробь в матрицу НЕ НУЖНО. И, тем более, НЕ НАДО делить каждый элемент матрицы на минус семь:

Единственное, что желательно сделать в этом примере – это внести минус в матрицу:

А вот если бы ВСЕ элементы матрицы делились на 7 без остатка, то тогда можно (и нужно!) было бы поделить.

В этом случае можно и НУЖНО умножить все элементы матрицы на , так как все числа матрицы делятся на 2 без остатка.

3) Действие третье. Транспонирование матрицы

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

Пример:
Транспонировать матрицу

Строка здесь всего одна и, согласно правилу, её нужно записать в столбец:

Транспонированная матрица обычно обозначается надстрочным индексом или штрихом справа вверху.

Пошаговый пример:
Транспонировать матрицу

Сначала переписываем первую строку в первый столбец:

Потом переписываем вторую строку во второй столбец:

И, наконец, переписываем третью строку в третий столбец:

Готово. Грубо говоря, транспонировать – это значит повернуть матрицу набок.

4) Действие четвертое. Сумма (разность) матриц.

Сумма матриц действие несложное.
НЕ ВСЕ МАТРИЦЫ МОЖНО СКЛАДЫВАТЬ. Для выполнения сложения (вычитания) матриц, необходимо, чтобы они были ОДИНАКОВЫМИ ПО РАЗМЕРУ.

Например, если дана матрица «два на два», то ее можно складывать только с матрицей «два на два» и никакой другой!

Пример:
Сложить матрицы и

Для того чтобы сложить матрицы, необходимо сложить их соответствующие элементы:

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

Пример:
Найти разность матриц ,

А Целесообразно избавиться от лишних минусов, для этого внесем минус в матрицу :

5) Действие пятое. Умножение матриц.

Чтобы матрицу можно было умножить на матрицу необходимо, чтобы число столбцов матрицы равнялось числу строк матрицы .

Пример:
Можно ли умножить матрицу на матрицу ?

, значит, умножать данные матрицы можно.

А вот если матрицы переставить местами, то, в данном случае, умножение уже невозможно!

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

Как умножить матрицы?

Пример:
Умножить матрицу на матрицу

Умножить матрицу на матрицу

В результате получена так называемая нулевая матрица.

Попробуйте самостоятельно выполнить умножение (правильный ответ ).

Обратите внимание, что ! Это почти всегда так!

Таким образом, переставлять матрицы в произведении нельзя!

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector