\( \newcommand{\br}[1]{\left( #1\right)} \newcommand{\logpar}[1]{\log\left( #1\right)} \newcommand{\cospar}[1]{\cos\left( #1\right)} \newcommand{\sinpar}[1]{\sin\left( #1\right)} \newcommand{\tanpar}[1]{\tan\left( #1\right)} \newcommand{\arcsinpar}[1]{\sin^{-1}\!\left( #1\right)} \newcommand{\arccospar}[1]{\cos^{-1}\!\left( #1\right)} \newcommand{\arctanpar}[1]{\tan^{-1}\!\left( #1\right)} \newcommand{\asin}[1]{\sin^{-1}\! #1} \newcommand{\acos}[1]{\cos^{-1}\! #1} \newcommand{\atan}[1]{\tan^{-1}\! #1} \newcommand{\asinh}[1]{\sinh^{-1}\! #1} \newcommand{\acosh}[1]{\cosh^{-1}\! #1} \newcommand{\atanh}[1]{\tanh^{-1}\! #1} \newcommand{\logten}[1]{\log_{10}\! #1} \definecolor{explaination}{RGB}{0, 166, 226} \newcommand{\ubrace}[2][u]{ { \color{explaination}{\underbrace{ {\color{black}{#2}} }_{#1}} } } \newcommand{\obrace}[2][u]{ { \color{explaination}{\overbrace{ {\color{black}{#2}} }^{#1}} } } \definecolor{highlight}{RGB}{181, 41, 118} \newcommand{\xplain}[1]{{ \textcolor{explaination} { \footnotesize{ #1 \newline}}}} \newcommand{\hilite}[1]{{ \textcolor{highlight} { { #1 }}}} \definecolor{lightergray}{gray}{.675} \newcommand{\hide}[1]{{ \textcolor{lightergray} { \footnotesize{ #1 \newline}}}} \newcommand{\mth}[1]{ { \textcolor{black} { { \small #1 } } } } \)

Übung: Matrixmultiplikation

DIM_2 makeMatrix(randRange(-2, 5, DIM_1, DIM_2)) makeMatrix(randRange(-2, 5, DIM_3, DIM_4)) matrixMult(MAT_1, MAT_2) matrixPad(SOLN_MAT, 3, 3) "\\textbf " + randFromArray("ABCDEF") "\\textbf " + randFromArray("ABCDEF") [GREEN, BLUE, GRAY] [ORANGE, "#DF0030", "#9D38BD"] makeMultHintMatrix(MAT_1, MAT_2, ROW_COLORS, COL_COLORS) $._("Zeile") $._("Spalte")

PRETTY_MAT_1_ID = printSimpleMatrix(MAT_1)

PRETTY_MAT_2_ID = printSimpleMatrix(MAT_2)

Was ist das Produkt PRETTY_MAT_1_ID \cdot PRETTY_MAT_2_ID?

Da PRETTY_MAT_1_ID vom Typ (DIM_1 + "\\times" + DIM_2) ist und PRETTY_MAT_2_ID vom Typ (DIM_3 + "\\times" + DIM_4), wird das Produkt beider Matrizen vom Typ (DIM_1 + "\\times" + DIM_4) sein.

PRETTY_MAT_1_ID + PRETTY_MAT_2_ID = printColoredDimMatrix(MAT_1, ROW_COLORS, true) printColoredDimMatrix(MAT_2, COL_COLORS, false) = printSimpleMatrix(maskMatrix(FINAL_HINT_MAT, []))

Um den Wert einer Zeile i und einer Spalte j der Antwortmatrix zu finden, multipliziere die Elemente in der Zeile i der ersten Matrix, PRETTY_MAT_1_ID, mit den korrespondierenden Elementen in der Spalte j aus der zweiten Matrix, PRETTY_MAT_2_ID, und summiere die Produkte.

Um den Wert des Elements in Zeile 1, Spalte 1 der Antwortmatrix zu berechnen, müssen wir das erste Element in colorMarkup("\\text{" + ROW + " }1", ROW_COLORS[0]) von PRETTY_MAT_1_ID mit dem ersten Element in colorMarkup("\\text{" + COLUMN + " }1", COL_COLORS[0]) aus PRETTY_MAT_2_ID multiplizieren. Dasselbe machen wir mit dem zweiten Element in colorMarkup("\\text{" + ROW + " }1", ROW_COLORS[0]) von PRETTY_MAT_1_ID und multiplizieren es mit dem zweiten Element in colorMarkup("\\text{" + COLUMN + " }1", COL_COLORS[0]) aus PRETTY_MAT_2_ID, und so weiter. Wir addieren dann alle Produkte zusammen.

printSimpleMatrix( maskMatrix(FINAL_HINT_MAT, [[1, 1]]) )

Das Gleiche gilt auch für das Element in der zweiten Zeile, erste Spalte: multipliziere die Elemente in colorMarkup("\\text{" + ROW + " }2", ROW_COLORS[1]) aus PRETTY_MAT_1_ID mit den korrespondierenden Elementen in colorMarkup("\\text{" + COLUMN + " }1", COL_COLORS[0]) aus PRETTY_MAT_2_ID und addiere die Produkte.

printSimpleMatrix( maskMatrix(FINAL_HINT_MAT, [[1, 1], [2, 1]]) )

Wir können nach demselben Schema auch das Element in Zeile 1, Spalte 2 der Antwortmatrix bestimmen. Dazu multiplizieren wir wieder die Elemente in colorMarkup("\\text{" + ROW + " }1", ROW_COLORS[0]) aus PRETTY_MAT_1_ID mit den korrespondierenden Elementen in colorMarkup("\\text{" + COLUMN + " }2", COL_COLORS[1]) aus PRETTY_MAT_2_ID und addieren die Produkte.

printSimpleMatrix( maskMatrix(FINAL_HINT_MAT, [[1, 1], [2, 1], [1, 2]]) )

Für den Rest das Antwortmatrix bedeutet dies:

printSimpleMatrix(FINAL_HINT_MAT)

Nachdem wir die Produkte ausgewertet haben erhalten wir:

PRETTY_MAT_1_ID \cdot PRETTY_MAT_2_ID = printSimpleMatrix(SOLN_MAT)
elem elem
2 2 2
2 3 2
2 2 3
3 1 2
3 2 2