Mnożenie macierzy C ++

Mnożenie macierzy C ++
Być może nauczyłeś się i zrobiłeś wiele pytań na temat macierzy w swoich przedmiotach matematyki podczas studiowania. Matrix to zbiór wierszy i kolumn. Matryca może mieć równoważną liczbę wierszy i kolumn i być inna. Możemy wykonać dowolną operację matematyczną na matrycach, i.mi. dodanie, odejmowanie, mnożenie i podział. C ++ pozwala nam również używać macierzy w naszych kodach i wykonywanie tych operacji. Dlatego postanowiliśmy przeprowadzić mnożenie macierzy w programowaniu C ++ podczas używania Ubuntu 20.04 System Linux. Zacznijmy od tworzenia nowego pliku C ++, aby dodać kod. Uruchom terminal powłoki najpierw i użyj instrukcji „dotyk” terminalu Shell, aby wygenerować plik. Nazwaliśmy ten plik „Matrix.CC ”. Plik jest przechowywany w folderze domowym naszego systemu Linux. Otwieraliśmy go w edytorze GNU Nano przy użyciu edytora Ubuntu Nano, jak pokazano na poniższym obrazku. Pusty plik zostanie bezpośrednio otwarty w edytorze GNU Nano w ciągu zaledwie 5 sekund.

Przykład nr 01:

Zacznijmy od podstawowego przykładu mnożenia macierzy w C++. C ++ używa nagłówka „iostream” do przyjmowania standardowego wejścia i wyjścia przez strumień wejściowy wyjściowy. Tak więc musi być również składane w pliku kodu. Uwzględniliśmy go w naszym pustym pliku C ++ za pomocą słowa kluczowego „#Include” w górnej linii. W ramach C ++ obiekty wejściowe i wyjściowe mogą być używane tylko ze standardowym przestrzenią nazw.

Musimy więc użyć przestrzeni nazw „STD” za pomocą słowa „używając” po nagłówku. Zrobimy nasz mnożenie macierzy w metodzie C ++ Main (), która jest również źródłem uruchamiania wykonania. Oświadczyliśmy trzy matryce „x”, „y” i „z” o wielkości 5-5, i i.mi. rzędy kolumny. Ale zadeklarowaliśmy również zmienne „r” i „c” jako wiersze i kolumny i przypisaliśmy obie z tą samą wartością. Obecnie w naszych macierzach nie ma żadnych wartości. Będziemy używać macierzy „x” i „y” jako macierzy wejściowe, podczas gdy macierz „z” będzie produktem obu tych macierzy. Po pierwsze, musimy dodać wartości w macierzy wejściowej „x” i „y” osobno za pomocą pętli.

Instrukcje cout pokazują, że użytkownik będzie wprowadzać wartości w macierzach „x” i „y” osobno. Zewnętrzna pętla „for” zostanie użyta do iteracji wierszy do „r” i zewnętrznej pętli „for” do iteracji wartości kolumny „c”. Ponieważ zarówno „R”, jak i „C” mają wartość 2, dlatego będziemy tworzyć macierz „x” i „y” 2*2. Obiekt „CIN” został użyty do dodania wartości w macierzy „X” i „Y” za pomocą pętli „I” i „J”. Dzięki temu użytkownik doda „2” wartości wiersza i wartości kolumny „2” w macierzach przez powłokę. Po wprowadzeniu wartości do macierzy „x” i „y”, musimy znaleźć produkt obu macierzy. Po pierwsze, musimy zainicjować wszystkie wiersze i kolumny macierzy produktu „Z” do 0 na każdej iteracji za pomocą zarówno „i”, jak i „j” dla pętli, i.mi. r = 2 i c = 2.

Na każdej iteracji pętla „k” służy do pomnożenia macierzy „x” z „y” i dodawania tej wartości produktu do konkretnego wskaźnika iteracji macierzy „Z”. Będzie to kontynuowane do ostatniej kolumny rzędu Matrix „Z”. Ostatnie 2 pętle „for” zostały użyte do wyświetlania macierzy „Z” na powładzie za pomocą instrukcji obiektu „cout”. Po tym wszystkim ostatnia instrukcja Cout jest używana do dodania linii końcowej. Nasz program jest teraz gotowy do skompilowania na powładzie.

Kompilator G ++ w Ubuntu 20.04 został użyty do kompilacji kodu C ++ i „./A.Zapytanie out jest używane do wykonywania skompilowanego kodu. Dodaliśmy wartości 2 rzędu i 2-kolumnowe wartości dla macierzy „x” i „y” po wykonaniu. Następnie macierz produktu „Z” zarówno macierzy „X”, jak i „Y” została obliczona i wyświetlona na powłoce ostatniego.

Przykład nr 02:

W powyższym przykładzie obliczyliśmy mnożenie macierzy dla dwóch samych macierzy, „x” i „y”, tej samej kolejności, i.mi. Ta sama liczba wierszy i kolumn dla obu macierzy. Ale czy znasz zasady obliczania mnożenia macierzy? Jeśli nie? Wtedy ten przykład będzie dla Ciebie najlepszą pomocą. Musisz wiedzieć, że nie możemy obliczyć mnożenia macierzy dwóch macierzy z różnymi wierszami w kolejności kolumny. Aby przeprowadzić mnożenie, pierwsza wartość wiersza macierzy musi być równa drugiej wartości kolumny macierzy, i.mi. R1 = C2 lub R2 = C1. Zaktualizowaliśmy wartość kolumny „C” do 3. Teraz wiersze i wartości kolumny dla macierzy „x” i „y” nie są takie same. Produkt nie zostanie obliczony jako matryca „x”, a „Y” będzie miał 2 rzędy i 3 kolumny, i.mi. R1 nie jest równe C2, a R2 nie jest równe C1. Pozostały kod pozostanie niezmieniony i zapisany dla kompilacji za pośrednictwem Ctrl+S.

Skompilowaliśmy ten niezrównany kod macierzy rzędowej i wykonaliśmy go do tej pory. Użytkownik dodał wartości dla macierzy „x” i „y”. Mamy skomplikowane nieoczekiwane wyniki mnożenia macierzy „X” i „Y”. To wyjście jest niedokładne, ponieważ nie użyliśmy tej samej kolejności wymaganej do mnożenia macierzy.

Aby rozwiązać ten problem, musimy użyć zamówienia R1 = C2 i C1 = R2 dla macierzy wejściowych w naszym kodzie. Dlatego otworzyliśmy ten sam kod i zmieniliśmy wiersze i kolumny dla macierzy „x” i „y” wraz ze zmiennymi „r = 3” i „c = 4”. Zapiszmy ten zaktualizowany kod i skompilujmy go.

W przypadku kompilacji i wykonania dodaliśmy wejście do macierzy „x” w kolejności 3-row*4-kolumnowej i 4-rzędowej*3-kolumnowej dla macierzy „y”. Mamy matrycę produktu 3-rzędowego*4-kolumnową po rozmnażaniu matrycy „x” i „y”.

Przykład nr 03:

Rzućmy okiem na ostatni, ale nie najmniej przykładu mnożenia macierzy. Zainicjowaliśmy R1 = 3, C1 = 4, R2 = 4, C2 = 3, matryca „x” i matryca „y” osobno. Matryca produktu „M” jest zdefiniowana za pomocą R1 i C2. Użyliśmy pętli „dla” do wyświetlania już zainicjowanych macierzy „x” i „y” na naszej powładzie za pomocą obiektów „cout”. Jak pokazano na poniższym obrazie, zostało to wykonane osobno dla macierzy „x” i „y”, aby wykonać mnożenie macierzy.

Obliczyliśmy produkt obu matryc i dodaliśmy produkt do matrycy „M”. W końcu wyświetliśmy matrycę produktu „M” na powładzie za pomocą instrukcji obiektu „Cout”.

Podczas wykonywania kodu zostaliśmy najpierw wyświetlani zarówno z macierzy „X”, jak i „Y”, a następnie ich macierz produktu „M”.

Wniosek:

Wreszcie! Ukończyliśmy wyjaśnienie obliczenia mnożenia macierzy w kodzie C ++ za pomocą Ubuntu 20.04 System. Wyjaśniliśmy znaczenie wierszy do kolumn w kolejności macierzy dla operacji mnożenia. Dlatego zaczęliśmy od prostego przykładu przyjmowania tych samych macierzy zamówień i posunęliśmy się z przykładami różnych macierzy zamówień.