Как найти ранг матрицы в эксель
В данной публикации мы рассмотрим определение ранга матрицы, а также методы, с помощью которых его можно найти. Также разберем примеры для демонстрации применения теории на практике.
Определение ранга матрицы
Ранг матрицы – ранг ее системы строк или столбцов. В любой матрице есть ее строчный и столбцовый ранги, которые равны между собой.
Ранг системы строк – это максимальное количество линейно-независимых строк. Аналогичным образом определяется ранг системы столбцов.
Примечания:
-
Ранг нулевой матрицы (обозначается символом “θ“) любого размера равняется нулю.
Нахождение ранга матрицы
Метод окаймляющих миноров
Ранг матрицы равняется максимальному порядку ненулевого минора.
Алгоритм следующий: находим миноры от низших порядков к высоким. Если минор n -го порядка не равняется нулю, а все последующие ( n+1 ) равны 0, значит ранг матрицы равен n .
Пример
Чтобы было понятнее, давайте разберем практический пример и найдем ранг матрицы A ниже, пользуясь методом окаймляющих миноров.
Решение
Мы имеем дело с матрицей 4×4, следовательно, ее ранг не может быть выше 4. Также в матрице присутствуют ненулевые элементы, значит, ее ранг не меньше единицы. Итак, приступим:
1. Начинаем проверять миноры второго порядка. Для начала берем две строки первого и второго столбцов.
Минор равняется нулю.
Следовательно переходим к следующему минору (первый столбец остается, а вместо второго берем третий).
Минор равен 54≠0, следовательно ранг матрицы не меньше двух.
Примечание: Если бы и этот минор оказался равным нулю, мы бы дальше проверили следующие комбинации:
Если требуется, перебор можно аналогичным образом продолжить со строками:
Если бы все миноры второго порядка оказались равными нулю, то ранг матрицы равнялся бы одному.
2. Нам удалось почти сразу найти минор, который нам подходит. Поэтому переходим к минорам третьего порядка.
К найденному минору второго порядка, который дал отличный от нуля результат, добавляем одну строку и один из столбцов, выделенных зеленым цветом (начнем со второго).
Минор оказался равным нулю.
Следовательно меняем второй столбец на четвертый. И со второй попытки нам удается найти минор, не равный нулю, значит ранг матрицы не может быть меньше 3.
Примечание: если бы результат снова оказался равным нулю, вместо второй строки мы бы дальше взяли четвертую и продолжили бы поиски “хорошего” минора.
3. Теперь остается определить миноры четвертого порядка с учетом найденного ранее. В данном случае он один, который совпадает с определителем матрицы.
Минор равняется 144≠0. А это значит, что ранг матрицы A равняется 4.
Приведение матрицы к ступенчатому виду
Ранг ступенчатой матрицы равняется количеству её ненулевых строк. То есть все, что нам нужно сделать – это привести матрицу к соответствующему виду, например, с помощью элементарных преобразований, которые, как мы уже упомянули выше, не меняют ее ранг.
Пример
Найдем ранг матрицы B ниже. Мы не берем слишком сложный пример, т.к. наша основная цель – это просто продемонстрировать применение метода на практике.
Решение
1. Сначала вычтем из второй строки удвоенную первую.
2. Теперь отнимем из третьей строки первую, умноженную на четыре.
Таким образом, мы получили ступенчатую матрицу, в которой количество ненулевых строк равняется двум, следовательно ее ранг, также, равен 2.
Программированию нельзя научить, можно только научится
Главная » Уроки по Численным методам » Урок 12. Ранг матрицы. Вычисление ранга матрицы. Норма матриц
Уровень 1
Задание 1. Найдите ранг матрицы А с помощью Excel.
Рисунок 1. Исходная матрица
Ход решения.
- Первую строку оставляем без изменений. Скопируйте первую строку в ячейки B6:E6.
- Чтобы избежать появления дробей, умножим вторую, третью и четвертую строки на 2. Для этого введите в ячейку B7 формулу =2*B2. Скопируйте эту форму с помощью маркера заполнения в ячейки B7:E9 (Маркер заполнения - небольшой черный квадрат в правом нижнем углу ячейки. При наведении на него курсор принимает вид черного креста.). В результате должна получиться матрица А1 (рис.2).
Рисунок 2. 2-я,3-я,4-я строки умножены на 2.
- Первую строку оставим без изменения (скопируйте в ячейки B11:E11).
- В ячейку B12 внесите формулу =B7+B$6*(-$B7/$B$6). Скопируйте эту формулу в ячейки C12:E14 с помощью маркера заполнения. В итоге имеем матрицу А2 (рис.3)
Рисунок 3. Матрица А2
- Переходим к вычислению матрицы А3. Первую и вторую строки оставляем без изменения. Для этого выделите ячейки B11:E12, нажмите кнопку «Копировать», далее выделите ячейку B16 и в контекстном меню ячейки выберите «Специальная вставка». В открывшемся окне выберите пункт «значения» (рис.4) и нажмите ОК. В результате будут скопированы только значения ячеек, без формул.
Рисунок 4. Специальная вставка
- В ячейку С18 внесите формулу =C$12*(-$C13/$C$12)+C13. Скопируйте эту формулу в ячейки B18:E19 с помощью маркера заполнения. В итоге имеем матрицу А3 (рис.5)
Рисунок 5. Матрица А3
- Поменяйте местами третий и четвертый столбцы (используйте копирование и специальную ставку значений).
Рисунок 6. Матрица А4 - результирующая
Ответ: Базисный минор матрицы А4 стоит в первых трех столбцах и первых трех строках, . Следовательно, r(A)=3.
Рисунок 7. Общий вид листа вычисления
Рисунок 8. Для проверки формул
Уровень 2.
Задание 2. Найти первую норму матрицы А.
Рисунок 11
- Далее нужно взять по модулю все значения матрицы. Для вычисления модуля в Excel используется функция ABS. Запишем результат в матрицу A1. Для этого в ячейку В5 внесите формулу =ABS(B1) и скопируйте ее в диапазон B5:C7 (рис.12)
Рисунок 12.
- Далее нужно вычислить сумму по столбцам. В ячейку B8 введите формулу =СУММ(B5:B7). Скопируйте ее в ячейку C8. В результате вы найдете сумму по двум столбцам (рис.13)
Рисунок 13. Сумма по столбцам
- Далее необходимо найти максимальный элемент из полученных. Для этого в ячейку B9 введите формулу =МАКС(B8:C8). Результат: норма матрицы = 19 (рис.14).
Рисунок 14. Результат
Задание 3: исправляя на листе вычислений, найдите норму матрицы А (рис.15)
Рисунок 15.
Ответ: норма равная 15.
Уровень 3.
Задание 4. Самостоятельно в Excel выполнить вычисления второй и третьей нормы матрицы А (рис.11).
Подсказка: для вычисления корня квадратного используется
Задание 5. Самостоятельно выполнить вычисление ранга матрицы А:
Рисунок 9. Матрица А
Самопроверка: Ответ: ранг матрицы равен 4.
Программированию нельзя научить, можно только научится
Главная » Уроки по Численным методам » Урок 15. Решение СЛУ методом Крамера и методом Гаусса.
Метод Крамера
(СЛУ)
- определитель системы
Если определитель СЛУ отличен от нуля, тогда решение системы определяется однозначно по формулам Крамера:
, , ()
где:
Для этого в столбец, где стоит переменная х, а значит в первый столбец, вместо коэффициентов при х, ставим свободные коэффициенты, которые в системе уравнений стоят в правых частях уравнений | |
| Для этого в столбец, где стоит переменная y (2 столбец), вместо коэффициентов при y, ставим свободные коэффициенты, которые в системе уравнений стоят в правых частях уравнений |
Для этого в столбец, где стоит переменная z, а значит втретий столбец, вместо коэффициентов при z, ставим свободные коэффициенты, которые в системе уравнений стоят в правых частях уравнений |
Задание 1. Решить СЛУ с помощью формул Крамера в Excel
Ход решения
1. Запишем уравнение в матричном виде:
2. Введите матрицу А и В в Excel.
3. Найдите определитель матрицы А. Он должен получится равным 30.
4. Определитель системы отличен от нуля, следовательно - решение однозначно определяется по формулам Крамера.
5. Заполните значения dX, dY, dZ на листе Excel (см.рис.ниже).
6. Для вычисления значений dX, dY, dZ в ячейки F8, F12, F16 необходимо ввести функцию, вычисляющую определитель dX, dY, dZ соответственно.
7. Для вычисления значения X в ячейку I8 необходимо ввести формулу =F8/B5 (по формуле Крамера dX/|A|).
8. Самостоятельно введите формулы для вычисления Y и Z.
Задание 2: самостоятельно найти решение СЛУ методом Крамера:
Формулы Крамера и матричный метод решения систем линейных уравнений не имеют серьезного практического применения, так как связаны с громоздкими выкладками. Практически для решения систем линейных уравнений чаще всего применяется метод Гаусса.
Метод Гаусса
Процесс решения по методу Гаусса состоит из двух этапов.
1. Прямой ход: система приводится к ступенчатому (в частности, треугольному) виду.
Для того чтобы решить систему уравнений выписывают расширенную матрицу этой системы
и над строками этой матрицы производят элементарные преобразования, приводя ее к виду, когда ниже главной диагонали будут располагаться нули.
Разрешается выполнять элементарные преобразования над матрицами.
С помощью этих преобразований каждый раз получается расширенная матрица новой системы, равносильной исходной, т.е. такой системы, решение которой совпадает с решением исходной системы.
2. Обратный ход: идет последовательное определение неизвестных из этой ступенчатой системы.
Пример. Установить совместность и решить систему
Решение.
Прямой ход: Выпишем расширенную матрицу системы и поменяем местами первую и вторую строки для того, чтобы элемент равнялся единице (так удобнее производить преобразования матрицы).
.
Имеем Ранги матрицы системы и ее расширенной матрицы совпали с числом неизвестных. Согласно теореме Кронекера-Капелли система уравнений совместна и решение ее единственно.
Обратный ход: Выпишем систему уравнений, расширенную матрицу которой мы получили в результате преобразований:
Итак, имеем .
Далее, подставляя в третье уравнение, найдем .
Подставляя и во второе уравнение, получим .
Подставляя в первое уравнение найденные получим .
Таким образом, имеем решение системы .
Решение СЛУ методом Гаусса в Excel:
В тексте будет предлагаться ввести в диапазон ячеек формулу вида: и т.п., это так-называемые «формулы массива». Microsoft Excel автоматически заключает ее в фигурные скобки ( < >). Для введения такого типа формул необходимо выделить весь диапазон, куда нужно вставить формулу, в первой ячейке ввести формулу без фигурных скобок (для примера выше – =A1:B3+$C$2:$C$3) и нажать Ctrl+Shift+Enter.
Пускай имеем систему линейных уравнений:
1. Запишем коэффициенты системы уравнений в ячейки A1:D4 а столбец свободных членов в ячейки E1:E4. Если в ячейке A1 находится 0, необходимо поменять строки местами так, чтоб в этой ячейке было отличное от ноля значение. Для большей наглядности можно добавить заливку ячеек, в которых находятся свободные члены.
2. Необходимо коэффициент при x1 во всех уравнениях кроме первого привести к 0. Для начала сделаем это для второго уравнения. Скопируем первую строку в ячейки A6:E6 без изменений, в ячейки A7:E7 необходимо ввести формулу: <=A2:E2-$A$1:$E$1*(A2/$A$1)>. Таким образом мы от второй строки отнимаем первую, умноженную на A2/$A$1, т.е. отношение первых коэффициентов второго и первого уравнения. Для удобства заполнения строк 8 и 9 ссылки на ячейки первой строки необходимо использовать абсолютные (используем символ $).
3. Копируем введенную формулу формулу в строки 8 и 9, таким образом избавляемся от коэффициентов перед x1 во всех уравнениях кроме первого.
5. Осталось привести коэффициент при x3 в четвертом уравнении к 0, для этого вновь проделаем аналогичные действия: скопируем полученные 11, 12 и 13-ю строки (только значения) в строки 16-18, а в ячейки A19:E19 введем формулу <=A14:E14-$A$13:$E$13*(C14/$C$13)>. Таким образом реализуется разность строк 14 и 13, умноженных на коэффициент C14/$C$13. Не забываем проводить перестановку строк, чтоб избавиться от 0 в знаменателе дроби.
6. Прямая прогонка методом Гаусса завершена. Обратную прогонку начнем с последней строки полученной матрицы. Необходимо все элементы последней строки разделить на коэффициент при x4. Для этого в строку 24 введем формулу .
7. Приведем все строки к подобному виду, для этого заполним строки 23, 22, 21 следующими формулами:
23: – отнимаем от третьей строки четвертую умноженную на коэффициент при x4 третьей строки.
22: – от второй строки отнимаем третью и четвертую, умноженные на соответствующие коэффициенты.
21: – от первой строки отнимаем вторую, третью и четвертую, умноженные на соответствующие коэффициенты.
Результат (корни уравнения) вычислены в ячейках E21:E24.
Число — число, для которого определяется ранг.
Нечисловые значения в ссылке игнорируются. Числам, сохраненным в текстовом формате, ранг также не присваивается, функция воспринимает их как текст.
Порядок — число, определяющее способ упорядочения.
- Если порядок равен 0 (нулю) или опущен, то MS EXCEL присваивает ранг=1 максимальному числу, меньшим значениям присваиваются б о льшие ранги.
- Если порядок — любое ненулевое число, то то MS EXCEL присваивает ранг=1 минимальному числу, б о льшим значениям присваиваются б о льшие ранги.
Примечание : Начиная с MS EXCEL 2010 для вычисления ранга также используются функции РАНГ.СР() и РАНГ.РВ() . Последняя функция аналогична РАНГ() .
Определяем ранг в списке без повторов
Если список чисел находится в диапазоне A7:A11 , то формула =РАНГ(A7;$A$7:$A$11) определит ранг числа из ячейки А7 (см. файл примера ).
Т.к. аргумент порядок опущен, то MS EXCEL присвоил ранг=1 максимальному числу (50), а максимальный ранг (5 = количеству значений в списке) - минимальному (10).
Альтернативный вариант: =СЧЁТЕСЛИ($A$7:$A$11;">"&A7)+1
В столбце С приведена формула =РАНГ(A7;$A$7:$A$11;1) с рангом по возрастанию, ранг=1 присвоен минимальному числу. Альтернативный вариант: =СЧЁТЕСЛИ($A$7:$A$11;"
Если исходный список отсортировать , то ранг числа будет его позицией в списке.
Ранг по условию
Если список состоит из значений, относящихся к разным группам (например, к разным маркам машин), то ранг можно вычислить не только относительно всей совокупности данных, но и относительно данных каждой отдельной группы.
В файле примера ранг по условию (условием является принадлежность значения к групп) вычислен с помощью формулы:
В столбце А содержатся названия группы, в столбце В - значения.
Связь функций НАИБОЛЬШИЙ() / НАИМЕНЬШИЙ() и РАНГ()
Функции НАИБОЛЬШИЙ() и РАНГ() являются взаимодополняющими в том смысле, что записав формулу =НАИБОЛЬШИЙ($A$7:$A$11;РАНГ(A7;$A$7:$A$11)) мы получим тот же исходный массив A7:A11 .
Определяем ранг в списке с повторами
Если список содержит повторы , то повторяющимся значениям (выделено цветом) будет присвоен одинаковый ранг (максимальный, если использована функция РАНГ() или РАНГ.РВ() ) или среднее значение, если РАНГ.СР() ). Наличие повторяющихся чисел влияет на ранги последующих чисел. Например, если в списке целых чисел, отсортированных по возрастанию, дважды встречается число 10, имеющее ранг 5, число 11 будет иметь ранг 7 (ни одно из чисел не будет иметь ранга 6).
Иногда это не удобно и требуется, чтобы ранги не повторялись (например, при определении призовых мест, когда нельзя занимать нескольким людям одно место).
В этом нам поможет формула =РАНГ(A37;A$37:A$44)+СЧЁТЕСЛИ(A$37:A37;A37)-1
Предполагается, что исходный список с числами находится в диапазоне А37:А44 .
Примечание . В MS EXCEL 2010 добавилась функция РАНГ.РВ(число;ссылка;[порядок]) Если несколько значений имеют одинаковый ранг, возвращается наивысший ранг этого набора значений (присваивает повторяющимся числам одинаковые значения ранга). В файле примера дается пояснение работы этой функции. Также добавилась функция РАНГ.СР(число;ссылка;[порядок]) Если несколько значений имеют одинаковый ранг, возвращается среднее.
Массив рангов
Для построения некоторых сложных формул массива может потребоваться массив рангов, т.е. тот же набор рангов, но в одной ячейке.
Как видно из картинки выше, значения из диапазона В60:В67 и в ячейке D60 совпадают. Такой массив можно получить с помощью формулы =РАНГ(A60:A67;A60:A67) или с помощью формулы =СЧЁТЕСЛИ(A60:A67;">"&A60:A67)+1
Ранги по возрастанию можно получить с помощью формулы =РАНГ(A60:A67;A60:A67;1) или =СЧЁТЕСЛИ(A60:A67;" .
Определитель матрицы (det) можно вычислить только для квадратных матриц, т.е. у которых количество строк равно количеству столбцов.
Для вычисления определителя в MS EXCEL есть специальная функция МОПРЕД() . В аргументе функции необходимо указать ссылку на диапазон ячеек (массив), содержащий элементы матрицы (см. файл примера ).
Массив может быть задан не только как интервал ячеек, например A7:B8 , но и как массив констант , например =МОПРЕД() . Запись с использованием массива констант позволяет не указывать элементы в отдельных ячейках, а разместить их в ячейке вместе с функцией. Массив в этом случае указывается по строкам: например, сначала первая строка 5;4, затем через двоеточие записывается следующая строка 3;2. Элементы отделяются точкой с запятой.
Ссылка на массив также может быть указана как ссылка на именованный диапазон .
В файле примера для матрицы 3 х 3 определитель также вычислен через разложение по столбцу и по правилу Саррюса.
Свойства определителя
Теперь о некоторых свойствах определителя (см. файл примера ):
- Определитель транспонированной матрицы равен определителю исходной матрицы
- Если в матрице все элементы хотя бы одной из строк (или столбцов) нулевые, определитель такой матрицы равен нулю
- Если переставить местами две любые строки (столбца), то определитель полученной матрицы будет противоположен исходному (то есть, изменится знак)
- Если все элементы одной из строк (столбца) умножить на одно и тоже число k, то определитель полученной матрицы будет равен определителю исходной матрицы, умноженному на k
- Если матрица содержит строки (столбцы), являющиеся линейной комбинацией других строк (столбцов), то определитель =0
- det(А)=1/det(А -1 ), где А -1 - матрица обратная матрице А (А - квадратная невырожденная матрица).
Вычисление определителя матрицы по определению (до 6 порядка включительно)
СОВЕТ : Этот раздел стоит читать только продвинутым пользователям MS EXCEL. Кроме того материал представляет только академический интерес, т.к. есть функция МОПРЕД() .
Как было показано выше для вычисления матриц порядка 2 и 3 существуют достаточно простые формулы и правила. Для вычисления определителя матриц более высокого порядка (без использования функции МОПРЕД() ) придется вспомнить определение:
Определителем квадратной матрицы порядка n х n является сумма, содержащая n! слагаемых ( =ФАКТР(n) ). Каждое слагаемое представляет собой произведение n элементов матрицы, причем в каждом произведении содержится элемент из каждой строки и из каждого столбца матрицы А . Перед k-ым слагаемым появляется коэффициент (-1) , если элементы матрицы А в произведении упорядочены по номеру строки, а количество инверсий в k-ой перестановке множества номеров столбцов нечетно.
где ( α 1 , α 2 . α n ) - перестановка чисел от 1 до n , N( α 1 , α 2 . α n ) - число инверсий в перестановке , суммирование идёт по всем возможным перестановкам порядка n .
Попытаемся разобраться в этом непростом определении на примере матрицы 3х3.
Для матрицы 3 х 3, согласно определения, число слагаемых равно 3!=6, а каждое слагаемое состоит из произведения 3-х элементов матрицы. Ниже приведены все 6 слагаемых, необходимых для вычисления определителя матрицы 3х3:
- а21*а12*а33
- а21*а32*а13
- а11*а32*а23
- а11*а22*а33
- а31*а22*а13
- а31*а12*а23
а21, а12 и т.д. - это элементы матрицы. Теперь поясним, как были сформированы индексы у элементов, т.е. почему, например, есть слагаемое а11*а22*а33, а нет а11*а22*а13.
Посмотрим на формулу выше (см. определение). Предположим, что второй индекс у каждого элемента матрицы (от 1 до n) соответствует номеру столбца матрицы (хотя это может быть номер строки (это не важно т.к. определители матрицы и ее транспонированной матрицы равны). Таким образом, второй индекс у первого элемента в произведении всегда равен 1, у второго - 2, у третьего 3. Тогда первые индексы у элементов соответствуют номеру строки и, в соответствии с определением, должны определяться из перестановок чисел от 1 до 3, т.е. из перестановок множества (1, 2, 3).
Теперь понятно, почему среди слагаемых нет а11*а22*а13, т.к. согласно определения ( в каждом произведении содержится элемент из каждой строки и из каждого столбца матрицы А ), а в нашем слагаемом нет элемента из строки 3.
Примечание : Перестановкой из n чисел множества (без повторов) называется любое упорядочивание данного множества, отличающиеся друг от друга лишь порядком входящих в них элементов. Например, дано множество их 3-х чисел: 1, 2, 3. Из этих чисел можно составить 6 разных перестановок: (1, 2, 3), (1, 3, 2), (2, 3, 1), (2, 1, 3), (3, 1, 2), (3, 2, 1). См. статью Перестановки без повторений: Комбинаторика в MS EXCEL
Число перестановок множества из 3-х чисел =3!=6 (что, конечно, равно числу слагаемых в выражении для расчета определителя, т.к. каждому слагаемому соответствует своя перестановка). Для матрицы 3х3 все перестановки приведены в примечании выше. Можно убедиться, что в каждом слагаемом первые индексы у элементов равны соответствующим числам в перестановке. Например, для слагаемого а21*а12*а33 использована перестановка (2, 1, 3).
СОВЕТ : Для матрицы 4 порядка существует 4! перестановок, т.е. 26, что соответствует 26 слагаемым, каждое из которых является произведением различных 4-х элементов матрицы. Все 26 перестановок можно найти в статье Перебор всех возможных Перестановок в MS EXCEL .
Теперь, когда разобрались со слагаемыми, определим множитель перед каждым слагаемым (он может быть +1 или -1). Множитель определяется через четность числа инверсий соответствующей перестановки.
Примечание : Об инверсиях перестановок (и четности числа инверсий) можно почитать, например, в статье Перестановки без повторений: Комбинаторика в MS EXCEL
Например, первому слагаемому соответствует перестановка (2, 1, 3), у которой 1 инверсия (нечетное число) и, соответственно, -1 в степени 1 равно -1. Второму слагаемому соответствует перестановка (2, 3, 1), у которой 2 инверсии (четное число) и, соответственно, -1 в степени 2 равно 1 и т.д.
Сложив все слагаемые: (-1)*(а21*а12*а33)+(+1)*(а21*а32*а13)+(-1)*(а11*а32*а23)+(+1)*(а11*а22*а33)+(-1)*(а31*а22*а13)+(+1)*(а31*а12*а23) получим значение определителя.
В файле примера на листе 4+, и зменяя порядок матрицы с помощью элемента управления Счетчик , можно вычислить определитель матрицы до 6 порядка включительно.
Следует учитывать, что при вычислении матрицы 6-го порядка в выражении используется уже 720 слагаемых (6!). Для 7-го порядка пришлось бы сделать таблицу для 5040 перестановок и, соответственно, вычислить 5040 слагаемых! Т.е. без использования МОПРЕД() не обойтись (ну, или можно вычислить определитель вручную методом Гаусса).
Читайте также: