Matris-vektor multiplikation c. Multiplikation av en matris med en vektor

MatLab-systemet utför helt enkelt matematiska operationer på matriser och vektorer. Betrakta först de enkla operationerna med addition och multiplikation av matriser och vektorer. Låt två vektorer ges

a = ; % radvektor
b = ; % kolumnvektor

då kan multiplikationen av dessa två vektorer skrivas som

c = a*b; %c=1+2+3+4+5=16
d = b*a; %d - matris med 5x5 element

I enlighet med operationer på vektorer ger multiplicering av en radvektor med en kolumnvektor ett tal, och multiplicering av en kolumnvektor med en radvektor ger en tvådimensionell matris, vilket är resultatet av beräkningarna i exemplet ovan, d.v.s.

Addition och subtraktion av två vektorer skrivs som

a1 = ;
a2 =;
c = al+a2; %c =;
c = a2-al; %c =;

Observera att addition och subtraktion kan utföras mellan två kolumnvektorer eller två radvektorer. Annars kommer MatLab att utfärda ett felmeddelande, eftersom vektorer av olika typer kan inte läggas till. Detta är fallet med alla olagliga aritmetiska operationer: om de inte kan beräknas kommer MatLab-systemet att rapportera ett fel och programmet avslutas på motsvarande rad.

På liknande sätt utförs operationer för multiplikation och addition mellan matriser:

A = ;
B = ettor(3);
C=A+B; % tillägg av två matriser av samma storlek
D=A+5; % addition av en matris och ett tal
E=A*B; % multiplikation av matris A med B
F=B*A; % multiplikation av matris B med A
G=5*A; % multiplikation av en matris med ett tal

Operationerna för att beräkna den inversa matrisen, såväl som att transponera matriser och vektorer, skrivs enligt följande:

a = ; % radvektor
b = a'; % kolumnvektor bildad av
% transponering av radvektorn a.
A = ; % matris 3x3 element
B = a*A; %b= - radvektor
C=A*b; % C = - kolumnvektor
D = a*A*a'; % D = 45 – tal, summan av matris A
E = A'; % E är den transponerade matrisen A
F = inv(A); % F - invers matris A
G = A^-1; % G - invers matris A

Från exemplet ovan kan man se att operationen för att transponera matriser och vektorer betecknas med symbolen ' (apostrof), som är placerad efter namnet på vektorn eller matrisen. Beräkningen av den inversa matrisen kan göras genom att anropa funktionen inv() eller genom att höja matrisen till potensen -1. Resultatet i båda fallen blir detsamma och två beräkningsmetoder görs för att underlätta användningen vid implementering av olika algoritmer.

Om det under beräkningarna krävs att multiplicera, dividera eller höja element i en vektor eller matris element för element, används följande operatorer för detta:

.* - elementvis multiplikation;
./ och .\ - elementvisa divisioner;
.^ - elementvis exponentiering.

Betrakta hur dessa operatörer fungerar i följande exempel.

a = ; % radvektor
b = ; % radvektor
c = a.*b; %c=
A = ettor(3); % 3x3 matris som består av ettor
B = ; % matris 3x3
C = A.*B; % matris 3x3, bestående av
D = A./B; % matris 3x3, bestående av
E = A.\B; % matris 3x3, bestående av
F = A.^2; % kvadrering av matris A-element

För att avsluta detta avsnitt, överväg några funktioner som är användbara när du arbetar med vektorer och matriser.

För att hitta maxvärdet för ett vektorelement används standardfunktionen max() som returnerar det hittade maxvärdet för elementet och dess position (index):

a = ;
= max(a); % v = 6, i = 2;

v = max(a); %v = 6;

Ovanstående exempel visar två olika sätt att anropa max()-funktionen. I det första fallet bestäms både maximivärdet för elementet och dess index i vektorn, och i det andra bestäms endast maximivärdet för elementet.

När det gäller matriser bestämmer denna funktion de maximala värdena i kolumnerna, som visas i exemplet nedan:

A = ;
= max(A); % V=, I=
V = max(A); %V=

Den fullständiga syntaxen för max()-funktionen kan hittas genom att skriva kommandot i MatLab-kommandofönstret

hjälp<название функции>

Min()-funktionen fungerar på ett liknande sätt, som bestämmer minimivärdet för ett vektor- eller matriselement och dess index.

En annan användbar funktion för att arbeta med matriser och vektorer är funktionen sum() som beräknar summan av värdena för elementen i en vektor eller kolumner i en matris:

a = ;
s = summa(a); %s = 3+5+4+2+1=15
A = ;
S1 = summa(A); %S1=
S2 = summa(summa(A)); % S2=39

Vid beräkning av summan S2 beräknas summan av värdena för elementen i matrisen A först av kolumner och sedan av rader. Som ett resultat innehåller variabeln S2 summan av värdena för alla element i matrisen A.

För att sortera värdena för elementen i en vektor eller matris i stigande eller fallande ordning, använd sort()-funktionen enligt följande:

a = ;

b1 = sort(a); %b1=
b2 = sort(a, 'sänka'); %b2=
b3 = sort(a, 'stiga upp'); %b3=

för matriser

A = ;
B1 = sort(A); %B1=
B2 = sort(A, 'sänka'); %B2=

I många praktiska problem krävs det ofta att man hittar ett specifikt element i en vektor eller matris. Detta kan göras med hjälp av standardfunktionen find() som tar som argument ett villkor enligt vilket de nödvändiga elementen hittas, till exempel:

a = ;
b1 = hitta(a == 2); %b1 = 4 - elementindex 2
b2 = hitta(a ~= 2); % b2 = - index utan 2
b3 = hitta(a > 3); %b3=

I exemplet ovan betyder symbolen '==' kontroll av likhet, och symbolen '~=' utför en kontroll för olikhet mellan värdena för elementen i vektorn a. Mer information om dessa operatörer kommer att beskrivas i avsnittet om villkorade operatörer.

En annan användbar funktion för att arbeta med vektorer och matriser är funktionen mean() för att beräkna det aritmetiska medelvärdet, som fungerar så här:

a = ;
m = medelvärde(a); %m = 3
A = ;
Ml = medelvärde(A); %M1=
M2 = medelvärde(medelvärde(A)); % M2 = 4,333


Varje vektor kan ses som en matris med en kolumn eller en rad. En matris med en kolumn kommer att kallas en kolumnvektor och en matris med en rad kommer att kallas en radvektor.

Om A är en matris med storleken m*n, så har kolumnvektorn b storleken n, och radvektorn b har storleken m.

För att multiplicera en matris med en vektor måste man alltså behandla vektorn som en kolumnvektor. När en vektor multipliceras med en matris måste den behandlas som en radvektor.

multiplicera matris

till den komplexa vektorn

Vi får resultatet

Som du kan se, med dimensionen på vektorn oförändrad, kan vi ha två lösningar.

Jag skulle vilja fästa din uppmärksamhet på det faktum att matrisen i den första och andra versionen, trots samma värden, är helt olika (de har olika dimensioner)

I det första fallet betraktas vektorn som en kolumn och då är den nödvändig multiplicera matris med vektor, och i det andra fallet har vi en radvektor och sedan har vi produkten av en vektor och en matris.

Denna bot multiplicerar också vektorer och matriser som har komplexa värden. Baserat på en mer komplett kalkylator Multiplikation av matriser med komplexa värden online

Egenskaper för matris-vektor multiplikation

Matris

Vektor kolumn

Rad vektor

Godtyckligt nummer

1. Produkten av en matris med summan av kolumnvektorerna är lika med summan av matrisens produkter av var och en av vektorerna

2. Produkten av summan av radvektorer av matrisen är lika med summan av produkterna av vektorer av matrisen

3. Den gemensamma faktorn för en vektor kan tas ut ur produkten av en matris av en vektor / en vektor av en matris

4. Produkten av en radvektor med produkten av en matris och en kolumnvektor är ekvivalent med produkten av produkten av en radvektor med en matris och en kolumnvektor.

Föreläsning 6. Parallella numeriska algoritmer för att lösa typiska problem inom beräkningsmatematik: matrismultiplikation.

Multiplikation av en matris med en vektor. Uppnå högsta möjliga hastighet. Användning av medelnivå parallellism. Organisation av parallell beräkning för p = n. Användning av en begränsad uppsättning processorer. Matrismultiplikation. Makrooperativ analys av problemlösningsalgoritmer. Organisation av parallellism baserad på datadelning.

Multiplikation av en matris med en vektor

Problemet med att multiplicera en matris med en vektor definieras av relationerna

Att erhålla den resulterande vektorn innebär att man upprepar samma typ av operationer för att multiplicera raderna i matrisen och vektorn. Att erhålla varje sådan operation inkluderar element-för-element multiplikation av elementen i raden av matrisen och vektorn och den efterföljande summeringen av de resulterande produkterna. Det totala antalet erforderliga skalära operationer uppskattas av värdet

Som följer av de åtgärder som utförs när en matris och en vektor multipliceras, kan parallella metoder för att lösa problemet erhållas baserat på parallella summeringsalgoritmer (se avsnitt 4.1). I det här avsnittet kommer analysen av parallelliseringsmetoder att kompletteras med övervägande av organisationen av parallell beräkning beroende på antalet processorer som är tillgängliga för användning. Dessutom, med hjälp av exemplet med problemet att multiplicera en matris med en vektor, kommer uppmärksamheten att uppmärksammas på behovet av att välja den mest lämpliga topologin för ett datorsystem (befintliga kommunikationskanaler mellan processorer) för att minska kostnaderna för att organisera interprocessorinteraktion.

Att uppnå snabbast möjliga prestanda ()

Låt oss utföra en analys av informationsberoende i algoritmen för matris-vektormultiplikation för att välja möjliga sätt att parallellisera. Som du kan se är operationerna för att multiplicera individuella rader i en matris med en vektor som utförs under beräkningar oberoende och kan utföras parallellt;



Att multiplicera varje rad med en vektor involverar oberoende elementvisa multiplikationer och kan också utföras parallellt;

Summeringen av produkterna som erhålls i varje operation att multiplicera en rad i en matris med en vektor kan utföras med användning av en av de tidigare övervägda varianterna av summeringsalgoritmen (seriell algoritm, konventionella och modifierade kaskadscheman).

Således bestäms det maximala erforderliga antalet processorer av värdet

Användningen av ett sådant antal processorer kan representeras enligt följande. Uppsättningen av processorer är indelad i grupper

,

som var och en representerar en uppsättning processorer för att utföra operationen att multiplicera en enda rad i en matris med en vektor. I början av beräkningarna får varje processor i gruppen ett element av raden i matrisen och motsvarande element i vektorn. Därefter utför varje processor multiplikationsoperationen. Därefter utförs beräkningar enligt kaskadsummeringsschemat. För illustration i fig. 6.1 visar beräkningsschemat för gruppens processorer med matrisens dimension.

Ris. 6.1. Beräkningsschema för att multiplicera en matrisrad med en vektor

Exekveringstiden för en parallell algoritm när man använder processorer bestäms av exekveringstiden för paroch exekveringstiden för kaskadschemat

Som ett resultat bestäms prestandaindikatorerna för algoritmen av följande relationer:

För det övervägda problemet med multiplikation av en matris med en vektor är de mest lämpliga topologierna strukturer som tillhandahåller snabb dataöverföring (vägar av enhetslängd) i ett kaskadsummeringsschema (se fig. 4.5). Sådana topologier är en struktur med ett komplett system av anslutningar ( komplett graf) och hyperkub. Andra topologier resulterar i ökad kommunikationstid på grund av längre datavägar. Så, med en linjär ordning av processorer med ett system av anslutningar endast med de närmaste grannarna till vänster och till höger ( linjal eller ringa) för kaskadschemat är längden på överföringsvägen för varje mottagen delsumma vid iterationen , , lika med . Om vi ​​accepterar att dataöverföring längs en längdväg i topologier med linjär struktur kräver exekvering av dataöverföringsoperationer, bestäms det totala antalet parallella operationer (total längd av vägar) av dataöverföring av värdet

(exklusive dataöverföringar för bootstrapping-processorer).

Tillämpning av ett datorsystem med rektangulär topologi tvådimensionellt gitter storlek leder till en enkel och visuell tolkning av de utförda beräkningarna (nätverksstrukturen motsvarar strukturen hos de bearbetade data). För en sådan topologi är det mest ändamålsenligt att placera matrisens rader längs gittrets horisontella linjer; i detta fall måste elementen i vektorn skickas längs vertikalerna i beräkningssystemet. Utförandet av beräkningar med detta arrangemang av data kan utföras parallellt längs gittrets linjer; som ett resultat är det totala antalet dataöverföringar detsamma som resultaten för linjal().

Kommunikationsåtgärderna som utförs för att lösa problemet är att överföra data mellan par av MCS-processorer. En detaljerad analys av varaktigheten av genomförandet av sådana operationer görs i punkt 3.3.

4. Rekommendationer för implementering av den parallella algoritmen. När du implementerar en parallell algoritm är det tillrådligt att peka ut det första steget för att ladda de använda processorerna med initiala data. Sådan initialisering tillhandahålls enklast för topologin för ett datorsystem med en topologi i formen komplett graf(laddning är försedd med en enda parallell dataöverföringsoperation). När du organiserar en uppsättning processorer i formuläret hyperkub Det kan vara användbart att ha en tvånivåstyrning av bootstrap-processen, där den centrala styrprocessorn distribuerar matris- och vektorraderna till styrprocessorerna för processorgrupper , , som i sin tur distribuerar elementen i matrisen och vektorn rader till de verkställande processorerna. För topologier i formuläret linjaler eller ringar sekventiell dataöverföring krävs med en sekventiellt minskande mängd data som överförs från till element.

Använda medelnivåparallellism()

1. Val av parallell beräkningsmetod. Med en minskning av det tillgängliga antalet använda processorer (), blir det vanliga kaskadsummeringsschemat när man utför operationer för att multiplicera matrisrader med en vektor otillämpligt. För att förenkla presentationen av materialet antar och använder vi ett modifierat kaskadschema. Den initiala belastningen för varje processor i detta fall ökar och processorn laddas () av ​​delar av raderna i matrisen och vektorn. Exekveringstiden för operationen att multiplicera en matris med en vektor kan uppskattas som värdet

När man använder det antal processorer som krävs för att implementera det modifierade kaskadschemat, dvs. på , ger detta uttryck en uppskattning av exekveringstiden (vid ).

Med antalet processorer, när exekveringstiden för algoritmen uppskattas till , kan ett nytt schema för parallell exekvering av beräkningar föreslås, där för varje iteration av kaskadsummeringar används icke-överlappande processoruppsättningar. Med detta tillvägagångssätt är det tillgängliga antalet processorer tillräckligt för att implementera endast en operation för att multiplicera en rad av en matris och en vektor. Dessutom, när nästa iteration av kaskadsummeringen utförs, är de processorer som ansvarar för utförandet av alla tidigare iterationer fria. Emellertid kan denna nackdel med det föreslagna tillvägagångssättet omvandlas till en fördel genom att använda lediga processorer för att bearbeta nästa rader i matrisen. Som ett resultat kan följande schema bildas transportband utför matris- och vektormultiplikation:

Uppsättningen av processorer är uppdelad i icke-överlappande processorgrupper

,

gruppen , , består av processorer och används för att iterera kaskadalgoritmen (gruppen används för att implementera elementvis multiplikation); totalt antal processorer;

Beräkningsinitiering består av element-för-element-laddning av processorerna i gruppen med värdena 1 i raden i matrisen och vektorn; efter bootstrapen utförs en parallell operation av elementvis multiplikation och efterföljande implementering av den konventionella kaskadsummeringskretsen;

När man utför beräkningar, varje gång efter avslutad operation av elementvis multiplikation, laddas processorerna i gruppen med element från nästa rad i matrisen och beräkningsprocessen initieras för nyladdade data.

Som ett resultat av att tillämpa den beskrivna algoritmen implementerar ett flertal processorer en pipeline för att utföra operationen att multiplicera en matrisrad med en vektor. På en sådan pipeline kan flera individuella rader av matrisen samtidigt vara i olika bearbetningsstadier. Så, till exempel, efter elementvis multiplikation av elementen i den första raden och vektorn, kommer gruppprocessorerna att utföra den första iterationen av kaskadalgoritmen för den första raden i matrisen, och gruppprocessorerna kommer att utföra elementet -vis multiplikation av värdena på den andra raden i matrisen, och så vidare. För illustration i fig. 6.2 visar situationen för beräkningsprocessen efter 2 pipeline-iterationer vid .

Ris. 6.2. Tillståndet för rörledningen för operationen att multiplicera en rad i en matris med en vektor efter att ha utfört 2 iterationer

2. Utvärdering av algoritmens prestandaindikatorer. Multiplikationen av den första raden med vektorn enligt kaskadschemat kommer att slutföras, som vanligt, efter utförandet av () parallella operationer. För andra rader, i enlighet med pipelineschemat för organisering av beräkningar, kommer resultaten av multiplikation av varje på varandra följande rad att visas efter slutförandet av varje efterföljande iteration av pipelinen. Som ett resultat kan den totala exekveringstiden för matris-uttryckas som

Denna uppskattning är något längre än exekveringstiden för den parallella algoritmen som beskrivs i föregående stycke (), men den nyligen föreslagna metoden kräver att mindre data överförs (vektorn skickas endast en gång). Dessutom leder användningen av ett pipeline-schema till att vissa av beräkningsresultaten visas tidigare (vilket kan vara användbart i ett antal databehandlingssituationer).

Som ett resultat bestäms prestandaindikatorerna för algoritmen av följande relationer:

3. Val av datorsystemtopologi. Den ändamålsenliga topologin för ett datorsystem bestäms helt av beräkningsschemat - detta är en komplett binärt träd höjd . Antalet dataöverföringar med en sådan nätverkstopologi bestäms av det totala antalet iterationer som utförs av pipelinen, dvs.

Initieringen av beräkningar startar från trädets löv, summeringsresultaten ackumuleras i rotprocessorn.

Analysen av komplexiteten i de kommunikationsåtgärder som utförs för datorsystem med andra topologier för interprocessorkommunikation är tänkt att utföras som en oberoende uppgift (se även avsnitt 3.4).

Organisation av parallell beräkning med

1. Val av parallell beräkningsmetod. När man använder processorer för att multiplicera en matris med en vektor kan den parallella rad-för-rad multiplikationsalgoritmen som redan diskuterats i manualen användas, där matrisens rader är fördelade rad för rad bland processorerna och varje processor implementerar operationen att multiplicera en enskild rad i matrisen med vektorn. Ett annat möjligt sätt att organisera parallell beräkning kan vara att bygga rörledningsschema för operationen att multiplicera en rad i en matris med en vektor(prickprodukt av vektorer) genom att arrangera alla tillgängliga processorer i en linjär sekvens ( linjaler).

Ett sådant beräkningsschema kan definieras enligt följande. Låt oss representera uppsättningen processorer som en linjär sekvens (se fig. 4.7):

varje processor, används för att multiplicera matriskolumnelementen och vektorelementet. Utförandet av beräkningar på varje processor , , består av följande:

Nästa element i matriskolumnen begärs;

Elementen och multipliceras;

Resultatet av beräkningarna från den tidigare processorn begärs;

Värden läggs till;

Resultatet skickas till nästa processor.

Ris. 6.3. Tillståndet för den linjära pipelinen för operationen att multiplicera en rad i en matris med en vektor efter att ha utfört två iterationer

När du initierar det beskrivna schemat är det nödvändigt att utföra ett antal ytterligare åtgärder:

Under den första iterationen begär varje processor dessutom ett element av vektorn;

För att synkronisera beräkningar (under exekveringen av nästa iteration av kretsen begärs resultatet av beräkningen av den föregående processorn) vid initieringssteget, processorn , , exekverar () en väntande loop.

Dessutom, för enhetligheten i det beskrivna schemat för den första processorn, som inte har någon tidigare processor, är det tillrådligt att införa en tom additionsoperation ( ).

För illustration i fig. 6.3 visar tillståndet för beräkningsprocessen efter den andra iterationen av pipelinen vid .

2. Utvärdering av algoritmens prestandaindikatorer. Multiplikationen av den första raden med vektorn enligt det beskrivna pipelineschemat kommer att slutföras efter exekvering av () parallella operationer. Resultatet av multiplikationen av följande rader kommer att inträffa efter slutförandet av varje nästa iteration av pipelinen (kom ihåg, iterationen av varje processor inkluderar exekveringen av multiplikations- och additionsoperationer). Som ett resultat kan den totala exekveringstiden för matris-uttryckas som:

Denna uppskattning är också större än den minsta möjliga exekveringstiden för den parallella algoritmen för . Användbarheten av att använda ett pipelineberäkningsschema är, som noterats i föregående stycke, att minska mängden överförd data och att en del av beräkningsresultaten visas tidigare.

Prestandaindikatorerna för detta beräkningsschema bestäms av relationerna:

, ,

3. Val av datorsystemtopologi. Den erforderliga topologin för beräkningssystemet för implementering av den beskrivna algoritmen bestäms unikt av det föreslagna beräkningsschemat - detta är en linjärt ordnad uppsättning processorer ( linjal).

Använda en begränsad uppsättning processorer ()

1. Val av parallell beräkningsmetod. När antalet processorer reduceras till ett värde kan ett parallellt beräkningsschema för matris-vektormultiplikation erhållas som ett resultat av anpassning av rad-för-rad-multiplikationsalgoritmen. I detta fall degenereras kaskadschemat för att summera resultaten av elementvis multiplikation och operationen att multiplicera en matrisrad med en vektor utförs fullständigt på en enda processor. Det beräkningsschema som erhålls med detta tillvägagångssätt kan specificeras enligt följande:

En vektor och matrisrader skickas till var och en av de tillgängliga processorerna;

Operationen att multiplicera rader i en matris med en vektor utförs med användning av den vanliga sekventiella algoritmen.

Det bör noteras att storleken på matrisen kanske inte är en multipel av antalet processorer, och då kan matrisens rader inte delas lika mellan processorerna. I dessa situationer är det möjligt att avvika från kravet på enhetlighet i processorbelastningen och, för att erhålla ett enklare beräkningsschema, acceptera regeln att data endast placeras på processorer rad för rad (dvs. element i en rad i en matris kan inte delas mellan flera processorer). Ett annat antal rader resulterar i en annan beräkningsbelastning på processorerna; sålunda kommer slutförandet av beräkningar (den totala varaktigheten av uppgiftslösningen) att bestämmas av drifttiden för den mest laddade processorn (samtidigt kan vissa processorer inaktiva en del av denna totala tid på grund av att deras andel av beräkningar). Den ojämna belastningen av processorer minskar effektiviteten av att använda MCS och, som ett resultat av att betrakta detta exempel, kan vi dra slutsatsen att balanseringsproblem

3. Val av datorsystemtopologi. I enlighet med arten av interprocessorinteraktioner som utförs i det föreslagna beräkningsschemat, organisationen av processorer i form stjärnor(se fig. 1.1). En styrprocessor med en sådan topologi kan användas för att ladda beräkningsprocessorer med initialdata och för att ta emot resultaten av utförda beräkningar.

Matrismultiplikation

Problemet med att multiplicera en matris med en matris definieras av relationerna

.

(för enkelhetens skull antar vi att de multiplicerade matriserna och är kvadratiska och har ordning ).

Analysen av möjliga sätt att parallellt utföra denna uppgift kan utföras i analogi med övervägandet av problemet med att multiplicera en matris med en vektor. Om vi ​​lämnar en sådan analys för oberoende studie kommer vi att visa, med hjälp av exemplet på problemet med matrismultiplikation, användningen av flera allmänna tillvägagångssätt som tillåter oss att bilda parallella metoder för att lösa komplexa problem.

Så i föregående lektion analyserade vi reglerna för att addera och subtrahera matriser. Dessa är så enkla operationer att de flesta elever förstår dem bokstavligen direkt.

Däremot gläds du tidigt. Gratisbiten är över - låt oss gå vidare till multiplikation. Jag varnar dig genast: att multiplicera två matriser är inte alls att multiplicera talen i celler med samma koordinater, som du kanske tror. Allt är mycket roligare här. Och man måste börja med preliminära definitioner.

Konsekventa matriser

En av de viktigaste egenskaperna hos en matris är dess storlek. Vi har redan pratat om detta hundra gånger: $A=\left[ m\times n \right]$ betyder att matrisen har exakt $m$ rader och $n$ kolumner. Vi har redan diskuterat hur man inte förväxlar rader med kolumner. Nu är något annat viktigt.

Definition. Matriser av formen $A=\left[ m\times n \right]$ och $B=\left[ n\times k \right]$, där antalet kolumner i den första matrisen är detsamma som antalet rader i den andra kallas konsekvent.

Återigen: antalet kolumner i den första matrisen är lika med antalet rader i den andra! Av detta får vi två slutsatser på en gång:

  1. Vi bryr oss om ordningen på matriserna. Till exempel är matriserna $A=\vänster[ 3\ gånger 2 \höger]$ och $B=\vänster[ 2\ gånger 5 \höger]$ konsekventa (2 kolumner i den första matrisen och 2 rader i den andra) , men vice versa — matriserna $B=\left[ 2\times 5 \right]$ och $A=\left[ 3\times 2 \right]$ är inte längre konsekventa (5 kolumner i den första matrisen är, som det var, inte 3 rader i den andra).
  2. Konsistens är lätt att kontrollera om du skriver ut alla dimensioner efter varandra. Med hjälp av exemplet från föregående stycke: "3 2 2 5" - samma siffror är i mitten, så matriserna är konsekventa. Men "2 5 3 2" är inte överens, eftersom det finns olika nummer i mitten.

Dessutom verkar kaptenen antyda att kvadratiska matriser av samma storlek $\left[ n\ gånger n \right]$ alltid är konsekventa.

I matematik, när ordningen för uppräkning av objekt är viktig (till exempel i definitionen som diskuterats ovan är ordningen på matriser viktig), talar man ofta om ordnade par. Vi träffade dem i skolan: Jag tycker att det är en no brainer att koordinaterna $\left(1;0 \right)$ och $\left(0;1 \right)$ definierar olika punkter på planet.

Så: koordinater är också ordnade par, som är uppbyggda av tal. Men ingenting hindrar dig från att göra ett sådant par matriser. Då kommer det att vara möjligt att säga: "Ett ordnat par av matriser $\left(A;B \right)$ är konsekvent om antalet kolumner i den första matrisen är detsamma som antalet rader i den andra. "

Vadå då?

Definition av multiplikation

Tänk på två konsekventa matriser: $A=\vänster[ m\ gånger n \höger]$ och $B=\vänster[ n\ gånger k \höger]$. Och vi definierar för dem operationen av multiplikation.

Definition. Produkten av två konsekventa matriser $A=\vänster[ m\ gånger n \höger]$ och $B=\vänster[ n\ gånger k \höger]$ är den nya matrisen $C=\vänster[ m\ gånger k \ höger] $, vars element beräknas enligt formeln:

\[\begin(align) & ((c)_(i;j))=((a)_(i;1))\cdot ((b)_(1;j))+((a)_ (i;2))\cdot ((b)_(2;j))+\ldots +((a)_(i;n))\cdot ((b)_(n;j))= \\ & =\summa\limits_(t=1)^(n)(((a)_(i;t))\cdot ((b)_(t;j))) \end(align)\]

En sådan produkt betecknas på standardsättet: $C=A\cdot B$.

För dem som ser denna definition för första gången uppstår två frågor direkt:

  1. Vad är det här för vilt?
  2. Varför är det så svårt?

Tja, först till kvarn. Låt oss börja med den första frågan. Vad betyder alla dessa index? Och hur gör man inte misstag när man arbetar med riktiga matriser?

Först och främst noterar vi att den långa raden för att beräkna $((c)_(i;j))$ (sätt speciellt ett semikolon mellan indexen för att inte bli förvirrad, men du behöver inte sätta in dem i allmänt - Jag blev själv trött på att skriva formeln i definitionen) kokar verkligen ner till en enkel regel:

  1. Ta $i$-th raden i den första matrisen;
  2. Ta $j$-th kolumnen i den andra matrisen;
  3. Vi får två talföljder. Vi multiplicerar elementen i dessa sekvenser med samma siffror och lägger sedan till de resulterande produkterna.

Denna process är lätt att förstå från bilden:


Schema för att multiplicera två matriser

Än en gång: vi fixar raden $i$ i den första matrisen, kolumnen $j$ i den andra matrisen, multiplicerar elementen med samma siffror och lägger sedan till de resulterande produkterna - vi får $((c)_(ij) ))$. Och så för alla $1\le i\le m$ och $1\le j\le k$. De där. det kommer att finnas $m\xk$ sådana "perversioner" totalt.

Faktum är att vi redan har mött matrismultiplikation i skolans läroplan, bara i en kraftigt trunkerad form. Låt vektorer ges:

\[\begin(align) & \vec(a)=\left(((x)_(a));((y)_(a));((z)_(a)) \right); \\ & \överhögerpil(b)=\vänster(((x)_(b));((y)_(b));((z)_(b)) \höger). \\ \end(align)\]

Då kommer deras skalära produkt att vara exakt summan av parvisa produkter:

\[\överhögerpil(a)\ gånger \överhögerpil(b)=((x)_(a))\cdot ((x)_(b))+((y)_(a))\cdot ((y) )_(b))+((z)_(a))\cdot ((z)_(b))\]

Faktum är att under de avlägsna åren, när träden var grönare och himlen ljusare, multiplicerade vi helt enkelt radvektorn $\overrightarrow(a)$ med kolumnvektorn $\overrightarrow(b)$.

Inget har förändrats idag. Det är bara det att nu finns det fler av dessa rad- och kolumnvektorer.

Men nog med teori! Låt oss titta på verkliga exempel. Och låt oss börja med det enklaste fallet - kvadratiska matriser.

Multiplikation av kvadratmatriser

Uppgift 1. Utför multiplikationen:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]\]

Lösning. Så vi har två matriser: $A=\vänster[ 2\ gånger 2 \höger]$ och $B=\vänster[ 2\ gånger 2 \höger]$. Det är tydligt att de är konsekventa (kvadratmatriser av samma storlek är alltid konsekventa). Så vi gör multiplikationen:

\[\begin(align) & \left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \ begin(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot \left(-2 \right)+2\cdot 3 & 1\cdot 4+2\cdot 1 \\ -3\cdot \left(-2 \right)+4\cdot 3 & -3\cdot 4+4\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 4 & 6 \\ 18 & -8 \\\ end(array)\right]. \end(align)\]

Det är allt!

Svar: $\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\end(array) \right]$.

Uppgift 2. Utför multiplikationen:

\[\left[ \begin(matris) 1 & 3 \\ 2 & 6 \\\end(matris) \right]\cdot \left[ \begin(array)(*(35)(r))9 & 6 \\ -3 & -2 \\\end(array) \right]\]

Lösning. Återigen, konsekventa matriser, så vi utför följande åtgärder:\[\]

\[\begin(align) & \left[ \begin(matris) 1 & 3 \\ 2 & 6 \\\end(matris) \right]\cdot \left[ \begin(array)(*(35)( r)) 9 & 6 \\ -3 & -2 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot 9+3\cdot \ vänster(-3 \höger) & 1\cdot 6+3\cdot \left(-2 \right) \\ 2\cdot 9+6\cdot \left(-3 \right) & 2\cdot 6+6\ cdot \left(-2 \right) \\\end(array) \right]= \\ & =\left[ \begin(matris) 0 & 0 \\ 0 & 0 \\\end(matris) \höger] . \end(align)\]

Som du kan se är resultatet en matris fylld med nollor

Svar: $\left[ \begin(matris) 0 & 0 \\ 0 & 0 \\\end(matris) \right]$.

Från ovanstående exempel är det uppenbart att matrismultiplikation inte är en så komplicerad operation. Åtminstone för 2 x 2 kvadratiska matriser.

I beräkningsprocessen sammanställde vi en mellanmatris, där vi direkt målade vilka siffror som ingår i en viss cell. Det är precis vad som bör göras när man löser verkliga problem.

Grundläggande egenskaper hos matrisprodukten

I ett nötskal. Matrismultiplikation:

  1. Icke-kommutativ: $A\cdot B\ne B\cdot A$ i allmänhet. Det finns naturligtvis speciella matriser för vilka likheten $A\cdot B=B\cdot A$ (till exempel om $B=E$ är identitetsmatrisen), men i de allra flesta fall fungerar inte detta ;
  2. Associativ: $\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \right)$. Det finns inga alternativ här: intilliggande matriser kan multipliceras utan att oroa dig för vad som är till vänster och till höger om dessa två matriser.
  3. Distributivt: $A\cdot \left(B+C \right)=A\cdot B+A\cdot C$ och $\left(A+B \right)\cdot C=A\cdot C+B\cdot C $

Och nu - ändå, men mer detaljerat.

Matrismultiplikation är ungefär som klassisk talmultiplikation. Men det finns skillnader, den viktigaste är det matrismultiplikation är generellt sett icke-kommutativ.

Betrakta igen matriserna från uppgift 1. Vi känner redan till deras direkta produkt:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\end(array) \right]\]

Men om vi byter matriser får vi ett helt annat resultat:

\[\left[ \begin(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]=\left[ \begin(matris) -14 & 4 \\ 0 & 10 \\\end(matris )\höger]\]

Det visar sig att $A\cdot B\ne B\cdot A$. Dessutom är multiplikationsoperationen endast definierad för de konsekventa matriserna $A=\left[ m\times n \right]$ och $B=\left[ n\times k \right]$, men ingen garanterade att de skulle finnas kvar konsekvent, om de byts ut. Till exempel är matriserna $\left[ 2\times 3 \right]$ och $\left[ 3\times 5 \right]$ ganska konsekventa i denna ordning, men samma matriser $\left[ 3\x 5 \ höger] $ och $\vänster[ 2\ gånger 3 \höger]$ skrivna i omvänd ordning matchar inte längre. Sorg :(

Bland kvadratiska matriser av en given storlek $n$ kommer det alltid att finnas de som ger samma resultat både när de multipliceras i direkt och i omvänd ordning. Hur man beskriver alla sådana matriser (och hur många av dem i allmänhet) är ett ämne för en separat lektion. Idag ska vi inte prata om det. :)

Men matrismultiplikation är associativ:

\[\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \right)\]

Därför, när du behöver multiplicera flera matriser i rad samtidigt, är det inte alls nödvändigt att göra det i förväg: det är mycket möjligt att vissa intilliggande matriser, när de multipliceras, ger ett intressant resultat. Till exempel en nollmatris, som i uppgift 2 diskuterat ovan.

I verkliga problem måste man oftast multiplicera kvadratiska matriser av storleken $\vänster[ n\ gånger n \höger]$. Mängden av alla sådana matriser betecknas med $((M)^(n))$ (dvs posterna $A=\left[ n\ gånger n \right]$ och \ betyder samma sak), och det kommer att innehåller definitivt matris $E$, som kallas identitetsmatrisen.

Definition. Identitetsmatrisen med storleken $n$ är en matris $E$ så att för varje kvadratisk matris $A=\left[ n\ gånger n \right]$ gäller likheten:

En sådan matris ser alltid likadan ut: det finns enheter på dess huvuddiagonal och nollor i alla andra celler.

\[\begin(align) & A\cdot \left(B+C \right)=A\cdot B+A\cdot C; \\ & \left(A+B \höger)\cdot C=A\cdot C+B\cdot C. \\ \end(align)\]

Med andra ord, om du behöver multiplicera en matris med summan av två andra, så kan du multiplicera den med var och en av dessa "andra två", och sedan lägga till resultaten. I praktiken måste du vanligtvis utföra den omvända operationen: vi märker samma matris, tar den ur fästet, utför addition och förenklar därigenom vårt liv. :)

Observera att för att beskriva distributionsförmågan var vi tvungna att skriva två formler: där summan är i den andra faktorn och där summan är i den första. Detta beror just på det faktum att matrismultiplikation är icke-kommutativ (och i allmänhet, i icke-kommutativ algebra, finns det många alla möjliga skämt som inte ens kommer att tänka på när man arbetar med vanliga tal). Och om du till exempel behöver skriva ner den här egenskapen under provet, se till att skriva båda formlerna, annars kan läraren bli lite arg.

Okej, det här var alla sagor om kvadratiska matriser. Hur är det med rektanglar?

Fallet med rektangulära matriser

Men ingenting - allt är detsamma som med fyrkantiga.

Uppgift 3. Utför multiplikationen:

\[\left[ \begin(matris) \begin(matris) 5 \\ 2 \\ 3 \\\end(matris) & \begin(matris) 4 \\ 5 \\ 1 \\\end(matris) \ \\end(matris) \right]\cdot \left[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end(array) \right]\]

Lösning. Vi har två matriser: $A=\vänster[ 3\ gånger 2 \höger]$ och $B=\vänster[ 2\ gånger 2 \höger]$. Låt oss skriva siffrorna som anger storlekarna i rad:

Som du kan se är de två centrala siffrorna desamma. Det betyder att matriserna är konsekventa och de kan multipliceras. Och vid utgången får vi matrisen $C=\left[ 3\times 2 \right]$:

\[\begin(align) & \left[ \begin(matris) \begin(matris) 5 \\ 2 \\ 3 \\\end(matris) & \begin(matris) 4 \\ 5 \\ 1 \\ \end(matris) \\\end(matris) \right]\cdot \left[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 5\cdot \left(-2 \right)+4\cdot 3 & 5\cdot 5+4\cdot 4 \\ 2 \cdot \left(-2 \right)+5\cdot 3 & 2\cdot 5+5\cdot 4 \\ 3\cdot \left(-2 \right)+1\cdot 3 & 3\cdot 5+1 \cdot 4 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 2 & 41 \\ 11 & 30 \\ -3 & 19 \ \\end(array)\right]. \end(align)\]

Allt är klart: den slutliga matrisen har 3 rader och 2 kolumner. Ganska $=\vänster[ 3\ gånger 2 \höger]$.

Svar: $\left[ \begin(array)(*(35)(r)) \begin(array)(*(35)(r)) 2 \\ 11 \\ -3 \\\end(array) & \begin(matris) 41 \\ 30 \\ 19 \\\end(matris) \\\end(array) \right]$.

Tänk nu på en av de bästa träningsuppgifterna för dem som precis har börjat arbeta med matriser. I den behöver du inte bara multiplicera några två tabletter, utan först bestämma: är en sådan multiplikation tillåten?

Uppgift 4. Hitta alla möjliga parvisa produkter av matriser:

\\]; $B=\left[ \begin(matris) \begin(matris) 0 \\ 2 \\ 0 \\ 4 \\\end(matris) & \begin(matris) 1 \\ 0 \\ 3 \\ 0 \ \\end(matris) \\\end(matris) \right]$; $C=\left[ \begin(matrix)0 & 1 \\ 1 & 0 \\\end(matris) \right]$.

Lösning. Låt oss först skriva ner måtten på matriserna:

\;\ B=\vänster[ 4\gånger 2 \höger];\ C=\vänster[ 2\gånger 2 \höger]\]

Vi får att matrisen $A$ endast kan matchas med matrisen $B$, eftersom antalet kolumner i $A$ är 4, och endast $B$ har detta antal rader. Därför kan vi hitta produkten:

\\cdot \left[ \begin(array)(*(35)(r)) 0 & 1 \\ 2 & 0 \\ 0 & 3 \\ 4 & 0 \\\end(array) \right]=\ vänster[ \begin(array)(*(35)(r))-10 & 7 \\ 10 & 7 \\\end(array) \right]\]

Jag föreslår att läsaren utför mellanstegen på egen hand. Jag kommer bara att notera att det är bättre att bestämma storleken på den resulterande matrisen i förväg, även innan några beräkningar:

\\cdot \vänster[ 4\gånger 2 \höger]=\vänster[ 2\gånger 2 \höger]\]

Med andra ord tar vi helt enkelt bort de "övergångskoefficienter" som säkerställde konsistensen av matriserna.

Vilka andra alternativ är möjliga? Det är säkert möjligt att hitta $B\cdot A$, eftersom $B=\left[ 4\times 2 \right]$, $A=\left[ 2\times 4 \right]$, så det ordnade paret $\ left(B ;A \right)$ är konsekvent, och produktens dimension blir:

\\cdot \vänster[ 2\gånger 4 \höger]=\vänster[ 4\gånger 4 \höger]\]

Kort sagt, utdata kommer att vara en matris $\left[ 4\times 4 \right]$, vars koefficienter är lätta att beräkna:

\\cdot \left[ \begin(array)(*(35)(r)) 1 & -1 & 2 & -2 \\ 1 & 1 & 2 & 2 \\\end(array) \right]=\ vänster[ \begin(array)(*(35)(r))1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\end(array) \right]\]

Självklart kan du också matcha $C\cdot A$ och $B\cdot C$, och det är allt. Därför skriver vi helt enkelt de resulterande produkterna:

Det var enkelt.:)

Svar: $AB=\left[ \begin(array)(*(35)(r)) -10 & 7 \\ 10 & 7 \\\end(array) \right]$; $BA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\end(array) \right]$; $CA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 1 & -1 & 2 & -2 \\\end(array) \right]$; $BC=\left[ \begin(array)(*(35)(r))1 & 0 \\ 0 & 2 \\ 3 & 0 \\ 0 & 4 \\\end(array) \right]$.

I allmänhet rekommenderar jag starkt att du gör den här uppgiften själv. Och en annan liknande uppgift som är i läxor. Dessa till synes enkla tankar hjälper dig att räkna ut alla nyckelstegen i matrismultiplikation.

Men historien slutar inte där. Låt oss gå vidare till speciella fall av multiplikation. :)

Radvektorer och kolumnvektorer

En av de vanligaste matrisoperationerna är multiplikation med en matris som har en rad eller en kolumn.

Definition. En kolumnvektor är en $\vänster[ m\ gånger 1 \höger]$ matris, dvs. som består av flera rader och endast en kolumn.

En radvektor är en matris med storleken $\vänster[ 1\ gånger n \höger]$, dvs. som består av en rad och flera kolumner.

Faktum är att vi redan har träffat dessa föremål. Till exempel är en vanlig tredimensionell vektor från stereometri $\overrightarrow(a)=\left(x;y;z \right)$ inget annat än en radvektor. Ur en teoretisk synvinkel är det nästan ingen skillnad mellan rader och kolumner. Du behöver bara vara försiktig när du koordinerar med de omgivande multiplikatormatriserna.

Uppgift 5. Multiplicera:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\end(array) \right] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]\]

Lösning. Vi har en produkt av konsekventa matriser: $\vänster[ 3\ gånger 3 \höger]\cdot \vänster[ 3\ gånger 1 \höger]=\vänster[ 3\ gånger 1 \höger]$. Hitta denna bit:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\end(array) \right] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]=\left[ \begin(array)(*(35) )(r)) 2\cdot 1+\left(-1 \right)\cdot 2+3\cdot \left(-1 \right) \\ 4\cdot 1+2\cdot 2+0\cdot 2 \ \ -1\cdot 1+1\cdot 2+1\cdot \left(-1 \right) \\\end(array) \right]=\left[ \begin(array)(*(35)(r) ) -3 \\ 8 \\ 0 \\\end(array) \right]\]

Svar: $\left[ \begin(array)(*(35)(r))-3 \\ 8 \\ 0 \\\end(array) \right]$.

Uppgift 6. Utför multiplikationen:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end(array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\end(array) \right]\]

Lösning. Återigen är allt konsekvent: $\vänster[ 1\ gånger 3 \höger]\cdot \vänster[ 3\ gånger 3 \höger]=\vänster[ 1\ gånger 3 \höger]$. Vi betraktar arbetet:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end(array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\end(array) \right]=\left[ \begin(array)(*(35)( r))5 & -19 & 5 \\\end(array) \right]\]

Svar: $\left[ \begin(matris) 5 & -19 & 5 \\\end(matris) \right]$.

Som du kan se, när du multiplicerar en radvektor och en kolumnvektor med en kvadratisk matris, är utdata alltid en rad eller kolumn av samma storlek. Detta faktum har många tillämpningar - från att lösa linjära ekvationer till alla möjliga koordinattransformationer (som i slutändan också kommer ner till ekvationssystem, men låt oss inte prata om sorgliga saker).

Jag tror att allt var uppenbart här. Låt oss gå vidare till den sista delen av dagens lektion.

Matrisexponentiering

Bland alla multiplikationsoperationer förtjänar exponentiering särskild uppmärksamhet - det är när vi multiplicerar samma objekt med sig själv flera gånger. Matriser är inget undantag, de kan också höjas i olika grad.

Sådana arbeten samordnas alltid:

\\cdot \vänster[ n\ gånger n \höger]=\vänster[ n\ gånger n \höger]\]

Och de betecknas på samma sätt som vanliga examina:

\[\begin(align) & A\cdot A=((A)^(2)); \\ & A\cdot A\cdot A=((A)^(3)); \\ & \underbrace(A\cdot A\cdot \ldots \cdot A)_(n)=((A)^(n)). \\ \end(align)\]

Vid första anblicken är allt enkelt. Låt oss se hur det ser ut i praktiken:

Uppgift 7. Höj matrisen till angiven effekt:

$((\left[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end(matris) \right])^(3))$

Lösning. Okej, låt oss bygga. Låt oss kvadrera det först:

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matris) \right])^(2))=\left[ \begin(matris ) 1 & 1 \\ 0 & 1 \\\end(matris) \höger]\cdot \left[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end(matris) \höger]= \\ & =\vänster[ \begin(array)(*(35)(r)) 1\cdot 1+1\cdot 0 & 1\cdot 1+1\cdot 1 \\ 0\cdot 1+1\cdot 0 & 0\cdot 1+1\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \ \\end(array) \right] \end(align)\]

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matris) \right])^(3))=((\left[ \begin) (matris) 1 & 1 \\ 0 & 1 \\\end(matris) \höger])^(3))\cdot \left[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end( matris) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \\\end(array) \right]\cdot \left[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end(matris) \right]= \\ & =\vänster[ \begin(array)(*(35)(r)) 1 & 3 \\ 0 & 1 \\\end(array) \right] \end(align)\]

Det är allt.:)

Svar: $\left[ \begin(matrix)1 & 3 \\ 0 & 1 \\\end(matris) \right]$.

Problem 8. Höj matrisen till angiven effekt:

\[((\vänster[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end(matris) \höger])^(10))\]

Lösning. Gråt bara inte nu över det faktum att "graden är för hög", "världen är inte rättvis" och "lärarna har helt tappat sina banker". Faktum är att allt är enkelt:

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matris) \right])^(10))=((\left[ \begin) (matris) 1 & 1 \\ 0 & 1 \\\end(matris) \höger])^(3))\cdot ((\left[ \begin(matris) 1 & 1 \\ 0 & 1 \\\ end(matris) \höger])^(3))\cdot ((\vänster[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end(matris) \höger])^(3))\ cdot \left[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end(matris) \right]= \\ & =\left(\left[ \begin(matris) 1 & 3 \\ 0 & 1 \\\end(matris) \höger]\cdot \left[ \begin(matris) 1 & 3 \\ 0 & 1 \\\end(matris) \höger] \höger)\cdot \left(\left[ \begin(matris) 1 & 3 \\ 0 & 1 \\\end(matris) \höger]\cdot \left[ \begin(matris) 1 & 1 \\ 0 & 1 \\\end(matris) \höger ] \right)= \\ & =\left[ \begin(matris) 1 & 6 \\ 0 & 1 \\\end(matris) \höger]\cdot \left[ \begin(matris) 1 & 4 \\ 0 & 1 \\\end(matris) \right]= \\ & =\vänster[ \begin(matris) 1 & 10 \\ 0 & 1 \\\end(matris) \right] \end(align)\ ]

Observera att på den andra raden använde vi multiplikationsassociativitet. Egentligen använde vi det i föregående uppgift, men där var det underförstått.

Svar: $\left[ \begin(matris) 1 & 10 \\ 0 & 1 \\\end(matris) \right]$.

Som du kan se är det inget komplicerat i att höja en matris till en makt. Det sista exemplet kan sammanfattas:

\[((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matris) \right])^(n))=\left[ \begin(array)(*(35) (r)) 1 & n \\ 0 & 1 \\\end(array) \right]\]

Detta faktum är lätt att bevisa genom matematisk induktion eller direkt multiplikation. Det är dock långt ifrån alltid möjligt att fånga sådana mönster när man höjer till en makt. Var därför försiktig: det är ofta lättare och snabbare att multiplicera flera matriser "tomma" än att leta efter några mönster där.

Leta i allmänhet inte efter en högre mening där det inte finns någon. Låt oss slutligen överväga exponentieringen av en större matris - så mycket som $\left[ 3\times 3 \right]$.

Problem 9. Höj matrisen till angiven effekt:

\[((\vänster[ \begin(matris) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \höger])^(3))\]

Lösning. Låt oss inte leta efter mönster. Vi arbetar "genom":

\[((\vänster[ \begin(matris) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \höger])^(3))=(( \left[ \begin(matris) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \right])^(2))\cdot \left[ \begin (matris)0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \höger]\]

Låt oss börja med att kvadrera denna matris:

\[\begin(align) & ((\left[ \begin(matris) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \right])^( 2))=\vänster[ \begin(matris) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \höger]\cdot \left[ \begin(matris ) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \right]= \\ & =\left[ \begin(array)(*(35)(r) )) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\end(array) \right] \end(align)\]

Låt oss nu kubera det:

\[\begin(align) & ((\left[ \begin(matris) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \right])^( 3))=\left[ \begin(array)(*(35)(r)) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\end(array) \right] \cdot \left[ \begin(matris) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matris) \right]= \\ & =\left[ \begin( array)(*(35)(r)) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end(array) \right] \end(align)\]

Det är allt. Problemet löst.

Svar: $\left[ \begin(matris) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end(matris) \right]$.

Som du kan se har mängden beräkningar blivit större, men innebörden har inte förändrats alls. :)

Den här lektionen kan ta slut. Nästa gång kommer vi att överväga den omvända operationen: vi kommer att leta efter de ursprungliga multiplikatorerna med den befintliga produkten.

Som du förmodligen redan gissat kommer vi att prata om den inversa matrisen och metoder för att hitta den.

Definition 1

Produkten av matriser (C=AB) är en operation endast för konsekventa matriser A och B, där antalet kolumner i matris A är lika med antalet rader i matris B:

C ⏟ m × n = A ⏟ m × p × B ⏟ p × n

Exempel 1

Matrisdata:

  • A = a (i j) av dimensionerna m × n;
  • B = b (i j) p × n

Matris C , vars element c i j beräknas med följande formel:

ci j = ai 1 × b 1 j + ai 2 × b 2 j+. . . + a i p × b p j , i = 1 , . . . m, j = 1, . . . m

Exempel 2

Låt oss beräkna produkterna AB=BA:

A = 1 2 1 0 1 2 , B = 1 0 0 1 1 1

Lösning med matrismultiplikationsregeln:

A ⏟ 2 × 3 × B ⏟ 3 × 2 = 1 2 1 0 1 2 × 1 0 0 1 1 1 = 1 × 1 + 2 × 0 + 1 × 1 1 × 0 + 2 × 1 + 1 × 1 0 × 1 + 1 × 0 + 2 × 1 0 × 0 + 1 × 1 + 2 × 1 = = 2 3 2 3 ⏟ 2 × 2

B ⏟ 3 × 2 × A ⏟ 2 × 3 = 1 0 0 1 1 1 × 1 2 1 0 1 2 = 1 × 1 + 0 × 0 1 × 2 + 0 × 1 1 × 1 + 0 × 2 0 × 1 + 1 × 0 0 × 2 + 1 × 1 0 × 1 + 1 × 2 1 × 1 + 1 × 0 1 × 2 + 1 × 1 1 × 1 + 1 × 2 = 1 2 1 0 1 2 1 3 3 ⏟ 3×3

Produkten A B och B A finns, men de är matriser av olika storlek: A B är inte lika med B A.

Egenskaper för matrismultiplikation

Matrismultiplikationsegenskaper:

  • (A B) C = A (B C) - associativitet för matrismultiplikation;
  • A (B + C) \u003d A B + A C - distributiv multiplikation;
  • (A + B) C \u003d A C + B C - multiplikationsfördelning;
  • λ (A B) = (λ A) B
Exempel 1

Kontrollera egenskap #1: (A B) C = A (B C):

(A × B) × A = 1 2 3 4 × 5 6 7 8 × 1 0 0 2 = 19 22 43 50 × 1 0 0 2 = 19 44 43 100,

A (B × C) = 1 2 3 4 × 5 6 7 8 1 0 0 2 = 1 2 3 4 × 5 12 7 16 = 19 44 43 100 .

Exempel 2

Vi kontrollerar egenskap nr 2: A (B + C) \u003d A B + A C:

A × (B + C) = 1 2 3 4 × 5 6 7 8 + 1 0 0 2 = 1 2 3 4 × 6 6 7 10 = 20 26 46 58,

A B + A C \u003d 1 2 3 4 × 5 6 7 8 + 1 2 3 4 × 1 0 0 2 \u003d 19 22 43 50 + 1 4 3 8 \u003d 20 26 46 58.

Produkt av tre matriser

Produkten av tre matriser A B C beräknas på två sätt:

  • hitta A B och multiplicera med C: (A B) C;
  • eller hitta först B C och multiplicera sedan A (B C) .
Exempel 3

Multiplicera matriser på två sätt:

4 3 7 5 × - 28 93 38 - 126 × 7 3 2 1

Åtgärdsalgoritm:

  • hitta produkten av 2 matriser;
  • hitta sedan produkten av 2 matriser igen.

ett). A B \u003d 4 3 7 5 × - 28 93 38 - 126 \u003d 4 (- 28) + 3 × 38 4 × 93 + 3 (- 126) 7 (- 28) + 5 × 38 7 × 93 + 5 (- 126) = 2 - 6 - 6 21

2). A B C = (A B) C = 2 - 6 - 6 21 7 3 2 1 = 2 × 7 - 6 × 2 2 × 3 - 6 × 1 - 6 × 7 + 21 × 2 - 6 × 3 + 21 × 1 = 2 0 0 3 .

Vi använder formeln A B C \u003d (A B) C:

ett). B C = - 28 93 38 - 126 7 3 2 1 = - 28 × 7 + 93 × 2 - 28 × 3 + 93 × 1 38 × 7 - 126 × 2 38 × 3 - 126 × 1 = - 10 9 14 - 12

2). A B C \u003d (A B) C \u003d 7 3 2 1 - 10 9 14 - 12 \u003d 4 (- 10) + 3 × 14 4 × 9 + 3 (- 12) 7 (- 10) + 5 × 14 7 × 9 + 5 (- 12) = 2 0 0 3

Svar: 4 3 7 5 - 28 93 38 - 126 7 3 2 1 = 2 0 0 3

Multiplicera en matris med ett tal

Definition 2

Produkten av matrisen A med talet k är matrisen B \u003d A k av samma storlek, som erhålls från originalet genom att multiplicera med ett givet antal av alla dess element:

bi, j = k × ai, j

Egenskaper för att multiplicera en matris med ett tal:

  • 1 × A = A
  • 0 × A = nollmatris
  • k(A + B) = kA + kB
  • (k + n) A = k A + n A
  • (k×n)×A = k(n×A)
Exempel 4

Hitta produkten av matrisen A \u003d 4 2 9 0 gånger 5.

5 A = 5 4 2 9 0 5 × 4 5 × 2 5 × 9 5 × 0 = 20 10 45 0

Multiplikation av en matris med en vektor

Definition 3

För att hitta produkten av en matris och en vektor måste du multiplicera enligt regeln rad för kolumn:

  • om du multiplicerar en matris med en kolumnvektor måste antalet kolumner i matrisen matcha antalet rader i kolumnvektorn;
  • resultatet av multiplikation av en kolumnvektor är bara en kolumnvektor:

A B = a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋯ ⋯ ⋯ ⋯ a m 1 a m 2 ⋯ a m n b 1 b 2 ⋯ b 1 n = a 11 × b 1 + a 2 + a 2 1 n × b n a 21 × b 1 + a 22 × b 2 + ⋯ + a 2 n × b n ⋯ ⋯ ⋯ ⋯ a m 1 × b 1 + a m 2 × b 2 + ⋯ + a m n × b n = c 1 c 2 n 1 m

  • om du multiplicerar en matris med en radvektor, måste matrisen som ska multipliceras uteslutande vara en kolumnvektor, och antalet kolumner måste matcha antalet kolumner i radvektorn:

A B = a a ⋯ a b b ⋯ b = a 1 × b 1 a 1 × b 2 ⋯ a 1 × b n a 2 × b 1 a 2 × b 2 ⋯ a 2 × b n ⋯ ⋯ ⋯ ⋯ a n × b 1 a n × b 2 a n × b n = c 11 c 12 ⋯ c 1 n c 21 c 22 ⋯ c 2 n ⋯ ⋯ ⋯ ⋯ c n 1 c n 2 ⋯ c n n

Exempel 5

Hitta produkten av matris A och kolumnvektor B:

A B \u003d 2 4 0 - 2 1 3 - 1 0 1 1 2 - 1 \u003d 2 × 1 + 4 × 2 + 0 × (- 1) - 2 × 1 + 1 × 2 + 3 × (- 1) - 1 × 1 + 0 × 2 + 1 × (- 1) = 2 + 8 + 0 - 2 + 2 - 3 - 1 + 0 - 1 = 10 - 3 - 2

Exempel 6

Hitta produkten av matris A och radvektor B:

A \u003d 3 2 0 - 1, B \u003d - 1 1 0 2

A B = 3 2 0 1 × - 1 1 0 2 = 3 × (- 1) 3 × 1 3 × 0 3 × 2 2 × (- 1) 2 × 1 2 × 0 2 × 2 0 × (- 1) 0 × 1 0 × 0 0 × 2 1 × (- 1) 1 × 1 1 × 0 1 × 2 = - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

Svar: A B \u003d - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

Om du märker ett fel i texten, markera det och tryck på Ctrl+Enter



Senaste avsnittsartiklar:

Lista över kända frimurare Utländska kända frimurare
Lista över kända frimurare Utländska kända frimurare

Tillägnad minnet av Metropolitan John (Snychev) från St. Petersburg och Ladoga, som välsignade mitt arbete med studiet av subversiva anti-ryska...

Vad är en teknisk skola - definition, funktioner för antagning, typer och recensioner Vad är skillnaden mellan ett institut och ett universitet
Vad är en teknisk skola - definition, funktioner för antagning, typer och recensioner Vad är skillnaden mellan ett institut och ett universitet

25 Moskva-högskolor ingår i "Top-100"-betyget för de bästa utbildningsorganisationerna i Ryssland. Studien genomfördes av en internationell organisation...

Varför män inte håller sina löften oförmåga att säga nej
Varför män inte håller sina löften oförmåga att säga nej

Det har länge funnits en lag bland män: om man kan kalla det så kan ingen veta varför de inte håller sina löften. Förbi...