Pagpaparami ng matrix-vector c. Pagpaparami ng isang matrix sa isang vector

Ang MatLab system ay nagsasagawa lamang ng mga operasyong matematikal sa mga matrice at vectors. Isaalang-alang muna ang mga simpleng operasyon ng pagdaragdag at pagpaparami ng mga matrice at vectors. Hayaang magbigay ng dalawang vector

a = ; % row vector
b = ; % column vector

kung gayon ang pagpaparami ng dalawang vector na ito ay maaaring isulat bilang

c = a*b; %c=1+2+3+4+5=16
d = b*a; %d - matrix ng 5x5 na elemento

Alinsunod sa mga operasyon sa mga vector, ang pagpaparami ng isang row vector sa isang column vector ay nagbibigay ng isang numero, at ang pagpaparami ng isang column vector sa isang row vector ay nagbibigay ng isang two-dimensional na matrix, na kung saan ay ang resulta ng mga kalkulasyon sa halimbawa sa itaas, i.e.

Ang pagdaragdag at pagbabawas ng dalawang vector ay nakasulat bilang

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

Tandaan na ang mga pagpapatakbo ng karagdagan at pagbabawas ay maaaring isagawa sa pagitan ng dalawang column vector o dalawang row vector. Kung hindi, maglalabas ang MatLab ng mensahe ng error, dahil hindi maaaring maidagdag ang mga vector ng iba't ibang uri. Ito ang kaso sa lahat ng mga ilegal na operasyon ng arithmetic: kung hindi sila makalkula, ang MatLab system ay mag-uulat ng isang error at ang programa ay magtatapos sa kaukulang linya.

Katulad nito, ang mga operasyon ng pagpaparami at pagdaragdag sa pagitan ng mga matrice ay ginaganap:

A = ;
B = mga (3);
C=A+B; % karagdagan ng dalawang matrice na magkapareho ang laki
D=A+5; % karagdagan ng isang matrix at isang numero
E=A*B; % multiplication ng matrix A sa B
F=B*A; % multiplication ng matrix B sa A
G=5*A; % multiplication ng isang matrix sa isang numero

Ang mga operasyon ng pagkalkula ng inverse matrix, pati na rin ang mga transposing matrice at vectors, ay nakasulat tulad ng sumusunod:

a = ; % row vector
b = a'; % column vector na nabuo ni
% transpose ng row vector a.
A = ; % matrix 3x3 na elemento
B = a*A; %b= - row vector
C=A*b; % C = - column vector
D = a*A*a'; % D = 45 – numero, kabuuan ng matrix A
E = A'; Ang % E ay ang transposed matrix A
F = inv(A); % F - inverse matrix A
G = A^-1; % G - inverse matrix A

Mula sa halimbawa sa itaas, makikita na ang operasyon ng transposing matrices at vectors ay tinutukoy ng simbolo ' (apostrophe), na inilalagay pagkatapos ng pangalan ng vector o matrix. Ang pagkalkula ng inverse matrix ay maaaring gawin sa pamamagitan ng pagtawag sa inv() function o sa pamamagitan ng pagtaas ng matrix sa -1 na kapangyarihan. Magiging pareho ang resulta sa parehong mga kaso, at dalawang paraan ng pagkalkula ang ginawa para sa kadalian ng paggamit kapag nagpapatupad ng iba't ibang mga algorithm.

Kung sa kurso ng mga kalkulasyon ay kinakailangan na dumami, hatiin o itaas ang mga elemento ng isang vector o elemento ng matrix sa pamamagitan ng elemento, kung gayon ang mga sumusunod na operator ay ginagamit para dito:

.* - element-wise multiplication;
./ at .\ - mga dibisyon na matalino sa elemento;
.^ - element-wise exponentiation.

Isaalang-alang ang pagpapatakbo ng mga operator na ito sa sumusunod na halimbawa.

a = ; % row vector
b = ; % row vector
c = a.*b; %c=
A = mga (3); % 3x3 matrix na binubuo ng mga
B = ; % matrix 3x3
C = A.*B; % matrix 3x3, na binubuo ng
D = A./B; % matrix 3x3, na binubuo ng
E = A.\B; % matrix 3x3, na binubuo ng
F = A.^2; % pag-squaring ng mga elemento ng matrix A

Upang tapusin ang seksyong ito, isaalang-alang ang ilang mga function na kapaki-pakinabang kapag nagtatrabaho sa mga vector at matrice.

Upang mahanap ang pinakamataas na halaga ng isang elemento ng vector, ginagamit ang karaniwang function na max(), na nagbabalik ng natagpuang maximum na halaga ng elemento at ang posisyon nito (index):

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

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

Ang halimbawa sa itaas ay nagpapakita ng dalawang magkaibang paraan para tawagan ang max() function. Sa unang kaso, ang parehong maximum na halaga ng elemento at ang index nito sa vector ay tinutukoy, at sa pangalawa, ang pinakamataas na halaga lamang ng elemento ang tinutukoy.

Sa kaso ng mga matrice, tinutukoy ng function na ito ang pinakamataas na halaga sa mga column, tulad ng ipinapakita sa halimbawa sa ibaba:

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

Ang buong syntax ng max() function ay matatagpuan sa pamamagitan ng pag-type ng command sa MatLab command window

tulong<название функции>

Ang min() function ay gumagana sa katulad na paraan, na tumutukoy sa minimum na halaga ng isang vector o matrix na elemento at ang index nito.

Ang isa pang kapaki-pakinabang na function para sa pagtatrabaho sa mga matrice at vector ay ang sum() function, na kinakalkula ang kabuuan ng mga halaga ng mga elemento ng isang vector o mga haligi ng isang matrix:

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

Kapag kinakalkula ang kabuuan ng S2, ang kabuuan ng mga halaga ng mga elemento ng matrix A ay unang kinakalkula ng mga haligi, at pagkatapos ay sa pamamagitan ng mga hilera. Bilang isang resulta, ang variable na S2 ay naglalaman ng kabuuan ng mga halaga ng lahat ng mga elemento ng matrix A.

Upang pag-uri-uriin ang mga halaga ng mga elemento ng isang vector o matrix sa pataas o pababang pagkakasunud-sunod, gamitin ang sort() function tulad ng sumusunod:

a = ;

b1 = sort(a); %b1=
b2 = sort(a, 'bumaba'); %b2=
b3 = sort(a, 'umakyat'); %b3=

para sa mga matrice

A = ;
B1 = sort(A); %B1=
B2 = sort(A, 'bumaba'); %B2=

Sa maraming mga praktikal na problema, madalas na kinakailangan upang makahanap ng isang tiyak na elemento sa isang vector o matrix. Magagawa ito gamit ang standard find() function, na kumukuha bilang argumento ng isang kundisyon ayon sa kung saan matatagpuan ang mga kinakailangang elemento, halimbawa:

a = ;
b1 = find(a == 2); %b1 = 4 - index ng elemento 2
b2 = find(a ~= 2); % b2 = - mga indeks na walang 2
b3 = find(a > 3); %b3=

Sa halimbawa sa itaas, ang simbolo na '==' ay nangangahulugan ng pagsuri para sa pagkakapantay-pantay, at ang simbolo na '~=' ay nagsasagawa ng pagsusuri para sa hindi pagkakapantay-pantay ng mga halaga ng mga elemento ng vector a. Higit pang mga detalye tungkol sa mga operator na ito ay ilalarawan sa seksyon sa mga may kondisyong operator.

Ang isa pang kapaki-pakinabang na function para sa pagtatrabaho sa mga vector at matrice ay ang mean() function para sa pagkalkula ng arithmetic mean, na gumagana tulad nito:

a = ;
m = ibig sabihin (a); %m = 3
A = ;
M1 = ibig sabihin(A); %M1=
M2 = ibig sabihin(mean(A)); % M2 = 4.333


Ang bawat vector ay maaaring tingnan bilang isang haligi o isang hilera na matrix. Ang isang column na matrix ay tatawaging column vector, at ang isang one-row na matrix ay tatawaging row vector.

Kung ang A ay isang matrix na may sukat na m*n, kung gayon ang column vector b ay may sukat na n, at ang row vector b ay may sukat na m.

Kaya, upang i-multiply ang isang matrix sa isang vector, dapat ituring ng isa ang vector bilang isang column vector. Kapag nagpaparami ng vector sa isang matrix, dapat itong ituring bilang isang row vector.

multiply matrix

sa kumplikadong vector

Nakukuha namin ang resulta

Tulad ng nakikita mo, sa dimensyon ng vector na hindi nagbabago, maaari tayong magkaroon ng dalawang solusyon.

Nais kong iguhit ang iyong pansin sa katotohanan na ang matrix sa una at pangalawang bersyon, sa kabila ng parehong mga halaga, ay ganap na naiiba (mayroon silang magkakaibang mga sukat)

Sa unang kaso, ang vector ay itinuturing bilang isang haligi at pagkatapos ito ay kinakailangan multiply matrix sa pamamagitan ng vector, at sa pangalawang kaso mayroon kaming isang row vector at pagkatapos ay mayroon kami ang produkto ng isang vector at isang matrix.

Ang bot na ito ay nagpaparami rin ng mga vector at matrice na may mga kumplikadong halaga. Batay sa isang mas kumpletong calculator Multiplication of Matrices na may Complex Values ​​Online

Mga katangian ng matrix-vector multiplication

Matrix

Vector column

Vektor ng hilera

Arbitrary na numero

1. Ang produkto ng isang matrix sa pamamagitan ng kabuuan ng mga vector ng haligi ay katumbas ng kabuuan ng mga produkto ng matrix ng bawat isa sa mga vectors

2. Ang produkto ng kabuuan ng mga row vector sa pamamagitan ng matrix ay katumbas ng kabuuan ng mga produkto ng mga vector sa pamamagitan ng matrix

3. Ang karaniwang kadahilanan ng isang vector ay maaaring alisin sa produkto ng isang matrix ng isang vector / isang vector ng isang matrix

4. Ang produkto ng isang row vector sa pamamagitan ng produkto ng isang matrix at isang column vector ay katumbas ng produkto ng produkto ng isang row vector sa pamamagitan ng isang matrix at isang column vector.

Lecture 6. Parallel numerical algorithm para sa paglutas ng mga tipikal na problema ng computational mathematics: matrix multiplication.

Pagpaparami ng isang matrix sa isang vector. Makamit ang pinakamataas na posibleng bilis. Paggamit ng middle level parallelism. Organisasyon ng parallel computing para sa p = n. Paggamit ng limitadong hanay ng mga processor. Pagpaparami ng matris. Macrooperational analysis ng mga algorithm sa paglutas ng problema. Organisasyon ng paralelismo batay sa pagbabahagi ng data.

Pagpaparami ng isang matrix sa isang vector

Ang problema ng pagpaparami ng isang matrix sa pamamagitan ng isang vector ay tinukoy ng mga relasyon

Kaya, ang pagkuha ng nagresultang vector ay nagsasangkot ng pag-uulit ng parehong uri ng mga operasyon para sa pagpaparami ng mga hilera ng matrix at vector . Ang pagkuha ng bawat ganoong operasyon ay kinabibilangan ng elemento-by-element multiplication ng mga elemento ng row ng matrix at vector at ang kasunod na pagsusuma ng mga resultang produkto. Ang kabuuang bilang ng mga kinakailangang pagpapatakbo ng scalar ay tinatantya ng halaga

Tulad ng mga sumusunod mula sa mga aksyon na ginawa kapag nagpaparami ng isang matrix at isang vector, ang mga parallel na pamamaraan para sa paglutas ng problema ay maaaring makuha batay sa parallel summation algorithm (tingnan ang talata 4.1). Sa seksyong ito, ang pagsusuri ng mga pamamaraan ng parallelization ay pupunan sa pamamagitan ng pagsasaalang-alang sa organisasyon ng parallel computing depende sa bilang ng mga processor na magagamit para sa paggamit. Bilang karagdagan, gamit ang halimbawa ng problema ng pagpaparami ng isang matrix sa pamamagitan ng isang vector, ang pansin ay iguguhit sa pangangailangang pumili ng pinaka-angkop na topology ng isang computing system (umiiral na mga channel ng komunikasyon sa pagitan ng mga processor) upang mabawasan ang mga gastos para sa pag-aayos ng interprocessor interaksyon.

Pagkamit ng pinakamabilis na posibleng pagganap ()

Magsagawa tayo ng pagsusuri ng mga dependency ng impormasyon sa algorithm ng matrix-vector multiplication upang pumili ng mga posibleng paraan ng parallelization. Tulad ng nakikita mo, ang mga pagpapatakbo ng pagpaparami ng mga indibidwal na hilera ng isang matrix sa pamamagitan ng isang vector na isinagawa sa panahon ng mga kalkulasyon ay independyente at maaaring isagawa nang magkatulad;



Ang pagpaparami ng bawat row sa pamamagitan ng isang vector ay nagsasangkot ng mga independiyenteng element-wise multiplications at maaari ding isagawa nang magkatulad;

Ang pagbubuo ng mga produkto na nakuha sa bawat operasyon ng pagpaparami ng isang hilera ng isang matrix sa pamamagitan ng isang vector ay maaaring isagawa gamit ang isa sa mga dating itinuturing na variant ng algorithm ng pagsusuma (serial algorithm, conventional at modified cascade schemes).

Kaya, ang maximum na kinakailangang bilang ng mga processor ay tinutukoy ng halaga

Ang paggamit ng naturang bilang ng mga processor ay maaaring ilarawan bilang mga sumusunod. Ang hanay ng mga processor ay nahahati sa mga grupo

,

bawat isa ay kumakatawan sa isang hanay ng mga processor para sa pagsasagawa ng operasyon ng pagpaparami ng isang hilera ng isang matrix sa pamamagitan ng isang vector. Sa simula ng mga kalkulasyon, ang bawat processor ng pangkat ay tumatanggap ng isang elemento ng row ng matrix at ang kaukulang elemento ng vector . Susunod, ang bawat processor ay nagsasagawa ng pagpaparami ng operasyon. Ang mga kasunod na kalkulasyon ay isinasagawa ayon sa cascade summation scheme. Para sa paglalarawan sa fig. Ipinapakita ng 6.1 ang computational scheme para sa mga processor ng pangkat na may sukat ng matrix .

kanin. 6.1. Computational scheme para sa pagpaparami ng matrix row sa isang vector

Ang oras ng pagpapatupad ng isang parallel algorithm kapag gumagamit ng mga processor ay tinutukoy ng oras ng pagpapatupad ng parallel multiplication operation at ang execution time ng cascade scheme

Bilang resulta, ang mga tagapagpahiwatig ng pagganap ng algorithm ay tinutukoy ng mga sumusunod na relasyon:

Para sa itinuturing na problema ng multiplikasyon ng isang matrix sa pamamagitan ng isang vector, ang pinaka-angkop na mga topolohiya ay mga istruktura na nagbibigay ng mabilis na paglipat ng data (mga landas ng haba ng yunit) sa isang cascade summation scheme (tingnan ang Fig. 4.5). Ang ganitong mga topolohiya ay isang istraktura na may kumpletong sistema ng mga koneksyon ( kumpletong graph) at hypercube. Ang iba pang mga topolohiya ay nagreresulta sa pagtaas ng oras ng komunikasyon dahil sa mas mahabang landas ng data. Kaya, sa isang linear na pag-order ng mga processor na may isang sistema ng mga koneksyon lamang sa pinakamalapit na kapitbahay sa kaliwa at sa kanan ( tagapamahala o singsing) para sa cascade scheme, ang haba ng transmission path ng bawat natanggap na partial sum sa iteration , , ay katumbas ng . Kung tinatanggap namin na ang paghahatid ng data sa isang landas ng haba sa mga topologies na may linear na istraktura ay nangangailangan ng pagpapatupad ng mga operasyon ng paghahatid ng data, ang kabuuang bilang ng mga parallel na operasyon (kabuuang haba ng mga landas) ng paghahatid ng data ay tinutukoy ng halaga

(hindi kasama ang mga paglilipat ng data para sa mga processor ng bootstrap).

Application ng isang computing system na may isang hugis-parihaba na topology dalawang-dimensional na sala-sala Ang laki ay humahantong sa isang simple at visual na interpretasyon ng mga kalkulasyon na isinagawa (ang istraktura ng network ay tumutugma sa istraktura ng naprosesong data). Para sa naturang topology, pinaka-kapaki-pakinabang na ilagay ang mga hilera ng matrix sa mga pahalang na linya ng sala-sala; sa kasong ito, ang mga elemento ng vector ay dapat ipadala kasama ang mga vertical ng computing system. Ang pagpapatupad ng mga kalkulasyon na may ganitong pag-aayos ng data ay maaaring isagawa nang magkatulad sa mga linya ng sala-sala; bilang resulta, ang kabuuang bilang ng mga paglilipat ng data ay kapareho ng mga resulta para sa ruler().

Ang mga pagkilos sa komunikasyon na isinagawa sa paglutas ng problema ay ang paglilipat ng data sa pagitan ng mga pares ng mga processor ng MCS. Ang isang detalyadong pagsusuri ng tagal ng pagpapatupad ng naturang mga operasyon ay isinasagawa sa talata 3.3.

4. Mga rekomendasyon para sa pagpapatupad ng parallel algorithm. Kapag nagpapatupad ng parallel algorithm, ipinapayong isa-isa ang paunang yugto ng paglo-load ng mga ginamit na processor na may paunang data. Ang ganitong pagsisimula ay pinakasimpleng ibinigay para sa topology ng isang computing system na may topology sa form kumpletong graph(Ang paglo-load ay ibinibigay sa isang solong parallel data transfer operation). Kapag nag-aayos ng isang hanay ng mga processor sa form hypercube Maaaring maging kapaki-pakinabang ang pagkakaroon ng dalawang antas na kontrol sa proseso ng bootstrap, kung saan ipinamamahagi ng central control processor ang matrix at vector row sa mga control processor ng mga grupo ng processor , , na, naman, ay namamahagi ng mga elemento ng matrix at vector mga hilera sa mga executive processor. Para sa mga topologies sa form mga pinuno o mga singsing ang mga sequential data transfer operations ay kinakailangan na may sunud-sunod na pagbaba ng halaga ng data na inilipat mula sa mga elemento.

Paggamit ng Middle Level Parallelism()

1. Pagpili ng parallel computing method. Sa pagbaba sa magagamit na bilang ng mga processor na ginamit (), ang karaniwang cascade summation scheme kapag nagsasagawa ng mga operasyon ng pag-multiply ng mga matrix row sa isang vector ay nagiging hindi naaangkop. Para sa pagiging simple ng pagtatanghal ng materyal, ipinapalagay at ginagamit namin ang isang binagong cascade scheme. Ang paunang pagkarga ng bawat processor sa kasong ito ay tumataas at ang processor ay na-load () ng mga bahagi ng mga hilera ng matrix at vector. Ang oras ng pagpapatupad ng operasyon ng pagpaparami ng isang matrix sa isang vector ay maaaring tantyahin bilang ang halaga

Kapag ginagamit ang bilang ng mga processor na kinakailangan upang ipatupad ang binagong cascade scheme, i.e. sa , ang expression na ito ay nagbibigay ng isang pagtatantya ng oras ng pagpapatupad (sa ).

Sa bilang ng mga processor , kapag ang oras ng pagpapatupad ng algorithm ay tinatantya bilang , isang bagong pamamaraan para sa parallel na pagpapatupad ng mga kalkulasyon ay maaaring imungkahi, kung saan para sa bawat pag-ulit ng mga cascaded summation ay ginagamit hindi magkakapatong na mga set ng processor. Sa diskarteng ito, ang magagamit na bilang ng mga processor ay sapat upang ipatupad lamang ang isang operasyon ng pagpaparami ng isang hilera ng isang matrix at isang vector. Bilang karagdagan, kapag nagsasagawa ng susunod na pag-ulit ng cascade summation, ang mga processor na responsable para sa pagpapatupad ng lahat ng nakaraang mga pag-ulit ay libre. Gayunpaman, ang kawalan na ito ng iminungkahing diskarte ay maaaring gawing isang kalamangan sa pamamagitan ng paggamit ng mga idle na processor upang iproseso ang susunod na mga hilera ng matrix. Bilang resulta, maaaring mabuo ang sumusunod na scheme conveyor magsagawa ng matrix at vector multiplication:

Ang hanay ng mga processor ay nahahati sa hindi magkakapatong na mga grupo ng processor

,

ang grupo , , ay binubuo ng mga processor at ginagamit upang ulitin ang cascade algorithm (ang grupo ay ginagamit upang ipatupad ang element-wise multiplication); kabuuang bilang ng mga processor;

Ang pagsisimula ng pagkalkula ay binubuo sa pag-load ng elemento-by-element ng mga processor ng pangkat na may mga halaga 1 ng hilera ng matrix at vector ; pagkatapos ng bootstrap, ang isang parallel operation ng element-wise multiplication at kasunod na pagpapatupad ng conventional cascade summation circuit ay ginaganap;

Kapag nagsasagawa ng mga kalkulasyon, sa bawat oras na matapos ang pagkumpleto ng operasyon ng element-wise multiplication, ang mga processor ng grupo ay ni-load ng mga elemento ng susunod na hilera ng matrix at ang proseso ng pagkalkula ay sinisimulan para sa bagong na-load na data.

Bilang resulta ng paglalapat ng inilarawang algorithm, ang isang mayorya ng mga processor ay nagpapatupad ng isang pipeline para sa pagsasagawa ng operasyon ng pagpaparami ng isang matrix row sa isang vector. Sa naturang pipeline, maraming mga indibidwal na hilera ng matrix ay maaaring sabay na nasa iba't ibang yugto ng pagproseso. Kaya, halimbawa, pagkatapos ng pagpaparami ng element-wise ng mga elemento ng unang hilera at ng vector, ang mga processor ng grupo ay gagawa ng unang pag-ulit ng cascade algorithm para sa unang hilera ng matrix, at ang mga processor ng grupo ay gagawa ng elemento. - matalinong pagpaparami ng mga halaga ng pangalawang hilera ng matrix, at iba pa. Para sa paglalarawan sa fig. Ipinapakita ng 6.2 ang sitwasyon ng proseso ng pagkalkula pagkatapos ng 2 pipeline iteration sa .

kanin. 6.2. Ang estado ng pipeline para sa pagpapatakbo ng pagpaparami ng isang hilera ng isang matrix sa pamamagitan ng isang vector pagkatapos magsagawa ng 2 pag-ulit

2. Pagsusuri ng mga tagapagpahiwatig ng pagganap ng algorithm. Ang pagpaparami ng unang hilera ng vector ayon sa cascade scheme ay makukumpleto, gaya ng dati, pagkatapos ng pagpapatupad ng () parallel operations. Para sa iba pang mga hilera, alinsunod sa pipeline scheme ng organisasyon ng mga kalkulasyon, ang mga resulta ng multiplikasyon ng bawat sunud-sunod na hilera ay lilitaw pagkatapos ng pagkumpleto ng bawat kasunod na pag-ulit ng pipeline. Bilang resulta, ang kabuuang oras ng pagpapatupad ng matrix-vector multiplication operation ay maaaring ipahayag bilang

Ang pagtatantya na ito ay bahagyang mas mahaba kaysa sa oras ng pagpapatupad ng parallel algorithm na inilarawan sa nakaraang talata (), gayunpaman, ang bagong iminungkahing pamamaraan ay nangangailangan ng mas kaunting data na maipapadala (ang vector ay ipinadala nang isang beses lamang). Bilang karagdagan, ang paggamit ng pipeline scheme ay humahantong sa isang mas maagang paglitaw ng ilan sa mga resulta ng pagkalkula (na maaaring maging kapaki-pakinabang sa ilang mga sitwasyon sa pagproseso ng data).

Bilang resulta, ang mga tagapagpahiwatig ng pagganap ng algorithm ay tinutukoy ng mga sumusunod na relasyon:

3. Pagpili ng topology ng computer system. Ang angkop na topology ng isang computing system ay ganap na tinutukoy ng computing scheme - ito ay isang kumpleto binary tree taas . Ang bilang ng mga paglilipat ng data na may ganitong topology ng network ay tinutukoy ng kabuuang bilang ng mga pag-ulit na isinagawa ng pipeline, i.e.

Ang pagsisimula ng mga kalkulasyon ay nagsisimula mula sa mga dahon ng puno, ang mga resulta ng pagbubuod ay naipon sa root processor.

Ang pagsusuri sa pagiging kumplikado ng mga pagkilos ng komunikasyon na isinagawa para sa mga computer system na may iba pang mga topolohiya ng mga interprocessor na komunikasyon ay dapat na isagawa bilang isang independiyenteng gawain (tingnan din ang Seksyon 3.4).

Organisasyon ng parallel computing sa

1. Pagpili ng parallel computing method. Kapag gumagamit ng mga processor para sa pagpaparami ng isang matrix sa pamamagitan ng isang vector, ang parallel na row-by-row multiplication algorithm na tinalakay na sa manual ay maaaring gamitin, kung saan ang mga hilera ng matrix ay ibinahagi nang hilera sa pagitan ng mga processor at ang bawat processor ay nagpapatupad ng operasyon ng pagpaparami ng anumang indibidwal na hilera ng matrix sa vector . Ang isa pang posibleng paraan upang ayusin ang parallel computing ay ang pagbuo pipeline scheme para sa pagpapatakbo ng pagpaparami ng isang hilera ng isang matrix sa pamamagitan ng isang vector(tuldok na produkto ng mga vector) sa pamamagitan ng pag-aayos ng lahat ng magagamit na mga processor sa isang linear sequence ( mga pinuno).

Ang gayong pamamaraan ng pagkalkula ay maaaring tukuyin bilang mga sumusunod. Katawanin natin ang hanay ng mga processor bilang isang linear sequence (tingnan ang Fig. 4.7):

bawat processor , , ay ginagamit upang i-multiply ang matrix column elements at ang vector element . Ang pagsasagawa ng mga kalkulasyon sa bawat processor , , ay binubuo ng mga sumusunod:

Ang susunod na elemento ng matrix column ay hinihiling;

Ang mga elemento at pinarami;

Ang resulta ng mga kalkulasyon ng nakaraang processor ay hinihiling;

Ang mga halaga ay idinagdag;

Ang resulta ay ipinadala sa susunod na processor.

kanin. 6.3. Ang estado ng linear pipeline para sa pagpapatakbo ng pagpaparami ng isang hilera ng isang matrix sa pamamagitan ng isang vector pagkatapos magsagawa ng dalawang pag-ulit

Kapag sinimulan ang inilarawan na pamamaraan, kinakailangan na magsagawa ng isang bilang ng mga karagdagang aksyon:

Sa unang pag-ulit, ang bawat processor ay humihiling din ng elemento ng vector ;

Upang i-synchronize ang mga kalkulasyon (sa panahon ng pagpapatupad ng susunod na pag-ulit ng circuit, hinihiling ang resulta ng pagkalkula ng nakaraang processor) sa yugto ng pagsisimula, ang processor , , ay nagsasagawa () ng waiting loop.

Bilang karagdagan, para sa pagkakapareho ng inilarawan na pamamaraan para sa unang processor , na walang nakaraang processor, ipinapayong ipakilala ang isang walang laman na operasyon ng karagdagan ( ).

Para sa paglalarawan sa fig. Ipinapakita ng 6.3 ang estado ng proseso ng pagkalkula pagkatapos ng pangalawang pag-ulit ng pipeline sa .

2. Pagsusuri ng mga tagapagpahiwatig ng pagganap ng algorithm. Ang multiplikasyon ng unang hilera ng vector ayon sa inilarawan na pipeline scheme ay makukumpleto pagkatapos ng pagpapatupad ng () parallel operations. Ang resulta ng pagpaparami ng mga sumusunod na hilera ay magaganap pagkatapos ng pagkumpleto ng bawat susunod na pag-ulit ng pipeline (pag-alala, ang pag-ulit ng bawat processor ay kinabibilangan ng pagpapatupad ng pagpaparami at pagdaragdag ng mga operasyon). Bilang resulta, ang kabuuang oras ng pagpapatupad ng matrix-vector multiplication operation ay maaaring ipahayag bilang:

Ang pagtatantya na ito ay mas malaki rin kaysa sa pinakamababang posibleng oras ng pagpapatupad ng parallel algorithm para sa . Ang pagiging kapaki-pakinabang ng paggamit ng pipeline computing scheme ay, tulad ng nabanggit sa nakaraang talata, sa pagbabawas ng dami ng ipinadalang data at sa naunang hitsura ng bahagi ng mga resulta ng pagkalkula.

Ang mga tagapagpahiwatig ng pagganap ng computational scheme na ito ay tinutukoy ng mga ugnayan:

, ,

3. Pagpili ng topology ng computer system. Ang kinakailangang topology ng computing system para sa pagpapatupad ng inilarawan na algorithm ay natatanging tinutukoy ng iminungkahing computational scheme - ito ay isang linearly ordered set ng mga processor ( tagapamahala).

Paggamit ng limitadong hanay ng mga processor ()

1. Pagpili ng parallel computing method. Kapag ang bilang ng mga processor ay nabawasan sa isang halaga, ang isang parallel computational scheme para sa matrix-vector multiplication ay maaaring makuha bilang resulta ng pag-adapt ng row-by-row multiplication algorithm. Sa kasong ito, ang cascade scheme para sa pagbubuod ng mga resulta ng elementwise multiplication ay bumababa at ang pagpapatakbo ng pagpaparami ng isang matrix row sa isang vector ay ganap na isinasagawa sa isang processor. Ang computational scheme na nakuha sa diskarteng ito ay maaaring tukuyin bilang mga sumusunod:

Isang vector at matrix row ang ipinapadala sa bawat isa sa mga available na processor;

Ang pagpapatakbo ng pagpaparami ng mga hilera ng isang matrix sa pamamagitan ng isang vector ay isinasagawa gamit ang karaniwang sequential algorithm.

Dapat tandaan na ang laki ng matrix ay maaaring hindi isang maramihang bilang ng mga processor, at pagkatapos ay ang mga hilera ng matrix ay hindi maaaring hatiin nang pantay sa pagitan ng mga processor. Sa mga sitwasyong ito, posibleng lumihis mula sa pangangailangan ng pagkakapareho ng pag-load ng processor at, upang makakuha ng mas simpleng computational scheme, tanggapin ang panuntunan na ang data ay inilalagay sa mga processor lamang ng hilera sa hilera (ibig sabihin, mga elemento ng isang hilera ng isang matrix hindi maaaring ibahagi sa pagitan ng ilang mga processor). Ang ibang bilang ng mga row ay nagreresulta sa ibang computational load sa mga processor; kaya, ang pagkumpleto ng mga kalkulasyon (ang kabuuang tagal ng solusyon sa gawain) ay matutukoy ng oras ng pagpapatakbo ng pinaka-load na processor (kasabay nito, ang ilang mga processor ay maaaring idle ang bahagi ng kabuuang oras na ito dahil sa pagkaubos ng kanilang bahagi ng mga kalkulasyon). Ang hindi pantay na pag-load ng mga processor ay binabawasan ang kahusayan ng paggamit ng MCS at, bilang resulta ng pagsasaalang-alang sa halimbawang ito, maaari nating tapusin na problema sa pagbabalanse

3. Pagpili ng topology ng computer system. Alinsunod sa likas na katangian ng mga interprocessor na pakikipag-ugnayan na isinagawa sa iminungkahing computational scheme, ang organisasyon ng mga processor sa anyo mga bituin(tingnan ang fig. 1.1). Ang isang control processor ng naturang topology ay maaaring gamitin upang i-load ang mga computing processor na may paunang data at upang matanggap ang mga resulta ng mga isinagawang kalkulasyon.

Pagpaparami ng matris

Ang problema ng pagpaparami ng isang matrix sa isang matrix ay tinukoy ng mga relasyon

.

(para sa pagiging simple, ipagpalagay namin na ang mga multiply na matrice at ay parisukat at may pagkakasunud-sunod ).

Ang pagsusuri ng mga posibleng paraan ng parallel na pagpapatupad ng gawaing ito ay maaaring isagawa sa pamamagitan ng pagkakatulad sa pagsasaalang-alang sa problema ng pagpaparami ng isang matrix ng isang vector. Ang pag-iwan ng naturang pagsusuri para sa independiyenteng pag-aaral, ipapakita namin, gamit ang halimbawa ng problema ng pagpaparami ng matrix, ang paggamit ng ilang mga pangkalahatang diskarte na nagpapahintulot sa amin na bumuo ng mga parallel na pamamaraan para sa paglutas ng mga kumplikadong problema.

Kaya, sa nakaraang aralin, sinuri namin ang mga patakaran para sa pagdaragdag at pagbabawas ng mga matrice. Ang mga ito ay mga simpleng operasyon na ang karamihan sa mga mag-aaral ay literal na nauunawaan ang mga ito sa simula pa lang.

Gayunpaman, maaga kang nagagalak. Tapos na ang freebie - lumipat tayo sa multiplication. Babalaan kita kaagad: ang pagpaparami ng dalawang matrice ay hindi lahat ng pagpaparami ng mga numero sa mga cell na may parehong mga coordinate, tulad ng iniisip mo. Mas masaya ang lahat dito. At kailangan mong magsimula sa mga paunang kahulugan.

Mga pare-parehong matrice

Ang isa sa pinakamahalagang katangian ng isang matrix ay ang laki nito. Napag-usapan na natin ito nang isang daang beses: $A=\left[ m\times n \right]$ ay nangangahulugan na ang matrix ay may eksaktong $m$ na mga row at $n$ na mga column. Napag-usapan na namin kung paano hindi malito ang mga hilera sa mga haligi. Ngayon may ibang bagay na mahalaga.

Kahulugan. Mga matrice ng anyong $A=\left[ m\times n \right]$ at $B=\left[ n\times k \right]$, kung saan ang bilang ng mga column sa unang matrix ay kapareho ng ang bilang ng mga hilera sa pangalawa, ay tinatawag na pare-pareho.

Muli: ang bilang ng mga haligi sa unang matrix ay katumbas ng bilang ng mga hilera sa pangalawa! Mula dito nakakakuha tayo ng dalawang konklusyon nang sabay-sabay:

  1. Pinapahalagahan namin ang pagkakasunud-sunod ng mga matrice. Halimbawa, ang mga matrice na $A=\left[ 3\times 2 \right]$ at $B=\left[ 2\times 5 \right]$ ay pare-pareho (2 column sa unang matrix at 2 row sa pangalawa) , ngunit kabaliktaran — ang mga matrice na $B=\left[ 2\times 5 \right]$ at $A=\left[ 3\times 2 \right]$ ay hindi na pare-pareho (5 column sa unang matrix ay, bilang ito ay, hindi 3 hilera sa pangalawa ).
  2. Madaling suriin ang pagkakapare-pareho kung isa-isa mong isusulat ang lahat ng dimensyon. Gamit ang halimbawa mula sa nakaraang talata: "3 2 2 5" - ang parehong mga numero ay nasa gitna, kaya ang mga matrice ay pare-pareho. Ngunit ang "2 5 3 2" ay hindi sumang-ayon, dahil may iba't ibang mga numero sa gitna.

Bukod pa rito, tila ipinahihiwatig ng kapitan na ang mga parisukat na matrice na may parehong laki na $\left[ n\times n \right]$ ay palaging pare-pareho.

Sa matematika, kapag ang pagkakasunud-sunod ng enumeration ng mga bagay ay mahalaga (halimbawa, sa kahulugan na tinalakay sa itaas, ang pagkakasunud-sunod ng mga matrice ay mahalaga), ang isa ay madalas na nagsasalita ng mga nakaayos na pares. Nakilala namin sila sa paaralan: Sa palagay ko ay walang utak na ang mga coordinate na $\left(1;0 \right)$ at $\left(0;1 \right)$ ay tumutukoy sa iba't ibang mga punto sa eroplano.

Kaya: ang mga coordinate ay nakaayos din ng mga pares, na binubuo ng mga numero. Ngunit walang pumipigil sa iyo na gumawa ng gayong pares ng mga matrice. Pagkatapos ay posibleng sabihin: "Ang isang nakaayos na pares ng matrice $\left(A;B \right)$ ay pare-pareho kung ang bilang ng mga column sa unang matrix ay pareho sa bilang ng mga row sa pangalawa. "

Well, ano?

Kahulugan ng multiplikasyon

Isaalang-alang ang dalawang pare-parehong matrice: $A=\left[ m\times n \right]$ at $B=\left[ n\times k \right]$. At tinukoy namin para sa kanila ang pagpapatakbo ng pagpaparami.

Kahulugan. Ang produkto ng dalawang pare-parehong matrice na $A=\left[ m\times n \right]$ at $B=\left[ n\times k \right]$ ay ang bagong matrix $C=\left[ m\times k \ kanan] $, ang mga elemento nito ay kinakalkula ayon sa formula:

\[\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))= \\ & =\sum\limits_(t=1)^(n)(((a)_(i;t))\cdot ((b)_(t;j))) \end(align)\]

Ang naturang produkto ay tinutukoy sa karaniwang paraan: $C=A\cdot B$.

Para sa mga nakakita sa kahulugang ito sa unang pagkakataon, dalawang katanungan ang agad na lumabas:

  1. Anong klaseng ligaw na laro ito?
  2. Bakit napakahirap?

Well, unang-una muna. Magsimula tayo sa unang tanong. Ano ang ibig sabihin ng lahat ng mga index na ito? At paano hindi magkamali kapag nagtatrabaho sa mga tunay na matrice?

Una sa lahat, tandaan namin na ang mahabang linya para sa pagkalkula ng $((c)_(i;j))$ (espesyal na maglagay ng semicolon sa pagitan ng mga indeks upang hindi malito, ngunit hindi mo kailangang ilagay ang mga ito sa pangkalahatan - Ako mismo ay napagod sa pag-type ng formula sa kahulugan) talagang bumagsak sa isang simpleng panuntunan:

  1. Kunin ang $i$-th row sa unang matrix;
  2. Kunin ang $j$-th column sa pangalawang matrix;
  3. Kumuha kami ng dalawang pagkakasunud-sunod ng mga numero. Pinaparami namin ang mga elemento ng mga sequence na ito na may parehong mga numero, at pagkatapos ay idagdag ang mga resultang produkto.

Ang prosesong ito ay madaling maunawaan mula sa larawan:


Scheme para sa pagpaparami ng dalawang matrice

Muli: inaayos namin ang row $i$ sa unang matrix, ang column $j$ sa pangalawang matrix, i-multiply ang mga elemento na may parehong mga numero, at pagkatapos ay idagdag ang mga resultang produkto - nakakakuha kami ng $((c)_(ij ))$. At kaya para sa lahat ng $1\le i\le m$ at $1\le j\le k$. Yung. magkakaroon ng $m\beses k$ ng mga ganitong "perversions" sa kabuuan.

Sa katunayan, nakilala na natin ang pagpaparami ng matrix sa kurikulum ng paaralan, sa isang lubos na pinutol na anyo. Hayaang maibigay ang mga vector:

\[\begin(align) & \vec(a)=\left(((x)_(a));((y)_(a));((z)_(a)) \right); \\ & \overrightarrow(b)=\left(((x)_(b));((y)_(b));((z)_(b)) \right). \\ \end(align)\]

Kung gayon ang kanilang scalar product ay magiging eksaktong kabuuan ng pairwise na mga produkto:

\[\overrightarrow(a)\times \overrightarrow(b)=((x)_(a))\cdot ((x)_(b))+((y)_(a))\cdot ((y) )_(b))+((z)_(a))\cdot ((z)_(b))\]

Sa katunayan, sa mga malalayong taon na iyon, kapag ang mga puno ay mas berde at ang kalangitan ay mas maliwanag, pinarami lang namin ang row vector na $\overrightarrow(a)$ sa column vector na $\overrightarrow(b)$.

Walang nagbago ngayon. Ngayon lang ay mas marami na itong mga row at column vectors.

Ngunit sapat na teorya! Tingnan natin ang mga tunay na halimbawa. At magsimula tayo sa pinakasimpleng kaso - square matrices.

Pagpaparami ng square matrices

Gawain 1. Isagawa ang multiplikasyon:

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

Solusyon. Kaya, mayroon kaming dalawang matrice: $A=\left[ 2\times 2 \right]$ at $B=\left[ 2\times 2 \right]$. Ito ay malinaw na ang mga ito ay pare-pareho (mga parisukat na matrice ng parehong laki ay palaging pare-pareho). Kaya ginagawa namin ang pagpaparami:

\[\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)\kanan]. \end(align)\]

Iyon lang!

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

Gawain 2. Isagawa ang multiplikasyon:

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

Solusyon. Muli, pare-parehong matrice, kaya ginagawa namin ang mga sumusunod na aksyon:\[\]

\[\begin(align) & \left[ \begin(matrix) 1 & 3 \\ 2 & 6 \\\end(matrix) \right]\cdot \left[ \begin(array)(*(35)( r)) 9 & 6 \\ -3 & -2 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot 9+3\cdot \ kaliwa(-3 \right) & 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(matrix) 0 & 0 \\ 0 & 0 \\\end(matrix) \right] . \end(align)\]

Tulad ng nakikita mo, ang resulta ay isang matrix na puno ng mga zero

Sagot: $\left[ \begin(matrix) 0 & 0 \\ 0 & 0 \\\end(matrix) \right]$.

Mula sa mga halimbawa sa itaas, malinaw na ang pagpaparami ng matrix ay hindi isang kumplikadong operasyon. Hindi bababa sa para sa 2 by 2 square matrice.

Sa proseso ng mga kalkulasyon, nag-compile kami ng isang intermediate matrix, kung saan direkta naming pininturahan kung anong mga numero ang kasama sa isang partikular na cell. Ito mismo ang dapat gawin kapag nilulutas ang mga tunay na problema.

Mga pangunahing katangian ng produkto ng matrix

Sa maikling sabi. Pagpaparami ng matrix:

  1. Non-commutative: $A\cdot B\ne B\cdot A$ sa pangkalahatan. Mayroong, siyempre, mga espesyal na matrice kung saan ang pagkakapantay-pantay na $A\cdot B=B\cdot A$ (halimbawa, kung ang $B=E$ ay ang identity matrix), ngunit sa karamihan ng mga kaso hindi ito gumagana. ;
  2. Associative: $\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \right)$. Walang mga pagpipilian dito: ang mga katabing matrice ay maaaring paramihin nang hindi nababahala tungkol sa kung ano ang nasa kaliwa at sa kanan ng dalawang matrice na ito.
  3. Pamamahagi: $A\cdot \left(B+C \right)=A\cdot B+A\cdot C$ at $\left(A+B \right)\cdot C=A\cdot C+B\cdot C $

At ngayon - pareho ang lahat, ngunit sa mas detalyado.

Ang pagpaparami ng matrix ay katulad ng classical na pagpaparami ng numero. Ngunit may mga pagkakaiba, ang pinakamahalaga ay iyon matrix multiplication ay, sa pangkalahatan, non-commutative.

Isaalang-alang muli ang mga matrice mula sa Problema 1. Alam na natin ang kanilang direktang produkto:

\[\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]\]

Ngunit kung palitan natin ang mga matrice, makakakuha tayo ng ganap na naiibang resulta:

\[\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(matrix) -14 & 4 \\ 0 & 10 \\\end(matrix )\kanan]\]

Lumalabas na ang $A\cdot B\ne B\cdot A$. Gayundin, ang pagpaparami ng pagpaparami ay tinukoy lamang para sa mga pare-parehong matrice na $A=\left[ m\times n \right]$ at $B=\left[ n\times k \right]$, ngunit walang sinuman ang nagsisiguro na sila ay mananatili pare-pareho, kung sila ay palitan. Halimbawa, ang mga matrice na $\left[ 2\times 3 \right]$ at $\left[ 3\times 5 \right]$ ay medyo pare-pareho sa pagkakasunud-sunod na ito, ngunit ang parehong matrice $\left[ 3\times 5 \ kanan] $ at $\left[ 2\times 3 \right]$ na nakasulat sa reverse order ay hindi na tugma. Ang lungkot :(

Sa mga parisukat na matrice ng isang ibinigay na laki $n$, palaging may mga nagbibigay ng parehong resulta kapag pinarami nang direkta at sa reverse order. Paano ilarawan ang lahat ng gayong mga matrice (at kung ilan sa mga ito sa pangkalahatan) ay isang paksa para sa isang hiwalay na aralin. Ngayon ay hindi natin ito pag-uusapan. :)

Gayunpaman, ang pagpaparami ng matrix ay nauugnay:

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

Samakatuwid, kapag kailangan mong i-multiply ang ilang mga matrice sa isang hilera nang sabay-sabay, hindi kinakailangan na gawin ito nang maaga: posible na ang ilang mga katabing matrice, kapag pinarami, ay nagbibigay ng isang kawili-wiling resulta. Halimbawa, isang zero matrix, tulad ng sa Problema 2 na tinalakay sa itaas.

Sa mga tunay na problema, kadalasan ang isa ay kailangang magparami ng mga square matrice na may sukat na $\left[ n\times n \right]$. Ang set ng lahat ng naturang matrice ay tinutukoy ng $((M)^(n))$ (ibig sabihin, ang mga entry na $A=\left[ n\times n \right]$ at \ ay pareho ang ibig sabihin), at ito ay tiyak na naglalaman ng matrix na $E$, na tinatawag na identity matrix.

Kahulugan. Ang identity matrix na may sukat na $n$ ay isang matrix na $E$ na para sa anumang square matrix na $A=\left[ n\times n \right]$ ang pagkakapantay-pantay ay mayroong:

Ang ganitong matrix ay palaging mukhang pareho: may mga yunit sa pangunahing dayagonal nito, at mga zero sa lahat ng iba pang mga cell.

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

Sa madaling salita, kung kailangan mong i-multiply ang isang matrix sa kabuuan ng dalawang iba pa, maaari mo itong i-multiply sa bawat isa sa mga "ibang dalawa", at pagkatapos ay idagdag ang mga resulta. Sa pagsasagawa, karaniwang kailangan mong gawin ang kabaligtaran na operasyon: napansin namin ang parehong matrix, alisin ito sa bracket, magsagawa ng karagdagan, at sa gayon ay gawing simple ang aming buhay. :)

Tandaan na para ilarawan ang distributivity, kinailangan naming magsulat ng dalawang formula: kung saan ang kabuuan ay nasa pangalawang kadahilanan at kung saan ang kabuuan ay nasa una. Ito ay tiyak dahil sa ang katunayan na ang pagpaparami ng matrix ay hindi commutative (at sa pangkalahatan, sa non-commutative algebra, mayroong maraming lahat ng mga uri ng mga biro na hindi man lang naiisip kapag nagtatrabaho sa mga ordinaryong numero). At kung, halimbawa, kailangan mong isulat ang pag-aari na ito sa panahon ng pagsusulit, siguraduhing isulat ang parehong mga formula, kung hindi, maaaring magalit ang guro.

Okay, ito ay lahat ng mga engkanto tungkol sa mga square matrice. Paano ang mga parihaba?

Ang kaso ng rectangular matrices

Ngunit wala - lahat ay pareho sa mga parisukat.

Gawain 3. Isagawa ang multiplikasyon:

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

Solusyon. Mayroon kaming dalawang matrice: $A=\left[ 3\times 2 \right]$ at $B=\left[ 2\times 2 \right]$. Isulat natin ang mga numerong nagsasaad ng mga sukat sa isang hilera:

Tulad ng nakikita mo, ang gitnang dalawang numero ay pareho. Nangangahulugan ito na ang mga matrice ay pare-pareho, at maaari silang i-multiply. At sa output makuha namin ang matrix $C=\left[ 3\times 2 \right]$:

\[\begin(align) & \left[ \begin(matrix) \begin(matrix) 5 \\ 2 \\ 3 \\\end(matrix) & \begin(matrix) 4 \\ 5 \\ 1 \\ \end(matrix) \\\end(matrix) \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)\kanan]. \end(align)\]

Malinaw ang lahat: ang panghuling matrix ay may 3 hilera at 2 hanay. Medyo $=\left[ 3\times 2 \right]$.

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

Ngayon isaalang-alang ang isa sa mga pinakamahusay na gawain sa pagsasanay para sa mga nagsisimula pa lamang magtrabaho sa mga matrice. Sa loob nito, kailangan mong hindi lamang paramihin ang ilang dalawang tableta, ngunit una upang matukoy: pinahihintulutan ba ang gayong pagpaparami?

Problema 4. Hanapin ang lahat ng posibleng pairwise na produkto ng mga matrice:

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

Solusyon. Una, isulat natin ang mga sukat ng mga matrice:

\;\ B=\kaliwa[ 4\beses 2 \kanan];\ C=\kaliwa[ 2\beses 2 \kanan]\]

Nakuha namin na ang matrix na $A$ ay maaaring itugma lamang sa matrix na $B$, dahil ang bilang ng mga column sa $A$ ay 4, at ang $B$ lamang ang may ganitong bilang ng mga row. Samakatuwid, mahahanap natin ang produkto:

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

Iminumungkahi ko na gawin ng mambabasa ang mga intermediate na hakbang sa kanilang sarili. Mapapansin ko lamang na mas mahusay na matukoy ang laki ng nagresultang matrix nang maaga, kahit na bago ang anumang mga kalkulasyon:

\\cdot \left[ 4\times 2 \right]=\left[ 2\times 2 \right]\]

Sa madaling salita, inaalis lang namin ang mga "transitional" na koepisyent na nagsisiguro sa pagkakapare-pareho ng mga matrice.

Anong iba pang mga opsyon ang posible? Tiyak na posibleng mahanap ang $B\cdot A$, dahil $B=\left[ 4\times 2 \right]$, $A=\left[ 2\times 4 \right]$, kaya ang order na pares ay $\ left(B ;A \right)$ ay pare-pareho, at ang dimensyon ng produkto ay magiging:

\\cdot \left[ 2\times 4 \right]=\left[ 4\times 4 \right]\]

Sa madaling salita, ang output ay isang matrix na $\left[ 4\times 4 \right]$, na ang mga coefficient ay madaling kalkulahin:

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

Malinaw, maaari mo ring itugma ang $C\cdot A$ at $B\cdot C$, at iyon lang. Samakatuwid, isinusulat lamang namin ang mga nagresultang produkto:

Naging madali lang. :)

Sagot: $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]$.

Sa pangkalahatan, lubos kong inirerekumenda na gawin mo ang gawaing ito sa iyong sarili. At isa pang katulad na gawain na nasa takdang-aralin. Ang mga tila simpleng kaisipang ito ay tutulong sa iyo na gawin ang lahat ng mga pangunahing hakbang sa pagpaparami ng matrix.

Ngunit ang kuwento ay hindi nagtatapos doon. Lumipat tayo sa mga espesyal na kaso ng pagpaparami. :)

Mga row vector at column vector

Ang isa sa mga pinakakaraniwang operasyon ng matrix ay ang multiplikasyon sa isang matrix na may isang row o isang column.

Kahulugan. Ang column vector ay isang $\left[ m\times 1 \right]$ matrix, i.e. na binubuo ng ilang row at isang column lamang.

Ang row vector ay isang matrix na may sukat na $\left[ 1\times n \right]$, i.e. na binubuo ng isang row at ilang column.

Sa katunayan, nakilala na natin ang mga bagay na ito. Halimbawa, ang isang ordinaryong three-dimensional na vector mula sa stereometry na $\overrightarrow(a)=\left(x;y;z \right)$ ay walang iba kundi isang row vector. Mula sa isang teoretikal na pananaw, halos walang pagkakaiba sa pagitan ng mga hilera at mga haligi. Kailangan mong maging maingat lamang kapag nakikipag-ugnayan sa mga nakapalibot na multiplier matrice.

Gawain 5. Multiply:

\[\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]\]

Solusyon. Mayroon kaming produkto ng pare-parehong matrice: $\left[ 3\times 3 \right]\cdot \left[ 3\times 1 \right]=\left[ 3\times 1 \right]$. Hanapin ang pirasong ito:

\[\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]\]

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

Gawain 6. Isagawa ang multiplikasyon:

\[\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]\]

Solusyon. Muli lahat ay pare-pareho: $\left[ 1\times 3 \right]\cdot \left[ 3\times 3 \right]=\left[ 1\times 3 \right]$. Isinasaalang-alang namin ang gawain:

\[\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]\]

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

Tulad ng nakikita mo, kapag nagpaparami ng isang row vector at isang column vector sa isang square matrix, ang output ay palaging isang row o column na may parehong laki. Ang katotohanang ito ay maraming mga aplikasyon - mula sa paglutas ng mga linear na equation hanggang sa lahat ng uri ng mga pagbabago sa coordinate (na sa huli ay bumaba rin sa mga sistema ng mga equation, ngunit huwag nating pag-usapan ang mga malungkot na bagay).

Sa tingin ko lahat ay malinaw dito. Tumungo tayo sa huling bahagi ng aralin ngayon.

Pagpapalawak ng matrix

Sa lahat ng multiplication operations, ang exponentiation ay nararapat na espesyal na atensyon - ito ay kapag pinarami natin ang parehong bagay sa sarili nitong ilang beses. Ang mga matrice ay walang pagbubukod, maaari rin silang itaas sa iba't ibang kapangyarihan.

Ang ganitong mga gawain ay palaging pinagsama-sama:

\\cdot \left[ n\times n \right]=\left[ n\times n \right]\]

At ang mga ito ay itinalaga sa parehong paraan tulad ng mga ordinaryong degree:

\[\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)\]

Sa unang tingin, ang lahat ay simple. Tingnan natin kung ano ang hitsura nito sa pagsasanay:

Gawain 7. Itaas ang matrix sa tinukoy na kapangyarihan:

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

Solusyon. OK, buuin natin. I-square muna natin:

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(2))=\left[ \begin(matrix ) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left[ \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(matrix) \right])^(3))=((\left[ \begin (matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end( matrix) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \\\end(array) \right]\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 3 \\ 0 at 1 \\\end(array) \right] \end(align)\]

Iyon lang. :)

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

Problema 8. Itaas ang matrix sa tinukoy na kapangyarihan:

\[((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(10))\]

Solusyon. Huwag lamang umiyak ngayon tungkol sa katotohanan na "masyadong mataas ang antas", "hindi patas ang mundo" at "ang mga guro ay ganap na nawalan ng kanilang mga bangko". Sa katunayan, ang lahat ay madali:

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(10))=((\left[ \begin (matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))\cdot ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\ end(matrix) \right])^(3))\cdot ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))\ cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left(\left[ \begin(matrix) 1 & 3 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 3 \\ 0 & 1 \\\end(matrix) \right] \right)\cdot \left(\left[ \begin(matrix) 1 & 3 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right ] \right)= \\ & =\left[ \begin(matrix) 1 & 6 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 4 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left[ \begin(matrix) 1 & 10 \\ 0 & 1 \\\end(matrix) \right] \end(align)\ ]

Tandaan na sa pangalawang linya ginamit namin ang multiplication associativity. Sa totoo lang, ginamit namin ito sa nakaraang gawain, ngunit doon ito ay implicit.

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

Tulad ng makikita mo, walang kumplikado sa pagtaas ng isang matrix sa isang kapangyarihan. Ang huling halimbawa ay maaaring ibuod:

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

Ang katotohanang ito ay madaling patunayan sa pamamagitan ng mathematical induction o direct multiplication. Gayunpaman, ito ay malayo mula sa palaging posible upang mahuli ang gayong mga pattern kapag nagtataas sa isang kapangyarihan. Samakatuwid, mag-ingat: kadalasan ay mas madali at mas mabilis na magparami ng ilang matrice na "blangko" kaysa maghanap ng ilang mga pattern doon.

Sa pangkalahatan, huwag maghanap ng mas mataas na kahulugan kung saan wala. Panghuli, isaalang-alang natin ang exponentiation ng isang mas malaking matrix - kasing dami ng $\left[ 3\times 3 \right]$.

Problema 9. Itaas ang matrix sa tinukoy na kapangyarihan:

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

Solusyon. Huwag na tayong maghanap ng mga pattern. Nagtatrabaho kami "sa pamamagitan ng":

\[((\left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right])^(3))=(( \left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right])^(2))\cdot \left[ \begin (matrix)0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right]\]

Magsimula tayo sa pamamagitan ng pag-squaring ng matrix na ito:

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

Ngayon, i-cube natin ito:

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

Iyon lang. Nalutas ang problema.

Sagot: $\left[ \begin(matrix) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end(matrix) \right]$.

Tulad ng nakikita mo, ang dami ng mga kalkulasyon ay naging mas malaki, ngunit ang kahulugan ay hindi nagbago sa lahat. :)

Maaaring matapos ang araling ito. Sa susunod na isasaalang-alang natin ang kabaligtaran na operasyon: hahanapin natin ang mga orihinal na multiplier gamit ang umiiral na produkto.

Tulad ng malamang na nahulaan mo na, pag-uusapan natin ang tungkol sa inverse matrix at mga pamamaraan para sa paghahanap nito.

Kahulugan 1

Ang produkto ng matrices (C=AB) ay isang operasyon lamang para sa pare-parehong matrice A at B, kung saan ang bilang ng mga column ng matrix A ay katumbas ng bilang ng mga row ng matrix B:

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

Halimbawa 1

Data ng matrix:

  • A = a (i j) ng mga sukat m × n;
  • B = b (i j) p × n

Matrix C , na ang mga elemento c i j ay kinakalkula ng sumusunod na formula:

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

Halimbawa 2

Kalkulahin natin ang mga produkto AB=BA:

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

Solusyon gamit ang matrix multiplication rule:

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

Ang produktong A B at B A ay matatagpuan, ngunit ang mga ito ay mga matrice na may iba't ibang laki: Ang A B ay hindi katumbas ng B A.

Mga katangian ng pagpaparami ng matrix

Mga katangian ng pagpaparami ng matrix:

  • (A B) C = A (B C) - associativity ng matrix multiplication;
  • A (B + C) \u003d A B + A C - distributive multiplication;
  • (A + B) C \u003d A C + B C - distributivity ng multiplikasyon;
  • λ (A B) = (λ A) B
Halimbawa 1

Suriin ang property #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 .

Halimbawa 2

Sinusuri namin ang property No. 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 .

Produkto ng tatlong matrice

Ang produkto ng tatlong matrice A B C ay kinakalkula sa 2 paraan:

  • hanapin ang A B at i-multiply sa C: (A B) C;
  • o hanapin muna ang B C, at pagkatapos ay i-multiply ang A (B C) .
Halimbawa 3

I-multiply ang mga matrice sa 2 paraan:

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

Algoritmo ng pagkilos:

  • hanapin ang produkto ng 2 matrices;
  • pagkatapos ay muli mahanap ang produkto ng 2 matrices.

isa). 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 .

Ginagamit namin ang formula A B C \u003d (A B) C:

isa). 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

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

Pagpaparami ng Matrix sa Numero

Kahulugan 2

Ang produkto ng matrix A sa bilang na k ay ang matrix B \u003d A k ng parehong laki, na nakuha mula sa orihinal sa pamamagitan ng pagpaparami ng isang naibigay na bilang ng lahat ng mga elemento nito:

b i , j = k × a i , j

Mga katangian ng pagpaparami ng isang matrix sa isang numero:

  • 1 × A = A
  • 0 × A = zero matrix
  • k(A + B) = kA + kB
  • (k + n) A = k A + n A
  • (k×n)×A = k(n×A)
Halimbawa 4

Hanapin ang produkto ng matrix A \u003d 4 2 9 0 by 5.

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

Pagpaparami ng isang matrix sa isang vector

Kahulugan 3

Upang mahanap ang produkto ng isang matrix at isang vector, kailangan mong i-multiply ayon sa panuntunan ng row-by-column:

  • kung i-multiply mo ang isang matrix sa isang column vector, ang bilang ng mga column sa matrix ay dapat tumugma sa bilang ng mga row sa column vector;
  • ang resulta ng multiplikasyon ng isang column vector ay isang column vector lamang:

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 + 12 × b . 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 ⋯ c 1 m

  • kung i-multiply mo ang isang matrix sa isang row vector, ang matrix na i-multiply ay dapat na eksklusibong isang column vector, at ang bilang ng mga column ay dapat tumugma sa bilang ng mga column sa row vector:

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

Halimbawa 5

Hanapin ang produkto ng matrix A at column vector 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

Halimbawa 6

Hanapin ang produkto ng matrix A at row vector 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

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

Kung may napansin kang pagkakamali sa text, mangyaring i-highlight ito at pindutin ang Ctrl+Enter



Mga artikulo sa kamakailang seksyon:

Pangunahing plano ng pagkilos at mga paraan upang mabuhay Tahimik sa gabi, lumalakas ang hangin sa araw, at humihinahon sa gabi
Pangunahing plano ng pagkilos at mga paraan upang mabuhay Tahimik sa gabi, lumalakas ang hangin sa araw, at humihinahon sa gabi

5.1. Ang konsepto ng kapaligiran ng tao. Normal at matinding kondisyon ng pamumuhay. Kaligtasan 5.1.1. Ang konsepto ng kapaligiran ng tao...

Mga tunog sa Ingles para sa mga bata: nabasa namin nang tama ang transkripsyon
Mga tunog sa Ingles para sa mga bata: nabasa namin nang tama ang transkripsyon

Alam mo ba na ang alpabetong Ingles ay binubuo ng 26 na titik at 46 na magkakaibang tunog? Ang parehong titik ay maaaring maghatid ng ilang mga tunog sa parehong oras....

Control test sa kasaysayan sa tema ng Early Middle Ages (Grade 6)
Control test sa kasaysayan sa tema ng Early Middle Ages (Grade 6)

M.: 2019. - 128 p. M.: 2013. - 160 p. Kasama sa manual ang mga pagsubok sa kasaysayan ng Middle Ages para sa kasalukuyan at panghuling kontrol at tumutugma sa nilalaman ...