Skip to content

ifanzilka/c-matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

c-matrix

ΠŸΡ€ΠΈ стартС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ просим вас ΠΏΠΎΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ Ρ…Ρ€ΠΎΠ½ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ просим вас ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° вопроса Π² этом опросС

РСализация Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ matrix.h.

Contents

  1. Chapter I
    1.1. Introduction
  2. Chapter II
    2.1. Information
  3. Chapter III
    3.1. Part 1

Chapter I

matrix

ΠŸΠ»Π°Π½Π΅Ρ‚Π° ЗСмля, БША, ΡˆΡ‚Π°Ρ‚ ВСхас, ΠΎΠΊΡ€ΡƒΠ³ Даллас, ΠœΡΡ‚ΡŒΡŽ стрит 1703, 13 сСнтября 2000 Π³ΠΎΠ΄.

-- ВсС ΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡ΡƒΠ΄Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΡ€ΠΎΠ΄Π½Ρ‹ΠΉ Π΄ΠΎΠΌ Ρƒ нашСго CEO, Π΅ΡΡ‚ΡŒ всС для воплощСния ΠΈΠ΄Π΅ΠΉ! ΠžΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ бассСйн Π½Π° Π»ΡƒΠΆΠ°ΠΉΠΊΠ΅ ΠΈ Π²Π΅Ρ€Π°Π½Π΄Π° с Π²ΠΈΠ΄ΠΎΠΌ Π½Π° Π½Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ большС Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠ±Ρ€Π°Π· ΡƒΠ²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ ΡƒΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.

- Π”Π°, ΡΠΎΠ³Π»Π°ΡˆΡƒΡΡŒ, ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄, Ρ‡Ρ‚ΠΎ нас сюда пригласили, ΠΎΡ‡Π΅Π½ΡŒ энСргичноС мСсто!

-- БСзусловно! И Ρ‚Π°ΠΊ, Π²ΠΎΡ‚ ΡƒΠΆΠ΅ нСсколько Π΄Π½Π΅ΠΉ Π² Π½Π΅ΠΌ главная тСхничСская ΠΊΠΎΠΌΠ°Π½Π΄Π° id Software обсуТдаСт Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±Ρ‹ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² нашСй Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ³Ρ€Π΅ Doom 3. Π§Ρ‚ΠΎ большС всСго создаСт ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ? ЕстСствСнно ΠΈΠ³Ρ€Π° свСта ΠΈ Ρ‚Π΅Π½Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСйчас Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ слишком Π΄ΠΎΠ»Π³ΠΎ, сильно нагруТая Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ процСссор. Π”ΠΆΠΎΠ½ извСстСн своими тСхнологичСскими ΠΈ алгоритмичСскими идСями ΠΈ Ρ‚Ρ€ΡŽΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяли Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΡΡƒΠΌΠ°ΡΡˆΠ΅Π΄ΡˆΠΈΡ… ΠΏΡ€ΠΎΡ€Ρ‹Π²ΠΎΠ² Π² быстродСйствии ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°.
О Ρ‡Π΅ΠΌ это я... Нашим Π³Π»Π°Π²Π½Ρ‹ΠΌ тСхничСским спСциалистом ΠΈ основатСлСм ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π”ΠΆΠΎΠ½ΠΎΠΌ ΠšΠ°Ρ€ΠΌΠ°ΠΊΠΎΠΌ Π±Ρ‹Π»Π° прСдставлСна тСорСтичСская Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, которая Π±Ρ‹ позволяла Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅Π½ΠΈ Π½Π° сцСнС послС прохоТдСния всСго графичСского ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΡƒΡ„Π΅Ρ€ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ ΠΈ Ρ‚Ρ€Π°Ρ„Π°Ρ€Π΅Ρ‚Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€.

- ΠžΡ… ΠΊΠ°ΠΊ, Ρƒ мСня ΠΌΡƒΡ€Π°ΡˆΠΊΠΈ ΠΏΠΎ ΠΊΠΎΠΆΠ΅, расскаТитС ΠΆΠ΅ ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅!

-- ΠœΡ‹ вас пригласили Π½Π° эту Π²Π΅Ρ‡Π΅Ρ€ΠΈΠ½ΠΊΡƒ Π½Π΅ случайно, вся ΠΊΠΎΠΌΠ°Π½Π΄Π° трудится Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ построСния Ρ‚Π΅Π½Π΅ΠΉ Π² сцСнС, ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ваш ΠΎΡ‚Π΄Π΅Π» Π±Ρ‹Π» Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π”ΠΆΠΎΠ½ΠΎΠΌ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ быстрой ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ всСвозмоТных ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ вся матСматичСская Π»ΠΎΠ³ΠΈΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π’Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, транспонированиС ΠΈ SRT ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ матСматичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅. Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²Π½ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, отвСтствСнныС Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π»ΠΈΡ‡Π½ΠΎ Π²Ρ‹!

- Π― ΠΈ моя ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ, ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ ΡƒΠΆΠ΅ Π·Π°Π²Ρ‚Ρ€Π°!

-- ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! ΠšΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ для свСта ΠΈ Ρ‚Π΅Π½Π΅ΠΉ достаточно Π±ΡƒΠ΄Π΅Ρ‚ просто ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π»ΡƒΡ‡ΠΈ... Π° ΠΏΠΎΠΊΠ° ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ тСхнологиями своСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ, Π²ΠΏΠ΅Ρ€Π΅Π΄! И Π΄Π°, Π½Π΅ смСйтС ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΄Π΅Π΄Π»Π°ΠΉΠ½Ρ‹, ΠΎΠ½ этого Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚

Introduction

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π’Π°ΠΌ прСдстоит Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свою Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ числовых ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π½Π° языкС программирования Π‘ΠΈ. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для прСдставлСния Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, для Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° прСдполагаСтся Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ знакомство с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ структурного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

Chapter II

Information

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠ°Ρ справка

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ упоминания ΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°Ρ… (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… Ρ‚ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ - "Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹Ρ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°Ρ…") Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π½Π° Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΄Ρ€Π΅Π²Π½Π΅Π³ΠΎ ΠšΠΈΡ‚Π°Ρ.
Бвою ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π² сСрСдинС XVIII Π²Π΅ΠΊΠ° благодаря Ρ‚Ρ€ΡƒΠ΄Ρƒ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Габриэля ΠšΡ€Π°ΠΌΠ΅Ρ€Π°, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ свой Ρ‚Ρ€ΡƒΠ΄ - "Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°Π½Π°Π»ΠΈΠ· алгСбраичСских ΠΊΡ€ΠΈΠ²Ρ‹Ρ…", Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ описывался ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ систСм Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ.
ВскорС послС Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠšΠ°Ρ€Π»Π° Π€Ρ€ΠΈΠ΄Ρ€ΠΈΡ…Π° Гаусса ΠΎ "классичСском" ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ, Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ° Π“Π°ΠΌΠΈΠ»ΡŒΡ‚ΠΎΠ½Π°-КСли, Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠšΠ°Ρ€Π»Π° Π’Π΅ΠΉΠ΅Ρ€ΡˆΡ‚Ρ€Π°ΡΡΠ°, Π“Π΅ΠΎΡ€Π³Π° ЀробСниуса ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΡƒΡ‡Π΅Π½Ρ‹Ρ….
И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² 1850 Π³ΠΎΠ΄Ρƒ ДТСймс Π”ΠΆΠΎΠ·Π΅Ρ„ Π‘ΠΈΠ»ΡŒΠ²Π΅ΡΡ‚Ρ€ Π² своСй Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ "ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°".

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° - это Π½Π°Π±ΠΎΡ€ чисСл, располоТСнных Π² фиксированном количСствС строк ΠΈ столбцов.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° A - ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° чисСл, располоТСнных Π² m строках ΠΈ n столбцах

    1 2 3
A = 4 5 6
    7 8 9
     1  2  3  4
Π’ =  5  6  7  8
     9 10 11 12

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ элСмСнт ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ индСксов, Ρ‚Π°ΠΊ A[1,1] = 1, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс - Π½ΠΎΠΌΠ΅Ρ€ строки, Π²Ρ‚ΠΎΡ€ΠΎΠΉ - Π½ΠΎΠΌΠ΅Ρ€ столбца.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° А Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ элСмСнты с ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ индСксами:

    (1,1) (1,2) (1,3)
A = (2,1) (2,2) (2,3)
    (3,1) (3,2) (3,3)

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ β€” это число Π΅Π΅ строк ΠΈΠ»ΠΈ столбцов.
Главная диагональ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ β€” это диагональ, идущая ΠΈΠ· Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π² ΠΏΡ€Π°Π²Ρ‹ΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡƒΠ³ΠΎΠ».
ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° (Π’) β€” это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ число строк Π½Π΅ Ρ€Π°Π²Π½ΠΎ числу столбцов.
ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° (А) β€” это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ число строк Ρ€Π°Π²Π½ΠΎ числу столбцов.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°-столбСц β€” это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всСго ΠΎΠ΄ΠΈΠ½ столбСц:

    (1,1)
A = (2,1)
    (n,1)

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°-строка β€” это ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всСго ΠΎΠ΄Π½Π° строка:

A = (1,1) (1,2) (1,m)

Tip: ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ-столбСц ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ-строку Π΅Ρ‰Ρ‘ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ.

Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” это квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС элСмСнты, ΠΊΡ€ΠΎΠΌΠ΅, Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚, стоящих Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.
Единичная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” это диагональная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Ρ€Π°Π²Π½Ρ‹ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅:

    1 0 0
A = 0 1 0
    0 0 1

Π’Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° β€” это квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС элСмСнты, располоТСнныС ΠΏΠΎ ΠΎΠ΄Π½Ρƒ сторону Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

    1 2 3
A = 0 4 5
    0 0 6

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° языкС C:

typedef struct matrix_struct {
    double** matrix;
    int rows;
    int columns;
} matrix_t;

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ

ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΊΡ€ΠΎΠΌΠ΅ сравнСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

  • 0 - OK
  • 1 - Ошибка, нСкоррСктная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°
  • 2 - Ошибка вычислСния (Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†; ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ нСльзя провСсти вычислСния ΠΈ Ρ‚.Π΄.)

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (create_matrix)

matrix_t*   c_create_matrix(const int rows, const int columns);

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (remove_matrix)

void s21_remove_matrix(matrix_t *A);

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (eq_matrix)

#define SUCCESS 1
#define FAILURE 0

int s21_eq_matrix(matrix_t *A, matrix_t *B);

Π”Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A, B ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ |A = B|, Ссли ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Ρ€Π°Π²Π½Ρ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈ всСх i, j A(i,j) = B(i,j).

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 7 Π·Π½Π°ΠΊΠ° послС запятой Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (sum_matrix) ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (sub_matrix)

matrix_t*   c_sum_matrix(matrix_t *A, matrix_t *B);
matrix_t*   c_sub_matrix(matrix_t *A, matrix_t *B);

Π‘ΡƒΠΌΠΌΠΎΠΉ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† A = m Γ— n ΠΈ B = m Γ— n ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° C = m Γ— n = A + B Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ равСнствами C(i,j) = A(i,j) + B(i,j).

Π Π°Π·Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† A = m Γ— n ΠΈ B = m Γ— n ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° C = m Γ— n = A - B Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ равСнствами C(i,j) = A(i,j) - B(i,j).

            1 2 3   1 0 0   2 2 3
Π‘ = A + B = 0 4 5 + 2 0 0 = 2 4 5
            0 0 6   3 4 1   3 4 7

Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° число (mult_number). Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (mult_matrix)

matrix_t*   c_mult_number(matrix_t *A, double number);
matrix_t*   c_mult_matrix(matrix_t *A, matrix_t *B);

ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A = m Γ— n Π½Π° число Ξ» называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° B = m Γ— n = Ξ» Γ— A, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ равСнствами B = Ξ» Γ— A(i,j).

                1 2 3   2 4 6   
B = 2 Γ— A = 2 Γ— 0 4 2 = 0 8 4 
                2 3 4   4 6 8   

ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A = m Γ— k Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ B = k Γ— n называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° C = m Γ— n = A Γ— B Ρ€Π°Π·ΠΌΠ΅Ρ€Π° m Γ— n, элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ равСнством C(i,j) = A(i,1) Γ— B(1,j) + A(i,2) Γ— B(2,j) + … + A(i,k) Γ— B(k,j).

            1 4    1 -1  1    9 11 17   
C = A Γ— B = 2 5  Γ— 2  3  4 = 12 13 22 
            3 6              15 15 27

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π‘ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

C(1,1) = A(1,1) Γ— B(1,1) + A(1,2) Γ— B(2,1) = 1 Γ— 1 + 4 Γ— 2 = 1 + 8 = 9
C(1,2) = A(1,1) Γ— B(1,2) + A(1,2) Γ— B(2,2) = 1 Γ— (-1) + 4 Γ— 3 = (-1) + 12 = 11
C(1,3) = A(1,1) Γ— B(1,3) + A(1,2) Γ— B(2,3) = 1 Γ— 1 + 4 Γ— 4 = 1 + 16 = 17
C(2,1) = A(2,1) Γ— B(1,1) + A(2,2) Γ— B(2,1) = 2 Γ— 1 + 5 Γ— 2 = 2 + 10 = 12
C(2,2) = A(2,1) Γ— B(1,2) + A(2,2) Γ— B(2,2) = 2 Γ— (-1) + 5 Γ— 3 = (-2) + 15 = 13
C(2,3) = A(2,1) Γ— B(1,3) + A(2,2) Γ— B(2,3) = 2 Γ— 1 + 5 Γ— 4 = 2 + 20 = 22
C(3,1) = A(3,1) Γ— B(1,1) + A(3,2) Γ— B(2,1) = 3 Γ— 1 + 6 Γ— 2 = 3 + 12 = 15
C(3,2) = A(3,1) Γ— B(1,2) + A(3,2) Γ— B(2,2) = 3 Γ— (-1) + 6 Γ— 3 = (-3) + 18 = 15
C(3,3) = A(3,1) Γ— B(1,3) + A(3,2) Γ— B(2,3) = 3 Γ— 1 + 6 Γ— 4 = 3 + 24 = 27			

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (transpose)

matrix_t*   c_transpose(matrix_t *A);

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ А Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π·Π°ΠΌΠ΅Π½Π΅ строк этой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π΅Π΅ столбцами с сохранСниСм ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ².

          1 4   1 2 3
A = A^T = 2 5 = 4 5 6
          3 6

ΠœΠΈΠ½ΠΎΡ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° алгСбраичСских Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ (calc_complements)

int s21_calc_complements(matrix_t *A, matrix_t *result);

ΠœΠΈΠ½ΠΎΡ€ΠΎΠΌ M(i,j) называСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (n-1)-Π³ΠΎ порядка, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A i-ΠΉ строки ΠΈ j-Π³ΠΎ столбца.

Для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

    1 2 3
A = 0 4 2
    5 2 1

ΠœΠΈΠ½ΠΎΡ€ΠΎΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки Π±ΡƒΠ΄Π΅Ρ‚:

M(1,1) = 4 2
         2 1

|M| = 4 - 4 = 0

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΌΠΈΠ½ΠΎΡ€ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

     0 -10 -20
M = -4 -14  -8
    -8   2   4

АлгСбраичСским Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ элСмСнта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΎΡ€Π° ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° -1^(i+j).

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° алгСбраичСских Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

      0  10 -20
M. =  4 -14   8
     -8  -2   4

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (determinant)

int s21_determinant(matrix_t *A, double *result);

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚) - это число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ставят Π² соотвСтствиС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ ΠΈΠ· элСмСнтов ΠΏΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ.
Tip: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π²Π΅Π½ суммС ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΉ элСмСнтов строки (столбца) Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ алгСбраичСскиС дополнСния.

Поиск опрСдСлитСля для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС:

    1 2 3
A = 4 5 6
    7 8 9
	
|A| = 1 Γ— 5 6 - 2 Γ— 4 6 + 3 Γ— 4 5 = 1 Γ— (5 Γ— 9 - 8 Γ— 6) - 2 Γ— (4 Γ— 9 - 6 Γ— 7) + 3 Γ— (4 Γ— 8 - 7 Γ— 5)
          8 9       7 9       7 8
|A| = 1 Γ— (45 - 48) - 2 Γ— (36 - 42) + 3 Γ— (32 - 35) = -3 + 12 + (-9) = 0
|A| = 0

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° (inverse_matrix)

int s21_inverse_matrix(matrix_t *A, matrix_t *result);

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ A Π² стСпСни -1 Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ А, Ссли ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ этих ΠΌΠ°Ρ‚Ρ€ΠΈΡ† равняСтся Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ сущСствуСт, Ссли ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°Π²Π΅Π½ 0.

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° находится ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ $A^{-1}=\frac{1} {|A|} Γ— A_*^T$

Π”Π°Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°:

     2  5  7
A =  6  3  4
     5 -2 -3

Поиск опрСдСлитСля:

|A| = -1

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ |A| != 0 -> обратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° сущСствуСт.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΌΠΈΠ½ΠΎΡ€ΠΎΠ²:

    -1 -38 -27
М = -1 -41 -29
    -1 -34 -24

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° алгСбраичСских Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π°:

     -1  38 -27
М. =  1 -41  29
     -1  34 -24

Вранспонированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° алгСбраичСских Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π°:

        -1   1  -1
М^T. =  38 -41  34
       -27  29 -24

Chapter III

Part 1. РСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ matrix.h

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ основныС дСйствия с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ (частично описанныС Π²Ρ‹ΡˆΠ΅): create_matrix (созданиС), remove_matrix (очистка ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅), eq_matrix (сравнСниС), sum_matrix (слоТСниС), sub_matrix (Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅), mult_matrix (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅), mult_number (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° число), transpose (транспонированиС), determinant (вычислСниС опрСдСлитСля), calc_complements (вычислСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ алгрСбраичСский Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ), inverse_matrix (поиск ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published