Matriisin kertolasku

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 10. elokuuta 2022 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Matriisin kertolasku on yksi matriisien perusoperaatioista . Kertolaskuoperaation tuloksena olevaa matriisia kutsutaan matriisituloksi . Uuden matriisin alkiot saadaan vanhojen matriisien alkioista alla kuvattujen sääntöjen mukaisesti .

Matriisit ja voidaan kertoa, jos ne ovat yhteensopivia siinä mielessä, että matriisin sarakkeiden lukumäärä on yhtä suuri kuin rivien lukumäärä .

Matriiseilla on monia niitä algebrallisia kertolaskuominaisuuksia , jotka tavallisilla luvuilla on, lukuun ottamatta kommutatiivisuutta .

Neliömatriisien kohdalla kertomisen lisäksi voidaan ottaa käyttöön matriisin nostaminen potenssiin ja käänteismatriisi .

Kun matriiseja käytetään kuvaamaan erityisesti matemaattisten avaruuksien muunnoksia ( kierto , heijastus , venytys ja muut), matriisien tulo kuvaa muunnosten koostumusta .

Määritelmä

Olkoon kaksi suorakaiteen muotoista matriisia ja mittoja ja annettu vastaavasti:

Sitten matriisi mitoineen :

jossa:

kutsutaan heidän tuotteekseen .

Kahden matriisin kertominen on mahdollista vain, jos sarakkeiden lukumäärä ensimmäisessä kertoimessa on yhtä suuri kuin toisen kertoimen rivien lukumäärä; tässä tapauksessa matriisien sanotaan olevan johdonmukaisia . Erityisesti kertominen on aina mahdollista, jos molemmat tekijät ovat samaa kertaluokkaa olevia neliömatriiseja .

Teoksen olemassaolo ei siis seuraa ollenkaan teoksen olemassaoloa.

Kuva

Matriisitulo AB koostuu matriisin A rivivektorien ja matriisin B sarakevektorien sisätulojen kaikista mahdollisista yhdistelmistä . Matriisin AB alkio indekseillä i, j on matriisin A i :nnen rivivektorin ja matriisin B j :nnen sarakevektorin skalaaritulo .

Oikeanpuoleinen kuva esittää kahden matriisin A ja B tulon laskentaa , se näyttää kuinka kukin matriisitulon leikkauspiste vastaa matriisin A rivejä ja matriisin B sarakkeita . Tuloksena olevan matriisin koko on aina suurin mahdollinen, eli jokaiselle matriisin A riville ja matriisin B sarakkeelle on aina vastaava leikkauspiste matriisin tulossa.

Ympyröillä merkittyjen risteysten arvot ovat:

Yleensä matriisitulo ei ole kommutoiva operaatio. Esimerkiksi:

Yllä olevien matriisien tulon elementti lasketaan seuraavasti

Ensimmäinen koordinaatti matriisimerkinnässä tarkoittaa riviä, toinen koordinaatti tarkoittaa saraketta; tätä järjestystä käytetään sekä indeksoinnissa että koon määrittämisessä. Tuloksena olevan matriisin rivin ja sarakkeen leikkauskohdassa oleva elementti on ensimmäisen matriisin i:nnen rivin ja toisen matriisin i:nnen sarakkeen skalaaritulo . Tämä selittää, miksi kerrottujen matriisien leveyden ja korkeuden on vastattava: muuten pistetulo on määrittelemätön.

Keskustelu

Kuvatun matriisin kertolaskusäännön syyt on helpoin nähdä ottamalla huomioon vektorin kertominen matriisilla.

Jälkimmäinen on luonnollisesti otettu käyttöön perustuen siihen, että kun vektoreita hajotetaan kannassa, minkä tahansa lineaarisen operaattorin A toiminta antaa lausekkeen vektorin v' = A v komponenteille :

Toisin sanoen lineaarista operaattoria edustaa matriisi, vektorit sarakevektoreilla ja operaattorin toimintaa vektorilla matriisikertomalla vasemmalla olevan sarakevektorin operaattorimatriisilla (tämä on matriisin kertolasku erityinen tapaus, kun yhden matriisin, sarakevektorin, koko on ).

(Samoin siirtyminen mihin tahansa uuteen kantaan koordinaatteja vaihdettaessa esitetään täysin samankaltaisella lausekkeella, vain tässä tapauksessa se ei ole enää vanhan kannan uuden vektorin komponentit, vaan vanhan vektorin komponentit uudessa kannassa ; tässä tapauksessa uuteen kantaan siirtymämatriisin  elementit ).

Otettuaan huomioon peräkkäisen toiminnan kahden operaattorin vektorilla: ensin A ja sitten B (tai kannan A muunnos ja sitten kannan B muunnos ) soveltamalla kaavaamme kahdesti, saamme:

josta voidaan nähdä, että lineaaristen operaattorien A ja B toiminnan koostumus BA (tai vastaava kantamuunnosten koostumus) vastaa matriisia, joka on laskettu vastaavien matriisien tulosäännöllä :

Tällä tavalla määriteltyjen matriisien tulo osoittautuu melko luonnolliseksi ja ilmeisen hyödylliseksi (tarjoaa yksinkertaisen ja universaalin tavan laskea mielivaltaisen määrän lineaarisia muunnoksia).

Ominaisuudet

Assosiatiivisuus , assosiatiivisuus :

Jakeluominaisuus , distributiivisuus lisäyksen suhteen :

.

Matriisin ja sopivan kertaluvun identiteettimatriisin tulo on yhtä suuri kuin itse matriisi:

Matriisin ja sopivan mittaisen nollamatriisin tulo on yhtä suuri kuin nollamatriisi:

Jos ja  ovat samaa kertaluokkaa olevia neliömatriiseja , niin matriisitulolla on useita muita ominaisuuksia.

Matriisikertominen on yleensä ei- kommutatiivista :

Jos , Sitten matriisien ja sanotaan liikkuvan toistensa kanssa.

Yksinkertaisimmat esimerkit työmatkamatriiseista:

Tuloksen determinantti ja jälki eivät riipu matriisin kertolaskujärjestyksestä:

Käänteinen matriisi

Neliömatriisia kutsutaan ei- singulaariseksi ( ei- singulaariseksi ) , jos sillä on ainutlaatuinen käänteimatriisi siten, että seuraava ehto täyttyy:

Muuten matriisia kutsutaan erityiseksi ( degeneroituneeksi ) .

Järjestysmatriisi ei ole rappeutunut silloin ja vain, jos tässä tapauksessa on samaa kertaluokkaa oleva neliömatriisi

missä  on determinantin elementin algebrallinen komplementti

Nopeat matriisin kertolaskualgoritmit

Matriisien tulon laskemisen monimutkaisuus määritelmän mukaan on , mutta on olemassa tehokkaampia algoritmeja [1] , joita käytetään suurille matriiseille. Kysymys suurten matriisien kertolaskunopeuden rajoittamisesta sekä kysymys nopeimpien ja vakaimpien käytännön algoritmien rakentamisesta suurten matriisien kertomiseen on edelleen yksi lineaarisen algebran ratkaisemattomista ongelmista .

Ensimmäisen algoritmin suurten matriisien nopeaan kertomiseen kehitti Volker Strassen [2] vuonna 1969. Algoritmi perustuu matriisien rekursiiviseen osiointiin 2X2 -lohkoihin . Strassen osoitti, että 2X2 -matriisit voidaan kertoa ei-kommutatiivisesti seitsemällä kertolaskulla, joten jokaisessa rekursion vaiheessa suoritetaan seitsemän kertolaskua kahdeksan sijaan. Tämän seurauksena tämän algoritmin asymptoottinen monimutkaisuus on . Tämän menetelmän haittana on ohjelmoinnin monimutkaisuus verrattuna standardialgoritmiin, huono numeerinen vakaus ja suurempi käytetty muistimäärä. On kehitetty useita Strassen-menetelmään perustuvia algoritmeja, jotka parantavat numeerista vakautta, vakionopeutta ja muita ominaisuuksia. Siitä huolimatta Strassen-algoritmi on yksinkertaisuutensa vuoksi edelleen yksi käytännön algoritmeista suurten matriisien kertomiseen. Strassen esitti myös seuraavan Strassen -oletuksen : mielivaltaisen pienille , on olemassa algoritmi, joka riittävän suurille luonnollisille luvuille n takaa kahden koon matriisin kertomisen operaatioissa . Jatkossa suurten matriisien kertolaskunopeuden arvioita parannettiin moninkertaisesti. Nämä algoritmit olivat kuitenkin teoreettisia, enimmäkseen likimääräisiä. Likimääräisten kertolaskualgoritmien epävakauden vuoksi niitä ei tällä hetkellä käytetä käytännössä. Vuonna 1978 Pan [3] ehdotti omaa matriisin kertolaskumenetelmää, jonka monimutkaisuus oli Θ(n 2,78041 ) . Vuonna 1979 Binin [4] johtama italialaisten tiedemiesten ryhmä kehitti algoritmin matriisin kertomiseen tensoreja käyttäen. Sen monimutkaisuus on Θ(n 2,7799 ) . Vuonna 1981 Schönhage [5] esitteli menetelmän, joka toimii nopeudella Θ(n 2,695 ) . Arviointi saadaan käyttämällä lähestymistapaa, jota kutsutaan osittaiseksi matriisikertomiseksi . Myöhemmin hän onnistui saamaan arvion Θ(n 2,6087 ) . Sitten Schönhage sai suorien summien menetelmän perusteella kompleksisuusestimaatin Θ(n 2,548 ) . Romani pystyi laskemaan tason Θ(n 2.5166 ) , kun taas Pan pystyi laskemaan arvoon Θ(n 2.5161 ) . Vuonna 1990 Coppersmith ja Winograd [6] julkaisivat algoritmin, joka Williams Wasilewskan [7] vuonna 2011 muokkaamana, kertoo matriisit nopeudella O(n 2,3727 ) . Tämä algoritmi käyttää ideoita, jotka ovat samanlaisia ​​kuin Strassenin algoritmi. Tähän mennessä Coppersmith-Winograd-algoritmin modifikaatiot ovat asymptoottisimmin nopeita. Mutta se tosiasia, että saadut parannukset ovat mitättömiä, antaa meille mahdollisuuden puhua "Coppersmith-Winogradin esteen" olemassaolosta algoritmien nopeuden asymptoottisissa arvioissa. Coppersmith-Winograd-algoritmi on tehokas vain tähtitieteellisen kokoisille matriiseille, eikä sitä voida soveltaa käytännössä. Vuonna 2003 Koch ym. tarkastelivat Strassen- ja Coppersmith-Winograd-algoritmeja kirjoissaan [8] ryhmäteorian yhteydessä . He osoittivat, että Strassenin olettamus on pätevä (eli minimikompleksisuus on rajoitettu mille tahansa ), jos jokin ryhmäteorian hypoteeseista [9] täyttyy .

Matriisien potenssit

Neliömatriisit voidaan kertoa itsestään monta kertaa samalla tavalla kuin tavalliset luvut, koska niissä on sama määrä rivejä ja sarakkeita. Tällaista peräkkäistä kertolaskua voidaan kutsua matriisin nostamiseksi potenssiin  - tämä on erityinen tapaus useiden matriisien tavanomaisesta kertomisesta. Suorakaidematriiseissa on eri määrä rivejä ja sarakkeita, joten niitä ei voi koskaan nostaa potenssiin. n × n matriisi A , joka on korotettu potenssiin, määritellään kaavalla

ja sillä on seuraavat ominaisuudet ( λ  on jokin skalaari):

Nolla tutkinto:

missä E on identiteettimatriisi . Tämä on analogista sen tosiasian kanssa, että minkä tahansa luvun nollapotenssi on yhtä suuri kuin yksi.

Kertominen skalaarilla:

Determinantti:

Helpoin tapa laskea matriisin aste on kertoa matriisi A k kertaa edellisen kertolaskun tuloksella alkaen identiteettimatriisista, kuten usein tehdään skalaareille. Diagonalisoitaville matriiseille on olemassa parempi menetelmä, joka perustuu matriisin A spektrihajotteluun . Toinen menetelmä, joka perustuu Hamilton-Cayleyn lauseeseen , muodostaa tehokkaamman lausekkeen Ak :lle, jossa skalaari nostetaan vaadittuun tehoon , ei koko matriisia .

Diagonaaliset matriisit muodostavat erikoistapauksen . Koska diagonaalimatriisien tulo pelkistetään vastaavien diagonaalialkioiden kertolaskuksi, niin diagonaalimatriisin A k :s potenssi koostuu alkioista, jotka on korotettu vaadittuun potenssiin:

Näin ollen diagonaalimatriisin nostaminen potenssiin ei ole vaikeaa. Nostettaessa mielivaltaista matriisia (ei välttämättä diagonaalista) potenssiin, on usein hyödyllistä käyttää ensin diagonalisoitavien matriisien ominaisuuksia .

Matriisien kertolaskua ja eksponentiota käyttämällä voidaan määritellä muita matriisien operaatioita. Esimerkiksi matriisieksponentti voidaan määritellä potenssisarjana , matriisin logaritmi voidaan määritellä  matriisieksponentin käänteiseksi ja niin edelleen.

Katso myös

Kirjallisuus

Muistiinpanot

  1. Kyberneettinen kokoelma. Uusi sarja. Ongelma. 25. la. artikkelit 1983 - 1985: Per. englannista. - M .: Mir, 1988 - V.B. Aleksev. Matriisikertomisen monimutkaisuus. Arvostelu.
  2. Strassen V. Gaussin eliminointi ei ole optimaalinen  // Numero . Math / F. Brezzi - Springer Science + Business Media , 1969. - Voi. 13, Iss. 4. - P. 354-356. — ISSN 0029-599X ; 0945-3245 - doi:10.1007/BF02165411
  3. Pan V. Ya, Strassenin algoritmi ei ole optimaalinen - trilineaarinen yhdistämis- ja peruutustekniikka nopeiden algoritmien rakentamiseen matriisioperaatioille. — Pros. 19th Annual Symposium on Foundations of Computer Science, Ann Arbor, Mich., 1978
  4. Bini D., Capovani M., Lotti G., Romani F. — monimutkaisuus likimääräiselle matriisin kertomiselle. - ilmoittaa. prosessi. Lett., 1979
  5. Schonhage A. Osittais- ja kokonaismatriisin kertolasku. - SIAM J. Comput., 1981
  6. Don Coppersmith ja Shmuel Winograd. Matriisin kertolasku aritmeettisen progression avulla. Journal of Symbolic Computation , 9:251-280, 1990.
  7. Williams, Virginia (2011), Multiplying matices in O(n 2,3727 aika Arkistoitu 26. lokakuuta 2014 Wayback Machinessa
  8. Ryhmäteoreettiset algoritmit matriisikertolaskulle . Haettu 26. syyskuuta 2009. Arkistoitu alkuperäisestä 6. elokuuta 2011.
  9. Kohti optimaalista matriisin kertolaskualgoritmia (downlink) . Haettu 26. syyskuuta 2009. Arkistoitu alkuperäisestä 31. maaliskuuta 2010.