Matricele joacă un rol vital în multe domenii diverse, inclusiv grafica computerizată, criptografie și comunicațiile fără fir. O matrice este o matrice dreptunghiulară de numere dispuse în rânduri și coloane, folosită pentru a reprezenta un obiect matematic sau proprietatea acestuia.
Una dintre operațiunile pe care ar putea fi necesar să le efectuați este înmulțirea matricei. Acest lucru găsește utilizări în multe domenii, cum ar fi calculele aerodinamice, procesarea semnalului, procesarea imaginilor și analiza seismică. Dar exact cum înmulțiți matrice?
Cum să înmulțiți două matrici
Reprezentați ordinea unei matrice ca produs dintre numărul de rânduri (m) și numărul de coloane (n). Pentru a multiplica două matrice, numărul de coloane din prima matrice trebuie să fie egal cu rândurile celei de-a doua matrice.
Dacă aveți două matrice, matricea A de ordinul m × n și B de ordinul n × p, ordinea matricei produsului va fi m × p. De exemplu, să presupunem că aveți o matrice A care conține două rânduri (m) și trei coloane (n) și o matrice B care conține trei rânduri (n) și două coloane (p). Matricea rezultată va consta din două rânduri și două coloane:
Înmulțiți două matrice folosind produsul punctual. Pentru a obține valoarea primului element al matricei rezultante, înmulțiți și adăugați elementele primului rând al primei matrice și ale primului rând al celui de-al doilea element al matricei cu element ca:
(1, 2, 3) • (7, 9, 11) = 1×7 + 2×9 + 3×11 = 58
În mod similar, pentru al doilea element, înmulțiți primul rând al primei matrice și a doua coloană a celei de-a doua matrice astfel:
(1, 2, 3) • (8, 10, 12) = 1×8 + 2×10 + 3×12 = 64
Pentru al treilea element, înmulțiți al doilea rând al primei matrice și prima coloană a celei de-a doua matrice astfel:
(4, 5, 6) • (7, 9, 11) = 4×7 + 5×9 + 6×11 = 139
Pentru al patrulea element, înmulțiți al doilea rând al primei matrice și a doua coloană a celei de-a doua matrice astfel:
(4, 5, 6) • (8, 10, 12) = 4×8 + 5×10 + 6×12 = 154
Astfel, matricea rezultată este:
Puteți explora și construi diferite programe pentru diferite operații pe matrice, cum ar fi:
- adunarea și scăderea a două matrice
- aflarea transpunerii unei matrice
- verificând dacă două matrice sunt identice
Un algoritm pentru multiplicarea a două matrici
Urmați acest algoritm pentru a construi programul pentru înmulțirea oricăror două matrice:
- Începeți programul.
- Introduceți rândurile și coloanele primei matrice.
- Introduceți rândurile și coloanele celei de-a doua matrice.
- Dacă matricele sunt incompatibile pentru înmulțire, imprimați o eroare și ieșiți.
- Definiți o matrice și introduceți numerele din prima matrice.
- Definiți o altă matrice și introduceți numărul în a doua matrice.
- Definiți o matrice pentru a stoca rezultatul înmulțirii celor două matrice.
- Setați o buclă pentru a repeta peste rândul primei matrice.
- Configurați o buclă interioară pentru a repeta peste coloana celei de-a doua matrice.
- Setați o altă buclă interioară pentru a repeta peste coloana primei matrice.
- Înmulțiți și adăugați elementele folosind formula mul[i][j] += m1[i][k] * m2[k][j] și stocați rezultatul înmulțirii în matricea rezultantă.
- Afișați matricea rezultată.
- Ieșiți din program.
Cum se efectuează înmulțirea matricelor folosind C
Întregul cod sursă pentru multiplicarea matricei folosind C este prezent în acesta Depozitul GitHub și este liber de utilizat.
Importați biblioteca stdio pentru a introduce numere și afișați rezultatul în consecință. Declarați principal funcția și cereți utilizatorului să introducă numărul de coloane și numărul de rânduri pentru ambele matrice folosind funcția imprimare() funcţie.
Folosește scanf() funcția de primire a intrărilor. %d este specificatorul de format zecimal care asigură că programul citește intrarea ca număr.
#include
#includeintprincipal()
{
int r1, r2, c1, c2;
printf("Introduceți numărul de rânduri pentru prima matrice:\n");
scanf("%d", &r1);
printf("Introduceți numărul de coloane pentru prima matrice:\n");
scanf("%d", &c1);
printf("Introduceți numărul de rânduri pentru a doua matrice:\n");
scanf("%d", &r2);
printf("Introduceți numărul de coloane pentru a doua matrice:\n");
scanf("%d", &c2);
Verificați dacă înmulțirea matricei este posibilă. Dacă numărul de coloane din prima matrice nu este egal cu numărul de rânduri din a doua matrice, afișați o eroare și ieșiți.
dacă (c1 != r2) {
printf("Matricele nu pot fi înmulțite împreună");
Ieșire(-1);
}
Dacă totul este bine, definiți două matrice multidimensionale, m1 și m2, cu dimensiunea furnizată de utilizator. Cereți utilizatorului să introducă elementele ambelor matrici unul câte unul. Utilizați un imbricat pentru buclă pentru a prelua intrarea atât pentru rândul, cât și pentru coloana matricei. Bucla exterioară pentru iterează peste rândurile matricei, iar bucla interioară peste coloana matricei.
intm1[r1][c1], m2[r2][c2];
printf("Introduceți elementele primei matrice\n");pentru (int i = 0; i < r1; i++) {
pentru (int j = 0; j < c1; j++) {
scanf("%d", &m1[i][j]);
}
}
printf("Introduceți elementele celei de-a doua matrice\n");
pentru (int i = 0; i < r2; i++) {
pentru (int j = 0; j < c2; j++) {
scanf("%d",&m2[i][j]);
}
}
Definiți o a treia matrice, mul, de ordinul r1 * c2 pentru a stoca rezultatul. Utilizați un imbricat pentru buclă pentru a efectua înmulțirea. Bucla for cea mai exterioară iterează peste rânduri, următoarea buclă interioară iterează peste coloane, iar cea mai interioară efectuează înmulțirea. Folosește formula mul[i][j] += m1[i][k] * m2[k][j] pentru a multiplica elementele matricei.
Formula folosește operatorul de scurtătură += a adauga mul[i][j] la expresia calculată și stocați-o. Nu uitați să inițializați rezultatul la zero înainte de a-l adăuga.
intmul[r1][c2];pentru (int i = 0; i < r1; i++) {
pentru (int j = 0; j < c2; j++) {
mul[i][j] = 0;
pentru (int k = 0; k < c1; k++) {
mul[i][j] += m1[i][k] * m2[k][j];
}
}
}
Afișați matricea înmulțită folosind o buclă for imbricată care iterează peste rândurile și coloanele matricelor rezultate. Utilizați caracterul de linie nouă (\n) pentru a afișa fiecare dintre rânduri pe o linie separată. Reveniți 0 pentru a părăsi funcția principală și programul.
printf("Matricea multiplicată este: \n"); pentru (int i = 0; i < r1; i++) {
pentru (int j = 0; j < c2; j++) {
printf("%d\t", mul[i][j]);
}
printf("\n");
}
întoarcere0;
}
Ieșirea programului de multiplicare matrice
Ar trebui să vedeți ceva de genul următor rezultat când rulați programul de multiplicare a matricei:
Dacă introduceți o intrare nevalidă, înmulțirea matricei eșuează și veți vedea ceva de genul acesta:
Matricele au multe utilizări
Diverse domenii folosesc matrici precum știință, comerț, economie, geologie, robotică și animație. Veți folosi în principal matrice în matematică pentru a rezolva ecuații liniare și pentru a reprezenta transformări precum rotația sau translația. Matricele pot calcula cantitatea de reflexie și refracție, precum și pot rezolva ecuațiile rețelei de curent alternativ în circuitele electrice.
În afară de aplicațiile educaționale, puteți utiliza matrice pentru analiza datelor sondajului, a datelor de vot, a listelor de articole de calcul și a altor seturi de date.