Matrix multiplikasjon C ++

Matrix multiplikasjon C ++
Du har kanskje lært og gjort mange spørsmål om matriser i matematikkfagene dine mens du studerer. Matrix er en samling rader og kolonner. Matrisen kan ha det tilsvarende antall rader og kolonner og være annerledes. Vi kan utføre enhver matematisk operasjon på matriser, jeg.e. tillegg, subtraksjon, multiplikasjon og inndeling. C ++ lar oss også bruke matriser i kodene våre og utføre disse operasjonene. Dermed har vi bestemt oss for å utføre matriksmultiplikasjon i C ++ programmering mens vi bruker Ubuntu 20.04 Linux -system. La oss starte med C ++ ny filoppretting for å legge til kode. Start skallterminalen først og bruk "berørings" -instruksjonen til Shell Terminalen for å generere en fil. Vi har kalt denne filen “Matrix.CC ”. Filen holdes i hjemmemappen til Linux -systemet vårt. Vi har åpnet den i GNU Nano -redaktøren ved hjelp av Ubuntus Nano Editor, som demonstrert i bildet nedenfor. Den tomme filen vil bli åpnet direkte i GNU Nano -redaktøren på bare 5 sekunder.

Eksempel # 01:

La oss komme i gang med det grunnleggende eksemplet på matriksmultiplikasjon i C++. C ++ bruker overskriften “iostream” for å ta standardinngang og output gjennom input-output-strømmen. Så den må også bestå i kodefilen. Vi har inkludert den i vår C ++ tomme fil ved å bruke nøkkelordet "#include" på topplinjen. Innen C ++ kan inngangs- og utgangsobjekter bare brukes med standardnavnet.

Så vi må bruke "kjønnssykdommen" navneområdet ved å bruke ordet "å bruke" etter overskriften. Vi vil gjøre vår Matrix -multiplikasjon innen C ++ Main () -metoden, som også er kjørekilden starter. Vi har erklært tre matriser “x”, “y” og “z” med størrelsen 5-5, i.e. rader*kolonner. Men vi har også erklært variabler “R” og “C” som rader og kolonner og tildelt begge med samme verdi. Foreløpig er det ingen verdier i matriser. Vi bruker matrisen “x” og “y” som inngangsmatriser, mens matrisen “z” vil være et produkt av begge disse matriser. For det første må vi legge til verdier i inngangsmatrisen “x” og “y” separat ved hjelp av løkker.

COUT -utsagnene viser at brukeren legger inn verdiene i matriser “x” og “y” hver for seg. Den ytre "for" -sløyfen vil bli brukt til å iterere radene opp til “R” og den ytre “for” -sløyfen opp til iterate kolonneverdi “C”. Ettersom både “R” og “C” har verdi 2, vil vi dermed lage en “X” og “Y” -matrise på 2*2. “CIN” -objektet har blitt brukt til å legge til verdiene i matrisen “X” og “Y” ved å bruke “I” og “J” -løkker. Gjennom dette vil brukeren legge til “2” radverdier og “2” kolonneverdier i matriser av skallet. Etter å ha lagt inn verdier i "x" og "y" -matriser, må vi finne ut produktet av begge matriser. For det første må vi initialisere alle rader og kolonner med produktmatrise “z” til 0 på hver iterasjon ved å bruke både “i” og “j” for løkker, i.e. r = 2, og c = 2.

På hver iterasjon brukes "K" -løkken til å multiplisere matrisen "x" med "y" og legge til denne produktverdien til en bestemt iterasjonsindeks over matrise "z". Dette vil bli videreført til den siste radkolonnen til Matrix “Z”. De siste 2 “for” -løkker har blitt brukt til å vise matrisen “Z” på skallet via objektet “cout” -uttalelse. Etter alt dette brukes den siste cout -uttalelsen til å legge til sluttlinjen. Programmet vårt er nå klart til å bli samlet på skallet.

G ++ kompilatoren i Ubuntu 20.04 har blitt brukt til å kompilere C ++ -koden, og "./en.ut ”spørring brukes til å utføre den kompilerte koden. Vi har lagt til 2-radsverdier og 2-kolonneverdier for “X” og “Y” matriser ved utførelse. Etter det er produktmatrisen “Z” for både matriser “X” og “Y” blitt beregnet og vist på skallet den siste.

Eksempel # 02:

Innenfor eksemplet ovenfor har vi beregnet matriksmultiplikasjon for to samme matriser, “x” og “y”, av samme rekkefølge, i.e. Samme antall rader og kolonner for begge matriser. Men, kjenner du reglene for beregning av matriksmultiplikasjon? Hvis ikke? Da vil dette eksemplet være den beste hjelpen for deg. Du må vite at vi ikke kan beregne matriksmultiplikasjonen av to matriser med forskjellige rader til kolonneordre. For å utføre multiplikasjon, må den første Matrix Row -verdien være lik den andre matrikskolonneverdien, i.e. R1 = C2 eller R2 = C1. Vi har oppdatert verdien av kolonnen “C” til 3. Nå er ikke radene og kolonneverdiene for matrise "x" og "y" ikke de samme. Produktet vil ikke bli beregnet som matrisen “x”, og “y” vil ha 2 rader og 3 kolonner, i.e. R1 er ikke lik C2, og R2 er ikke lik C1. Den gjenværende koden vil være uendret og lagret for sammenstilling via CTRL+S.

Vi har samlet denne uovertrufne rad-kolonne matrikskoden og utført den så langt. Brukeren har lagt til verdier for "x" og "y" -matriser. Vi har komplisert uventede multiplikasjonsresultater av matrise “x” og “y”. Denne utgangen er unøyaktig fordi vi ikke har brukt den samme ordren som kreves for matrisemultiplikasjonen.

For å løse denne bekymringen, må vi bruke rekkefølgen R1 = C2 og C1 = R2 for inngangsmatriser i koden vår. Derfor har vi åpnet den samme koden og endret radene og kolonnene for "X" og "Y" -matrisen sammen med variablene "R = 3" og "C = 4". La oss lagre denne oppdaterte koden og kompilere den.

Ved sammenstilling og utførelse har vi lagt til inngang for matrise “x” i rekkefølge 3-rad*4-kolonne og 4-rad*3-kolonne for matrise “y”. Vi har fått produktmatrisen av ordre 3-råsen*4-kolonne etter multiplikasjon av matrise “x” og “y”.

Eksempel # 03:

La oss ta en titt på det siste, men ikke minst eksempel på matriksmultiplikasjon. Vi har initialisert R1 = 3, C1 = 4, R2 = 4, C2 = 3, Matrix “X” og Matrix “Y” hver for seg. Produktmatrisen “M” er definert ved bruk av R1 og C2. Vi har brukt "for" -sløyfen for å vise de allerede initialiserte "X" og "Y" -matriser på skallet vårt ved hjelp av “cout” -objektene. Som demonstrert i det vedlagte bildet nedenfor, er dette blitt gjort separat for "X" og "Y" -matriser for å utføre matriksmultiplikasjon.

Vi har beregnet produktet av begge matriser og lagt produktet til matrise “M”. Endelig har vi vist produktmatrisen “M” på skallet ved hjelp av “Cout” -objektserklæringen.

Ved utførelse av kode har vi blitt vist med både “X” og “Y” matriser først og deretter produktmatrisen “M”.

Konklusjon:

Endelig! Vi har fullført forklaringen på å beregne matriksmultiplikasjonen i C ++ -kode ved å bruke Ubuntu 20.04 System. Vi har forklart viktigheten av rader i kolonner i rekkefølge av matriser for multiplikasjonsoperasjonen. Derfor har vi startet fra et enkelt eksempel på å ta de samme ordrematriser og gått videre med eksemplene på forskjellige ordrematriser.