I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Le matrici svolgono un ruolo fondamentale in molti campi diversi, tra cui la computer grafica, la crittografia e la comunicazione wireless. Una matrice è una matrice rettangolare di numeri disposti in righe e colonne, utilizzata per rappresentare un oggetto matematico o una sua proprietà.

Una delle operazioni che potresti dover eseguire su di essi è la moltiplicazione di matrici. Questo trova impiego in molte aree come i calcoli aerodinamici, l'elaborazione dei segnali, l'elaborazione delle immagini e l'analisi sismica. Ma esattamente come si moltiplicano le matrici?

Come moltiplicare due matrici

Rappresenti l'ordine di una matrice come prodotto del numero di righe (m) e del numero di colonne (n). Per moltiplicare due matrici, il numero di colonne della prima matrice deve essere uguale alle righe della seconda matrice.

instagram viewer

Se hai due matrici, matrice A di ordine m × n e B di ordine n × p, l'ordine della matrice prodotto sarà m × p. Ad esempio, supponiamo di avere una matrice A contenente due righe (m) e tre colonne (n) e una matrice B contenente tre righe (n) e due colonne (p). La matrice risultante sarà composta da due righe e due colonne:

Moltiplichi due matrici usando il prodotto scalare. Per ottenere il valore del primo elemento della matrice risultante, moltiplicare e sommare gli elementi della prima riga della prima matrice e della prima riga della seconda matrice elemento per elemento come:

(1, 2, 3) • (7, 9, 11) = 1×7 + 2×9 + 3×11 = 58

Allo stesso modo, per il secondo elemento, moltiplica la prima riga della prima matrice e la seconda colonna della seconda matrice come:

(1, 2, 3) • (8, 10, 12) = 1×8 + 2×10 + 3×12 = 64

Per il terzo elemento, moltiplica la seconda riga della prima matrice e la prima colonna della seconda matrice come:

(4, 5, 6) • (7, 9, 11) = 4×7 + 5×9 + 6×11 = 139

Per il quarto elemento, moltiplica la seconda riga della prima matrice e la seconda colonna della seconda matrice come:

(4, 5, 6) • (8, 10, 12) = 4×8 + 5×10 + 6×12 = 154

La matrice risultante è quindi:

Puoi esplorare e costruire diversi programmi per diverse operazioni su matrici come:

  • addizione e sottrazione di due matrici
  • trovare la trasposta di una matrice
  • verificare se due matrici sono identiche

Un algoritmo per moltiplicare due matrici

Segui questo algoritmo per costruire il programma per la moltiplicazione di due matrici qualsiasi:

  1. Inizia il programma.
  2. Inserisci le righe e le colonne della prima matrice.
  3. Inserisci le righe e le colonne della seconda matrice.
  4. Se le matrici sono incompatibili per la moltiplicazione, stampa un errore ed esci.
  5. Definisci una matrice e inserisci i numeri nella prima matrice.
  6. Definire un'altra matrice e inserire il numero nella seconda matrice.
  7. Definire una matrice per memorizzare il risultato della moltiplicazione delle due matrici.
  8. Imposta un ciclo per iterare sulla riga della prima matrice.
  9. Imposta un ciclo interno per iterare sulla colonna della seconda matrice.
  10. Imposta un altro ciclo interno per iterare sulla colonna della prima matrice.
  11. Moltiplica e somma gli elementi usando la formula mul[i][j] += m1[i][k] * m2[k][j] e memorizzare il risultato della moltiplicazione nella matrice risultante.
  12. Visualizza la matrice risultante.
  13. Uscire dal programma.

Come eseguire la moltiplicazione di matrici usando C

L'intero codice sorgente per la moltiplicazione di matrici utilizzando C è presente in questo Deposito GitHub ed è gratuito da usare.

Importa la libreria stdio per inserire i numeri e visualizzare l'output di conseguenza. Dichiara il principale funzione e chiedere all'utente di inserire il numero di colonne e il numero di righe per entrambe le matrici utilizzando il stampa() funzione.

Usa il scanf() funzione per ricevere input. %D è l'identificatore di formato decimale che garantisce che il programma legga l'input come numero.

#includere
#includere

intprincipale()
{
int r1, r2, c1, c2;

printf("Inserisci il numero di righe per la prima matrice:\n");
scanf("%d", &r1);

printf("Inserisci il numero di colonne per la prima matrice:\n");
scanf("%d", &c1);

printf("Inserisci il numero di righe per la seconda matrice:\n");
scanf("%d", &r2);

printf("Inserisci il numero di colonne per la seconda matrice:\n");
scanf("%d", &c2);

Verificare che la moltiplicazione di matrici sia possibile. Se il numero di colonne della prima matrice non è uguale al numero di righe della seconda matrice, visualizzare un errore ed uscire.

se (c1 != r2) {
stampaf("Le matrici non possono essere moltiplicate insieme");
Uscita(-1);
}

Se tutto va bene, definisci due array multidimensionali, m1 E m2, con le dimensioni fornite dall'utente. Chiedere all'utente di inserire gli elementi di entrambe le matrici uno per uno. Usa un file nidificato per loop per prendere l'input sia per la riga che per la colonna della matrice. Il ciclo for esterno itera sulle righe della matrice e il ciclo interno sulla colonna della matrice.

intm1[r1][c1], m2[r2][c2];
stampaf("Inserisci gli elementi della prima matrice\n");

per (int io = 0; io < r1; i++) {
per (int j = 0; j scanf("%D", &m1[i][j]);
}
}

stampaf("Inserisci gli elementi della seconda matrice\n");

per (int io = 0; io < r2; i++) {
per (int j = 0; j scanf("%D",&m2[i][j]);
}
}

Definire una terza matrice, mul, di ordine r1 * c2 per memorizzare il risultato. Usa un file nidificato per loop per eseguire la moltiplicazione. Il ciclo for più esterno itera sulle righe, il successivo ciclo interno itera sulle colonne e il ciclo più interno esegue la moltiplicazione. Usa la formula mul[i][j] += m1[i][k] * m2[k][j] moltiplicare gli elementi della matrice.

La formula utilizza l'operatore abbreviato += aggiungere mul[i][j] all'espressione calcolata e memorizzarla. Ricordarsi di inizializzare il risultato su zero prima di aggiungerlo.

intmul[r1][c2];

per (int io = 0; io < r1; i++) {
per (int j = 0; j mul[i][j] = 0;

per (int K = 0; k mul[i][j] += m1[i][k] * m2[k][j];
}
}
}

Visualizza la matrice moltiplicata utilizzando un ciclo for nidificato che itera sulle righe e colonne delle matrici risultanti. Utilizzare il carattere di nuova riga (\n) per visualizzare ciascuna riga su una riga separata. Ritorna 0 per uscire dalla funzione principale e dal programma.

printf("La matrice moltiplicata è: \n");

per (int io = 0; io < r1; i++) {
per (int j = 0; j printf("%d\t", mul[i][j]);
}

printf("\N");
}

ritorno0;
}

L'output del programma di moltiplicazione di matrici

Dovresti vedere qualcosa di simile al seguente output quando esegui il programma di moltiplicazione di matrici:

Se inserisci un input non valido, la moltiplicazione della matrice fallisce e vedrai qualcosa di simile a questo:

Le matrici hanno molti usi

Vari campi utilizzano matrici come la scienza, il commercio, l'economia, la geologia, la robotica e l'animazione. Utilizzerai principalmente matrici in matematica per risolvere equazioni lineari e rappresentare trasformazioni come la rotazione o la traslazione. Le matrici possono calcolare la quantità di riflessione e rifrazione, nonché risolvere equazioni di rete CA nei circuiti elettrici.

Oltre alle applicazioni didattiche, è possibile utilizzare le matrici per l'analisi di dati di sondaggi, dati di votazione, elenchi di elementi di calcolo e altri set di dati.