Множанне матрыц

З пляцоўкі testwiki
Перайсці да навігацыі Перайсці да пошуку

Мно́жанне ма́трыц — адна з асноўных аперацый над матрыцамі. Матрыца, атрыманая ў выніку аперацыі множання, называецца здабы́ткам ма́трыц. Элементы новай матрыцы атрымліваюцца з элементаў старых матрыц у адпаведнасці з правіламі, праілюстраванымі ніжэйШаблон:Пераход.

Матрыцы A і B могуць быць памножаны, калі яны сумяшчальныя ў тым сэнсе, што колькасць слупкоў матрыцы A роўная колькасці радкоў B.

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

Для квадратных матрыц, акрамя множання, можа быць уведзена аперацыя ўзвядзення матрыцы ў ступеньШаблон:Пераход і адваротная матрыцаШаблон:Пераход.

Паколькі матрыцы выкарыстоўваюцца для апісання, у прыватнасці, пераўтварэнняў матэматычных прастораў (паварот, адлюстраванне, расцяжэнне і іншыя), здабытак матрыц будзе апісваць кампазіцыю пераўтварэнняўШаблон:Пераход.

Азначэнне

Няхай дадзены дзве прамавугольныя матрыцы A і B памеру l×m і m×n адпаведна:

A=[a11a12a1ma21a22a2mal1al2alm],B=[b11b12b1nb21b22b2nbm1bm2bmn].

Тады матрыца C памеру l×n:

C=[c11c12c1nc21c22c2ncl1cl2cln],

у якой:

cij=r=1mairbrj(i=1,2,l;j=1,2,n).

называецца іх здабыткам.

Аперацыя множання двух матрыц магчымая толькі ў тым выпадку, калі колькасць слупкоў у першым множніку роўная колькасці радкоў у другім; у гэтым выпадку кажуць, што матрыцы ўзгодненыя. У прыватнасці, множанне заўсёды магчыма, калі абодва множнікі — квадратныя матрыцы аднаго і таго ж парадку.

Такім чынам, з існавання здабытку AB зусім не вынікае існаванне здабытку BA.

Ілюстрацыя

Здабытак матрыц AB складаецца з усіх магчымых камбінацый скалярных здабыткаў вектар-радкоў матрыцы A і вектар-слупкоў матрыцы B. Элемент матрыцы AB з індэксамі i, j ёсць скалярным здабыткам i-га вектар-радка матрыцы A і j-га вектар-слупка матрыцы B.

Ілюстрацыя справа дэманструе вылічэнне здабытку дзвюх матрыц A і B, яна паказвае, як кожнае перасячэнне ў здабытку матрыц адпавядае радкам матрыцы A і слупкам матрыцы B. Памер выніковай матрыцы заўсёды максімальна магчымы, гэта значыць для кожнага радка матрыцы A і слупка матрыцы B заўсёды ёсць адпаведнае перасячэнне ў здабытку матрыцы.

Значэнні на перасячэннях, пазначаных кружочкамі, будуць:

x1,2=(a1,1,a1,2)(b1,2,b2,2)=a1,1b1,2+a1,2b2,2x3,3=(a3,1,a3,2)(b1,3,b2,3)=a3,1b1,3+a3,2b2,3

У агульным выпадку, здабытак матрыц не з’яўляецца камутатыўнай аперацыяй. Напрыклад:

[1234]3×4 matrix[abcd]4×5 matrix=[x3,4]3×5 matrix

Элемент x3,4 здабытку матрыц, прыведзеных вышэй, вылічваецца наступным чынам

x3,4=(1,2,3,4)(a,b,c,d)=1a+2b+3c+4d

Першая каардыната ў абазначэнні матрыцы абазначае радок, другая каардыната — слупок; гэты парадак выкарыстоўваецца як пры індэксацыі, так і пры абазначэнні памеру. Элемент xij на перасячэнні радка i і слупка j выніковай матрыцы з’яўляецца скалярным здабыткам i-га радка першай матрыцы і j-га слупка другой матрыцы. Гэта тлумачыць чаму шырыня і вышыня множаных матрыц павінны супадаць: у адваротным выпадку скалярны здабытак не вызначаны.

Абмеркаванне

Убачыць прычыны апісанага правіла матрычнага множання прасцей за ўсё, разгледзеўшы множанне вектара на матрыцу.

Апошняе натуральна ўводзіцца зыходзячы з таго, што пры раскладзе вектараў па базісе дзеяння (любога) лінейнага аператара A дае выражэнне кампанентаў вектара v' = Av:

v'i=jAijvj

То бок лінейны аператар аказваецца прадстаўлены матрыцай, вектары — вектарамі-слупкамі, а дзеянне аператара на вектар — матрычным множаннем вектара-слупка злева на матрыцу аператара (гэта прыватны выпадак матрычнага множання, калі адна з матрыц — вектар-слупок — мае памер n×1).

(Пераход да любога новага базіса пры змене каардынат прадстаўляецца цалкам аналагічным выразам, толькі v'i у гэтым выпадку ўжо не кампаненты новага вектара ў старым базісе, а кампаненты старога вектара ў новым базісе; пры гэтым Aij — элементы матрыцы пераходу да новага базіса).

Разгледзеўшы паслядоўнае дзеянне на вектар двух аператараў: спачатку A, а потым B (або пераўтварэнне базіса A, а затым пераўтварэнне базіса B), двойчы прымяніўшы нашу формулу, атрымаем:

v'i=jBijkAjkvk=jkBijAjkvk=kj(BijAjk)vk,

адкуль відаць, што кампазіцыі BA дзеяння лінейных аператараў A і B (або аналагічнай кампазіцыі пераўтварэнняў базіса) адпавядае матрыца, вылічаная па правілу здабытку адпаведных матрыц:

(BA)ik=jBijAjk.

Вызначаны такім чынам здабытак матрыц аказваецца цалкам натуральным і відавочна карысным (дае просты і універсальны спосаб вылічэння кампазіцый адвольнай колькасці лінейных пераўтварэнняў).

Уласцівасці

Злучальная ўласцівасць, асацыятыўнасць:

𝐀(𝐁𝐂)=(𝐀𝐁)𝐂;
α(𝐀𝐁)=(α𝐀)𝐁=𝐀(α𝐁).

Размеркавальная ўласцівасць, дыстрыбутыўнасць адносна складання:

𝐀(𝐁+𝐂)=𝐀𝐁+𝐀𝐂;
(𝐀+𝐁)𝐂=𝐀𝐂+𝐁𝐂..

Здабытак матрыцы на адзінкавую матрыцу 𝐄 адпаведнага парадку роўны самой матрыцы:

𝐄𝐀=𝐀;
𝐀𝐄=𝐀.

Здабытак матрыцы на нулявую матрыцу 𝟎 адпаведнага памеру роўны нулявой матрыцы:

𝟎𝐀=𝟎;
𝐀𝟎=𝟎.

Калі 𝐀 і 𝐁 — квадратныя матрыцы аднаго і таго ж парадку, то здабытак матрыц валодае яшчэ шэрагам уласцівасцей.

Множанне матрыц у агульным выпадку некамутатыўна:

𝐀𝐁𝐁𝐀.

Калі 𝐀𝐁=𝐁𝐀, то матрыцы 𝐀 і 𝐁 называюцца камутавальнымі паміж сабой.

Прасцейшыя прыклады камутавальных матрыц:

  • любая квадратная матрыца — з самой сабой: 𝐀𝐀=𝐀𝐀=𝐀𝟐 (узвядзенне матрыцы ў квадрат);
  • любая квадратная матрыца — з адзінкавай матрыцай таго ж парадку: 𝐀𝐄=𝐄𝐀=𝐀;
  • любая квадратная матрыца — з нулявой матрыцай таго ж парадку: 𝐀𝟎=𝟎𝐀=𝟎;
  • любая нявыраджаная квадратная матрыца — са сваёй адваротнай матрыцай: 𝐀𝐀𝟏=𝐀𝟏𝐀=𝐄.

Вызначнік і след здабытку не залежаць ад парадку множання матрыц:

det(𝐀𝐁)=det(𝐁𝐀)=det𝐀det𝐁;
tr(𝐀𝐁)=tr(𝐁𝐀).

Адваротная матрыца

Шаблон:Main

Квадратная матрыца A называецца неасаблівай (нявыраджанай), калі яна мае адзіную адваротную матрыцу A1 такую, што выконваецца ўмова:

AA1=A1A=E.

У адваротным выпадку матрыца A называецца асаблівай (выраджанай).

Матрыца A=[aik] парадку n з’яўляецца нявыраджанай тады і толькі тады, калі detA=det[aik]0; у гэтым выпадку A1 ёсць квадратная матрыца таго ж парадку n:

A1=[aik]1=[AkidetA],

дзе Aik — алгебраічнае дапаўненне элемента aik у вызначніку det[aik].

Алгарытмы хуткага перамнажэння матрыц

Складанасць вылічэння здабытку матрыц па азначэнні складае  O(n3), аднак існуюць больш эфектыўныя алгарытмы[1], якія прымяняюцца для вялікіх матрыц. Пытанне пра мяжу хуткасці множання вялікіх матрыц, гэтак жа як і пытанне пра стварэнне найбольш хуткіх і ўстойлівых практычных алгарытмаў множання вялікіх матрыц застаецца адной з нераскрытых праблем лінейнай алгебры.

Першы алгарытм хуткага множання вялікіх матрыц быў распрацаваны Фолькерам ШтрасенамШаблон:Source-ref у 1969 годзе. У аснове алгарытму ляжыць рэкурсіўная разбіўка матрыц на блокі 2×2. Штрасен даказаў, што матрыцы 2×2 можна некамутатыўна перамножыць з дапамогай сямі множанняў, таму на кожным этапе рэкурсіі выконваецца сем множанняў замест васьмі. У выніку асімптатычная складанасць гэтага алгарытму складае O(nlog27)O(n2.81). Недахопам гэтага метаду з’яўляецца большая складанасць праграмавання ў параўнанні са стандартным алгарытмам, слабая лікавая ўстойлівасць і большы аб’ём выкарыстанай памяці. Распрацаваны шэраг алгарытмаў на аснове метаду Штрасена, якія паляпшаюць лікавую ўстойлівасць, хуткасць па канстанце і іншыя яго характарыстыкі. Тым не менш, з-за прастаты алгарытм Штрасена застаецца адным з практычных алгарытмаў множання вялікіх матрыц. Штрасен таксама вылучыў наступную гіпотэзу Штрасена: для якой заўгодна малой ε>0 існуе алгарытм, пры дастаткова вялікіх натуральных n гарантуе перамнажэнне дзвюх матрыц памеру n×n за O(n2+ε) аперацый.
  • Далейшыя паляпшэнні паказчыка ступені ω для хуткасці матрычнага множання
Храналогія паляпшэння ацэнак паказчыка ступені ω для вылічальнай складанасці матрычнага множання O(nω).
У далейшым ацэнкі хуткасці множання вялікіх матрыц шматразова паляпшаліся. Аднак гэтыя алгарытмы насілі тэарэтычны, галоўным чынам набліжаны характар. З-за неўстойлівасці алгарытмаў набліжанага множання ў цяперашні час яны не выкарыстоўваюцца на практыцы.
  • Алгарытм Пана (1978)
У 1978 годзе Пан[2] прапанаваў свой метад множання матрыц, складанасць якога склала Θ(n2.78041).
  • Алгарытм Біні (1979)
У 1979 годзе група італьянскіх навукоўцаў на чале з Біні[3] распрацавала алгарытм множання матрыц з выкарыстаннем тэнзараў. Яго складанасць складае Θ(n2.7799).
  • Алгарытмы Шонхаге (1981)
У 1981 годзе Шонхаге[4] прадставіў метад, які працуе з хуткасцю Θ(n2.695). Ацэнка атрымана з дапамогай падыходу, названага частковым матрычным множаннем. Пазней яму ўдалося атрымаць ацэнку Θ(n2.6087).
Затым Шонхаге на базе метаду прамых сум атрымаў ацэнку складанасці Θ(n2.548). Рамані змог панізіць ацэнку да Θ(n2.5166), а Пан — да Θ(n2.5161).
У 1990 годзе Копперсміт і Вінаград[5] апублікавалі алгарытм, асімптатычная складанасць якога складала O(n2.3755). Гэты алгарытм выкарыстоўвае ідэі, падобныя з алгарытмам Штрасена. На сённяшні дзень мадыфікацыі алгарытму Каперсміта—Вінаграда з’яўляюцца найбольш асімптатычна хуткімі. У апошняй мадыфікацыі (2024) складанасць алгарытму складае O(n2.371552). Вядома, што шырокі клас мадыфікацый гэтага алгарытму ў прынцыпе не можа дасягнуць складанасці лепшай, чым O(n2.3078)[6]. Алгарытм Копперсміта—Вінаграда эфектыўны толькі на матрыцах астранамічнага памеру і на практыцы прымяняцца не можа.
  • Сувязь з тэорыяй груп (2003)
У 2003 годзе Кох і інш. разгледзелі ў сваіх працах[7] алгарытмы Штрасена і Каперсміта-Вінаграда ў кантэксце тэорыі груп. Яны паказалі, што гіпотэза Штрасена справядлівая (г. зн. мінімальная складанасць абмежаваная O(n2+ε) для любога ε), калі выконваецца адна з гіпотэз тэорыі груп[8].

Ступені матрыц

Квадратныя матрыцы можна шмат разоў множыць самі на сябе гэтак жа, як звычайныя лікі, паколькі ў іх аднолькавая колькасць радкоў і слупкоў. Такое паслядоўнае множанне можна назваць узвядзеннем матрыцы ў ступень — гэта будзе прыватным выпадкам звычайнага множання некалькіх матрыц. У прамавугольных матрыц колькасць радкоў і слупкоў розная, таму іх ніколі нельга ўзводзіць у ступень.

Матрыца Шаблон:Math памеру Шаблон:Math, узведзеная ў ступень, вызначаецца формулай

𝐀k=𝐀𝐀𝐀k

і валодае наступнымі ўласцівасцямі (Шаблон:Math — некаторы скаляр):

Нулявая ступень:

𝐀0=𝐄

дзе E — адзінкавая матрыца. Гэта аналаг таго факту, што нулявая ступень любога ліку роўная адзінцы.

Множанне на скаляр:

(λ𝐀)k=λk𝐀k

Вызначнік:

det(𝐀k)=det(𝐀)k

Найбольш просты спосаб вылічэння ступені матрыцы — гэта множыць Шаблон:Math разоў матрыцу Шаблон:Math на вынік папярэдняга множання, пачынаючы з адзінкавай матрыцы, як гэта часта робяць для скаляраў. Для дыяганалізуемых матрыц існуе лепшы метад, заснаваны на выкарыстанні спектральнага раскладанне матрыцы Шаблон:Math. Яшчэ адзін метад, заснаваны на тэарэме Гамільтана — Кэлі, будуе больш эфектыўнае выражэнне для Шаблон:Math, у якім у патрабаваную ступень узводзіцца скаляр, а не ўся матрыца.

Асобны выпадак складаюць дыяганальныя матрыцы. Паколькі здабытак дыяганальных матрыц зводзіцца да множання адпаведных дыяганальных элементаў, то Шаблон:Math-ая ступень дыяганальнай матрыцы Шаблон:Math складаецца з элементаў, узведзеных у патрабаваную ступень:

𝐀k=(a11000a22000ann)k=(a11k000a22k000annk).

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

Выкарыстоўваючы множанне матрыц і ўзвядзенне матрыц у ступень, можна вызначыць іншыя аперацыі над матрыцамі. Напрыклад, матрычная экспанента можа быць вызначана праз ступеневы рад, матрычны лагарыфм — як адваротная да матрычнай экспаненты функцыя і гэтак далей.

Гл. таксама

Літаратура

Крыніцы

Шаблон:Reflist

Шаблон:Вектары і матрыцы

Шаблон:Бібліяінфармацыя

  1. Кибернетический сборник. Новая серия. Вып. 25. Сб. статей 1983—1985 гг.: Пер. с англ. — М.: Мир, 1988 — В. Б. Алекссев. Сложность умножения матриц. Обзор.
  2. Pan V. Ya, Strassen’s algorithm is not optimal — trilinear technique of aggregating uniting and canceling for constructing fast algorithms for matrix operations. — Proc. 19th Annual Symposium on Foundations of Computer Science, Ann Arbor, Mich., 1978
  3. Bini D., Capovani M., Lotti G., Romani F. — O(n2.7799) complexity for approximate matrix multiplication. — Inform. Process. Lett., 1979
  4. Schonhage A. Partial and total matrix multiplication. — SIAM J. Comput., 1981
  5. Don Coppersmith and Shmuel Winograd. Matrix multiplication via arithmetic progressions. Journal of Symbolic Computation, 9:251-280, 1990.
  6. Шаблон:Cite web
  7. Шаблон:Cite web
  8. Шаблон:Cite web