Знакомство с матрицами
Знакомимся с вектором Операции с векторами Векторы: третий уровень сложности
Знакомство с матрицами

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

  • Век­тор — это про­сто груп­па из несколь­ких чисел, выстро­ен­ных в опре­де­лён­ной после­до­ва­тель­но­сти. Напри­мер, рост и вес чело­ве­ка мож­но пред­ста­вить как век­тор (172, 80). Ниче­го сложного. 
  • У век­то­ра может быть внут­ри сколь­ко угод­но чисел. Глав­ное — что­бы мы дого­во­ри­лись, что для нас зна­чат эти чис­ла, и не меня­ли их места­ми про­сто так, произвольно. 
  • Век­то­ры мож­но скла­ды­вать, вычи­тать, умно­жать. Это чуть слож­нее, чем с обыч­ны­ми числами. 
  • У век­то­ра есть поня­тие линей­ной зави­си­мо­сти. Гру­бо гово­ря — парал­лель­ны друг дру­гу век­то­ры или нет. От это­го зави­сит, какие опе­ра­ции мож­но делать с эти­ми векторами. 

Век­тор — это «кир­пи­чик» линей­ной алгеб­ры. На его осно­ве мы пере­хо­дим к поня­тию матрицы. 

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

Если век­тор — это стро­ка с чис­ла­ми в опре­де­лён­ном поряд­ке, то мат­ри­ца — это таб­ли­ца с чис­ла­ми в опре­де­лён­ном поряд­ке. Как у любой таб­ли­цы, у мат­ри­цы есть столб­цы и стро­ки. В них сидят какие-то чис­ла. Всё вме­сте — это мате­ма­ти­че­ский объ­ект, то есть в каких-то слу­ча­ях всю эту таб­ли­цу мож­но рас­смат­ри­вать как еди­ное целое и совер­шать с ним операции. 

Мат­ри­цы при­ня­то обо­зна­чать боль­ши­ми бук­ва­ми латин­ско­го алфа­ви­та вро­де А, В, С, D и так далее. 

Чис­ла внут­ри мат­ри­цы назы­ва­ют эле­мен­та­ми. Каж­дый эле­мент обо­зна­ча­ет­ся дву­мя циф­ра­ми: пер­вая циф­ра ука­зы­ва­ет на стро­ку, а вто­рая — на стол­бец. Это адрес чис­ла внут­ри мат­ри­цы. Напри­мер, эле­мент А₂₃ озна­ча­ет, что нуж­ное чис­ло нахо­дит­ся во вто­рой стро­ке и тре­тьем столб­це. Нуме­ра­ция эле­мен­тов нуж­на для запи­си фор­мул и уст­но­го объ­яс­не­ния того, где нахо­дит­ся нуж­ное чис­ло в матрице. 

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

В этой ста­тье и в сле­ду­ю­щих мате­ри­а­лах мы будем рас­смат­ри­вать раз­ные виды мат­ри­цы и посте­пен­но изу­чим их особенности.

Общая схема матрицы Общая схе­ма матрицы 
Пример квадратной матрицы с пятью строками и столбцами При­мер квад­рат­ной мат­ри­цы с пятью стро­ка­ми и столб­ца­ми. Запи­сы­ва­ет­ся как мат­ри­ца раз­ме­ра 5×5. В чис­ло­вой мат­ри­це мы не нуме­ру­ем эле­мен­ты — они закреп­ля­ют­ся за чис­ла­ми по умол­ча­нию. Напри­мер, эле­мен­ту А₂₃ соот­вет­ству­ет чис­ло три 

Простые операции с матрицами

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

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

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

Умно­же­ние мат­ри­цы на чис­ло. Для умно­же­ния мат­ри­цы на чис­ло доста­точ­но каж­дый эле­мент мат­ри­цы умно­жить на это число.

Пример умножения матрицы на число При­мер умно­же­ния мат­ри­цы на число 

Транс­по­ни­ро­ва­ние мат­ри­цы. Это опе­ра­ция, кото­рая поз­же нам пона­до­бит­ся для реше­ния мат­рич­ных урав­не­ний. Для транс­по­ни­ро­ва­ния мы берём извест­ную мат­ри­цу, меня­ем в ней места­ми стро­ки со столб­ца­ми и полу­ча­ем новую мат­ри­цу. Как бы поста­ви­ли мат­ри­цу набок. 

⚠️ При этом в мат­ри­це запре­ще­но в про­из­воль­ном поряд­ке менять эле­мен­ты. Зато мож­но пол­но­стью менять места­ми стро­ки или столб­цы. Если мы поме­ня­ем места­ми первую и вто­рую стро­ку, то это оста­нет­ся преж­няя матрица.

Схема транспонирования матриц Схе­ма транс­по­ни­ро­ва­ния мат­риц: пер­вая стро­ка пере­хо­дит в пер­вый стол­бец, вто­рая стро­ка — во вто­рой стол­бец и так далее в зави­си­мо­сти от коли­че­ства эле­мен­тов матрицы 
Пример транспонирования При­мер транс­по­ни­ро­ва­ния. Транс­по­ни­ро­ван­ная мат­ри­ца обо­зна­ча­ет­ся бук­вой той же мат­ри­цы, из кото­рой она полу­чи­лась + над­стро­чеч­ный индекс в виде печат­ной бук­вы «Т»
Матрицу можно перетасовывать, но это нужно делать по правилам Мат­ри­цу мож­но пере­та­со­вы­вать, но это нуж­но делать по пра­ви­лам. Транс­по­ни­ро­ва­ние — одно из таких правил 

Сложение и вычитание матриц

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

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

Умножение матриц 

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

Пошаговое умножение матрицы

  1. У нас есть две мат­ри­цы A и B. Их нуж­но пере­мно­жить, что­бы полу­чить новую мат­ри­цу C. 
  2. Раз­мер мат­ри­цы A два на два: есть две стро­ки и два столб­ца. Пер­вая стро­ка состо­ит из эле­мен­тов А₁₁ и А₁₂; вто­рая — А₂₁ и А₂₂. 
  3. У мат­ри­цы B такая же раз­мер­ность: есть две стро­ки и два столб­ца. Пер­вая стро­ка состо­ит из эле­мен­тов B₁₁ и B₁₂; вто­рая — B₂₁ и B₂₂. 
  4. У нас две оди­на­ко­вые по раз­ме­ру мат­ри­цы с дву­мя стро­ка­ми и столб­ца­ми. Это зна­чит, что и мат­ри­ца C будет раз­ме­ром два на два. Пер­вая стро­ка будет состо­ять из эле­мен­тов C₁₁ и C₁₂; вто­рая — C₂₁ и C₂₂. 
  5. Счи­та­ем эле­мент C₁₁. Умно­жа­ем пер­вый эле­мент пер­вой стро­ки мат­ри­цы А (А₁₁) на пер­вый эле­мент пер­во­го стол­би­ка мат­ри­цы B (B₁₁). Это пер­вая часть, после кото­рой ста­вим знак плюс. Вто­рая часть: умно­жа­ем вто­рой эле­мент пер­вой строч­ки мат­ри­цы А (А₁₂) на вто­рой эле­мент пер­во­го стол­би­ка мат­ри­цы B (B₂₁). Скла­ды­ва­ем обе части и полу­ча­ем пер­вый эле­мент пер­вой стро­ки мат­ри­цы С (C₁₁). 
  6. Счи­та­ем эле­мент C₁₂. Умно­жа­ем пер­вый эле­мент пер­вой стро­ки мат­ри­цы А (А₁₁) на пер­вый эле­мент вто­ро­го стол­би­ка мат­ри­цы B (B₁₂). Это пер­вая часть. Вто­рая часть: умно­жа­ем вто­рой эле­мент пер­вой строч­ки мат­ри­цы А (А₁₂) на вто­рой эле­мент вто­ро­го стол­би­ка мат­ри­цы B (B₂₂). Скла­ды­ва­ем части и полу­ча­ем вто­рой эле­мент пер­вой стро­ки мат­ри­цы С (C₁₂). 
  7. Счи­та­ем эле­мент C₂₁. Умно­жа­ем пер­вый эле­мент вто­рой стро­ки мат­ри­цы А (А₂₁) на пер­вый эле­мент пер­во­го стол­би­ка мат­ри­цы B (B₁₁). Это пер­вая часть. Вто­рая часть: умно­жа­ем вто­рой эле­мент вто­рой стро­ки мат­ри­цы А (А₂₂) на вто­рой эле­мент пер­во­го стол­би­ка мат­ри­цы B (B₂₁). Скла­ды­ва­ем части и полу­ча­ем пер­вый эле­мент вто­рой стро­ки мат­ри­цы С (C₂₁). 
  8. Счи­та­ем эле­мент C₂₂. Умно­жа­ем пер­вый эле­мент вто­рой стро­ки мат­ри­цы А (А₂₁) на пер­вый эле­мент вто­ро­го стол­би­ка мат­ри­цы B (B₁₂). Это пер­вая часть. Вто­рая часть: умно­жа­ем вто­рой эле­мент вто­рой стро­ки мат­ри­цы А (А₂₂) на вто­рой эле­мент вто­ро­го стол­би­ка мат­ри­цы B (B₂₂). Скла­ды­ва­ем части и полу­ча­ем вто­рой эле­мент вто­рой стро­ки мат­ри­цы С (C₂₂). 

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

Формула умножения матриц Фор­му­ла умно­же­ния матриц 
Пример умножения квадратных матриц размерностью 2×2 При­мер умно­же­ния квад­рат­ных мат­риц раз­мер­но­стью 2×2

Что дальше 

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

Текст:

Алек­сандр Бабаскин

Редак­ту­ра:

Мак­сим Ильяхов

Худож­ник:

Даня Бер­ков­ский

Кор­рек­тор:

Ири­на Михеева

Вёрст­ка:

Мария Дро­но­ва

Соц­се­ти:

Олег Веш­кур­цев