// Numbas version: finer_feedback_settings {"name": "Matrices: Multiplication (Instructional)", "metadata": {"description": "
Multiplication of square and non square matrices, Identity matrices and zero matrices
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "duration": 0, "percentPass": 0, "showQuestionGroupNames": false, "shuffleQuestionGroups": false, "showstudentname": true, "question_groups": [{"name": "Group", "pickingStrategy": "all-ordered", "pickQuestions": 1, "questionNames": ["", "", "", "", ""], "variable_overrides": [[], [], [], [], []], "questions": [{"name": "Matrices: Multiplication 01", "extensions": [], "custom_part_types": [], "resources": [["question-resources/matrixMult.png", "/srv/numbas/media/question-resources/matrixMult.png"], ["question-resources/Matrix_Multiplication_02.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_02.gif"], ["question-resources/Matrix_Multiplication_01.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_01.gif"]], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Michael Proudman", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/269/"}], "tags": [], "metadata": {"description": "Multiplying matrices (pre-defined sizes in answers)
\nAn $n \\times p$ matrix $A$ can be multiplied by a $p \\times n$ matrix $B$ to form an $n \\times m$ matrix $AB=C$.
\nThe number of columns of $A$ must match the number of rows of $B$.
\n\nThe element in the $i^{th}$ row and $j^{th}$ column of $C$ is obtained by multiplying the $i^{th}$ row of $A$ with the $j^{th}$ column of $B$.
", "advice": "First of all, you should always check that the multiplication is even possible. Write down the dimensions (in order) of the two matrices:
\n\nThe number of columns in the first must match the number of rows in the second. As a bonus this will also give you the dimensions of the product matrix.
\nThe multiplication is then carried out moving across the rows of the first matrix and down the columns of the second:
\n\n\nUsing this techniques will give:
\n$A_1A_2=\\var{A1}\\var{A2}$
\n\n$A_1 A_2=\\var{prodA}$
\n\n$B_1B_2=\\var{B1}\\var{B2}$
\n$B_1 B_2=\\var{prodB}$
\n\n
$C_1C_2=\\var{C1}\\var{C2}$
\n$C_1 C_2=\\var{prodC}$
\n", "rulesets": {}, "variables": {"n1": {"name": "n1", "group": "Matrix A", "definition": "random(2..3)", "description": "", "templateType": "anything"}, "m1": {"name": "m1", "group": "Matrix A", "definition": "random(2..3 except n1)", "description": "", "templateType": "anything"}, "A1": {"name": "A1", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),n1),m1)))", "description": "", "templateType": "anything"}, "A2": {"name": "A2", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),m1),n1)))", "description": "", "templateType": "anything"}, "ProdA": {"name": "ProdA", "group": "Matrix A", "definition": "{A1}{A2}", "description": "", "templateType": "anything"}, "n2": {"name": "n2", "group": "Matrix B", "definition": "random(2..3)", "description": "", "templateType": "anything"}, "m2": {"name": "m2", "group": "Matrix B", "definition": "random(2..3 except n2)", "description": "", "templateType": "anything"}, "B1": {"name": "B1", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),n2),m2)))", "description": "", "templateType": "anything"}, "B2": {"name": "B2", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),m2),n2)))", "description": "", "templateType": "anything"}, "ProdB": {"name": "ProdB", "group": "Matrix B", "definition": "{B1}{B2}", "description": "", "templateType": "anything"}, "n3": {"name": "n3", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "m3": {"name": "m3", "group": "Matrix C", "definition": "random(1..1)", "description": "", "templateType": "anything"}, "C1": {"name": "C1", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),n3),m3)))", "description": "", "templateType": "anything"}, "m3a": {"name": "m3a", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "C2": {"name": "C2", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),m3),m3a)))", "description": "", "templateType": "anything"}, "prodC": {"name": "prodC", "group": "Matrix C", "definition": "{C1}{C2}", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "Matrix A", "variables": ["n1", "m1", "A1", "A2", "ProdA"]}, {"name": "Matrix B", "variables": ["n2", "m2", "B1", "B2", "ProdB"]}, {"name": "Matrix C", "variables": ["n3", "m3", "C1", "m3a", "C2", "prodC"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "\n
$A_1A_2=\\var{A1}\\var{A2}$
\n$A_1 A_2=$ [[0]]
\n\n$B_1B_2=\\var{B1}\\var{B2}$
\n$B_1 B_2=$ [[1]]
\n\n
$C_1C_2=\\var{C1}\\var{C2}$
\n$C_1 C_2=$ [[2]]
\n\n
", "gaps": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{ProdA}", "correctAnswerFractions": false, "numRows": "{n1}", "numColumns": "{n1}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{prodB}", "correctAnswerFractions": false, "numRows": "{n2}", "numColumns": "{n2}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{prodC}", "correctAnswerFractions": false, "numRows": "n3", "numColumns": "m3a", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Matrices: Multiplication 02", "extensions": [], "custom_part_types": [], "resources": [["question-resources/matrixMult.png", "/srv/numbas/media/question-resources/matrixMult.png"], ["question-resources/Matrix_Multiplication_02.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_02.gif"], ["question-resources/Matrix_Multiplication_01.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_01.gif"]], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Michael Proudman", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/269/"}], "tags": [], "metadata": {"description": "
Multiplying matrices (student-defines sizes in answers)
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "An $n \\times p$ matrix $A$ can be multiplied by a $p \\times n$ matrix $B$ to form an $n \\times m$ matrix $AB=C$.
\nThe number of columns of $A$ must match the number of rows of $B$.
\n\nThe element in the $i^{th}$ row and $j^{th}$ column of $C$ is obtained by multiplying the $i^{th}$ row of $A$ with the $j^{th}$ column of $B$.
", "advice": "First of all, you should always check that the multiplication is even possible. Write down the dimensions (in order) of the two matrices:
\n\nThe number of columns in the first must match the number of rows in the second. As a bonus this will also give you the dimensions of the product matrix.
\nThe multiplication is then carried out moving across the rows of the first matrix and down the columns of the second:
\n\n\nUsing this techniques will give:
\n$A_1A_2=\\var{A1}\\var{A2}$
\n\n$A_1 A_2=\\var{prodA}$
\n\n$B_1B_2=\\var{B1}\\var{B2}$
\n$B_1 B_2=\\var{prodB}$
\n\n
$C_1C_2=\\var{C1}\\var{C2}$
\n$C_1 C_2=\\var{prodC}$
\n", "rulesets": {}, "variables": {"n1": {"name": "n1", "group": "Matrix A", "definition": "random(2..3)", "description": "", "templateType": "anything"}, "m1": {"name": "m1", "group": "Matrix A", "definition": "random(2..3 except n1)", "description": "", "templateType": "anything"}, "A1": {"name": "A1", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),n1),m1)))", "description": "", "templateType": "anything"}, "A2": {"name": "A2", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),m1),n1)))", "description": "", "templateType": "anything"}, "ProdA": {"name": "ProdA", "group": "Matrix A", "definition": "{A1}{A2}", "description": "", "templateType": "anything"}, "n2": {"name": "n2", "group": "Matrix B", "definition": "random(2..3)", "description": "", "templateType": "anything"}, "m2": {"name": "m2", "group": "Matrix B", "definition": "random(2..3 except n2)", "description": "", "templateType": "anything"}, "B1": {"name": "B1", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),n2),m2)))", "description": "", "templateType": "anything"}, "B2": {"name": "B2", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),m2),n2)))", "description": "", "templateType": "anything"}, "ProdB": {"name": "ProdB", "group": "Matrix B", "definition": "{B1}{B2}", "description": "", "templateType": "anything"}, "n3": {"name": "n3", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "m3": {"name": "m3", "group": "Matrix C", "definition": "random(1..1)", "description": "", "templateType": "anything"}, "C1": {"name": "C1", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),n3),m3)))", "description": "", "templateType": "anything"}, "m3a": {"name": "m3a", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "C2": {"name": "C2", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),m3),m3a)))", "description": "", "templateType": "anything"}, "prodC": {"name": "prodC", "group": "Matrix C", "definition": "{C1}{C2}", "description": "", "templateType": "anything"}, "row1A": {"name": "row1A", "group": "Matrix A", "definition": "A1[0][0..1]", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "Matrix A", "variables": ["n1", "m1", "A1", "A2", "ProdA", "row1A"]}, {"name": "Matrix B", "variables": ["n2", "m2", "B1", "B2", "ProdB"]}, {"name": "Matrix C", "variables": ["n3", "m3", "C1", "m3a", "C2", "prodC"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "You need to define the dimensions of the matrix before entering your answer.
\n\n
$A_1A_2=\\var{A1}\\var{A2}$
\n$A_1 A_2=$ [[0]]
\n\n$B_1B_2=\\var{B1}\\var{B2}$
\n$B_1 B_2=$ [[1]]
\n\n
$C_1C_2=\\var{C1}\\var{C2}$
\n$C_1 C_2=$ [[2]]
\n\n
", "gaps": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{ProdA}", "correctAnswerFractions": false, "numRows": "1", "numColumns": "1", "allowResize": true, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{prodB}", "correctAnswerFractions": false, "numRows": "1", "numColumns": "1", "allowResize": true, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{prodC}", "correctAnswerFractions": false, "numRows": "1", "numColumns": "1", "allowResize": true, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Matrices: Multiplication 03", "extensions": [], "custom_part_types": [], "resources": [["question-resources/matrixMult.png", "/srv/numbas/media/question-resources/matrixMult.png"], ["question-resources/Matrix_Multiplication_02.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_02.gif"], ["question-resources/Matrix_Multiplication_01.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_01.gif"]], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Michael Proudman", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/269/"}], "tags": [], "metadata": {"description": "
Multiplying matrices (pre-defined sizes in answers)
\nThis set is designed to emphasise non-commutativity.
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "An $n \\times p$ matrix $A$ can be multiplied by a $p \\times n$ matrix $B$ to form an $n \\times m$ matrix $AB=C$.
\nThe number of columns of $A$ must match the number of rows of $B$.
\n\nThe element in the $i^{th}$ row and $j^{th}$ column of $C$ is obtained by multiplying the $i^{th}$ row of $A$ with the $j^{th}$ column of $B$.
", "advice": "First of all, you should always check that the multiplication is even possible. Write down the dimensions (in order) of the two matrices:
\n\nThe number of columns in the first must match the number of rows in the second. As a bonus this will also give you the dimensions of the product matrix.
\nThe multiplication is then carried out moving across the rows of the first matrix and down the columns of the second:
\n\n\nUsing this techniques will give:
\n$A_1A_2=\\var{A1}\\var{A2}$
\n\n$A_1 A_2=\\var{prodA}$
\n\n$A_2 A_1=\\var{A2}\\var{A1}$
\n$A_2 A_1=\\var{prodA2}$
\n\n
$B_1B_2=\\var{B1}\\var{B2}$
\n$B_1B_2=\\var{prodB}$
\n\n
$B_2B_1=\\var{B2}\\var{B1}$
\n$B_2B_1=\\var{prodB2}$
\n\n
Hopefully, you can see that when the multiplication is reversed we get a different answer! That is very different to what we see in conventional arithmatic.
\nWith \"normal\" multiplication $3 \\times 2 = 2 \\times 3$, we say that multiplication is commutative - the order does not matter. That is not the case with matrix multiplication.
\nIt is clear that $AB$ and $BA$ are not in general the same. In fact it is the exception that $AB = BA$. In the special case in which $AB = BA$ we say that the matrices $A$ and $B$ commute.
\n", "rulesets": {}, "variables": {"n1": {"name": "n1", "group": "Matrix A", "definition": "2", "description": "", "templateType": "number"}, "m1": {"name": "m1", "group": "Matrix A", "definition": "2", "description": "", "templateType": "number"}, "A1": {"name": "A1", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),n1),m1)))", "description": "", "templateType": "anything"}, "A2": {"name": "A2", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),m1),n1)))", "description": "", "templateType": "anything"}, "ProdA": {"name": "ProdA", "group": "Matrix A", "definition": "{A1}{A2}", "description": "", "templateType": "anything"}, "n2": {"name": "n2", "group": "Matrix B", "definition": "3", "description": "", "templateType": "number"}, "m2": {"name": "m2", "group": "Matrix B", "definition": "3", "description": "", "templateType": "number"}, "B1": {"name": "B1", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),n2),m2)))", "description": "", "templateType": "anything"}, "B2": {"name": "B2", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),m2),n2)))", "description": "", "templateType": "anything"}, "ProdB": {"name": "ProdB", "group": "Matrix B", "definition": "{B1}{B2}", "description": "", "templateType": "anything"}, "n3": {"name": "n3", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "m3": {"name": "m3", "group": "Matrix C", "definition": "random(1..1)", "description": "", "templateType": "anything"}, "C1": {"name": "C1", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),n3),m3)))", "description": "", "templateType": "anything"}, "m3a": {"name": "m3a", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "C2": {"name": "C2", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),m3),m3a)))", "description": "", "templateType": "anything"}, "prodC": {"name": "prodC", "group": "Matrix C", "definition": "{C1}{C2}", "description": "", "templateType": "anything"}, "ProdA2": {"name": "ProdA2", "group": "Matrix A", "definition": "{A2}{A1}", "description": "", "templateType": "anything"}, "ProdB2": {"name": "ProdB2", "group": "Matrix B", "definition": "{B2}{B1}", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "Matrix A", "variables": ["n1", "m1", "A1", "A2", "ProdA", "ProdA2"]}, {"name": "Matrix B", "variables": ["n2", "m2", "B1", "B2", "ProdB", "ProdB2"]}, {"name": "Matrix C", "variables": ["n3", "m3", "C1", "m3a", "C2", "prodC"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "\n
$A_1A_2=\\var{A1}\\var{A2}$
\n$A_1 A_2=$ [[0]]
\n\n$A_2 A_1=\\var{A2}\\var{A1}$
\n$A_2 A_1=$ [[1]]
\n\n
$B_1B_2=\\var{B1}\\var{B2}$
\n$B_1B_2=$ [[2]]
\n\n
$B_2B_1=\\var{B2}\\var{B1}$
\n$B_2B_1=$ [[3]]
\n\n
From these results, what can you conclude about matrix multiplication in general?
\n[[4]]
\n", "gaps": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{ProdA}", "correctAnswerFractions": false, "numRows": "{n1}", "numColumns": "{n1}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{ProdA2}", "correctAnswerFractions": false, "numRows": "{n1}", "numColumns": "{n1}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{prodB}", "correctAnswerFractions": false, "numRows": "n2", "numColumns": "m2", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "ProdB2", "correctAnswerFractions": false, "numRows": "{n2}", "numColumns": "{n2}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "1_n_2", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "radiogroup", "displayColumns": 0, "showCellAnswerState": true, "choices": ["$AB=BA$", "$AB \\ne BA$\nMultiplying matrices (pre-defined sizes in answers)
\nIntroduces unit/identity matrices
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "An $n \\times p$ matrix $A$ can be multiplied by a $p \\times n$ matrix $B$ to form an $n \\times m$ matrix $AB=C$.
\nThe number of columns of $A$ must match the number of rows of $B$.
\n\nThe element in the $i^{th}$ row and $j^{th}$ column of $C$ is obtained by multiplying the $i^{th}$ row of $A$ with the $j^{th}$ column of $B$.
", "advice": "\n
The matrix $\\var{I2}$ is called the identity matrix or unit matrix of order $2$, and is usually denoted by the symbol $I$. (Strictly we would write $I_2$, to indicate the size.)
\n$I$ plays the same role in matrix multiplication as the number $1$ does in number multiplication.
\n\nTherefore:
\njust as $a \\times 1 = 1 \\times a = a$ for any number $a$, so $AI = IA = A$ for any matrix $A$.
\n", "rulesets": {}, "variables": {"n1": {"name": "n1", "group": "Matrix A", "definition": "2", "description": "", "templateType": "number"}, "m1": {"name": "m1", "group": "Matrix A", "definition": "2", "description": "", "templateType": "number"}, "A1": {"name": "A1", "group": "Matrix A", "definition": " transpose(matrix(repeat(repeat(random(0..9),m1),n1)))", "description": "", "templateType": "anything"}, "A2": {"name": "A2", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),m1),n1)))", "description": "", "templateType": "anything"}, "ProdA": {"name": "ProdA", "group": "Matrix A", "definition": "{A1}{A2}", "description": "", "templateType": "anything"}, "n2": {"name": "n2", "group": "Matrix B", "definition": "3", "description": "", "templateType": "number"}, "m2": {"name": "m2", "group": "Matrix B", "definition": "3", "description": "", "templateType": "number"}, "B1": {"name": "B1", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),n2),m2)))", "description": "", "templateType": "anything"}, "B2": {"name": "B2", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),m2),n2)))", "description": "", "templateType": "anything"}, "ProdB": {"name": "ProdB", "group": "Matrix B", "definition": "{B1}{B2}", "description": "", "templateType": "anything"}, "n3": {"name": "n3", "group": "Matrix C", "definition": "3", "description": "", "templateType": "number"}, "m3": {"name": "m3", "group": "Matrix C", "definition": "3", "description": "", "templateType": "number"}, "C1": {"name": "C1", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),n3),m3)))", "description": "", "templateType": "anything"}, "m3a": {"name": "m3a", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "C2": {"name": "C2", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),m3),m3a)))", "description": "", "templateType": "anything"}, "prodC": {"name": "prodC", "group": "Matrix C", "definition": "{C1}{C2}", "description": "", "templateType": "anything"}, "row1A": {"name": "row1A", "group": "Matrix A", "definition": "A1[0][0..1]", "description": "", "templateType": "anything"}, "I2": {"name": "I2", "group": "Ungrouped variables", "definition": "id(n1)", "description": "", "templateType": "anything"}, "I3": {"name": "I3", "group": "Ungrouped variables", "definition": "id(n2)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["I2", "I3"], "variable_groups": [{"name": "Matrix A", "variables": ["n1", "m1", "A1", "A2", "ProdA", "row1A"]}, {"name": "Matrix B", "variables": ["n2", "m2", "B1", "B2", "ProdB"]}, {"name": "Matrix C", "variables": ["n3", "m3", "C1", "m3a", "C2", "prodC"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "\n
$A_1 I_2=\\var{A1}\\var{I2} $
\n$A_1 I_2=$ [[0]]
\n\n$B_1 I_3=\\var{B1}\\var{I3}$
\n$B_1 I_3=$ [[1]]
\n\n
$C_1 I_3=\\var{C1}\\var{I3}$
\n$C_1 I_3=$ [[2]]
\n\n
$I_3 C_1=\\var{C1}\\var{I3}$
\n$I_3 C_1=$ [[3]]
", "gaps": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{A1}", "correctAnswerFractions": false, "numRows": "{n1}", "numColumns": "{n1}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{B1}", "correctAnswerFractions": false, "numRows": "n2", "numColumns": "n2", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{C1}", "correctAnswerFractions": false, "numRows": "n2", "numColumns": "n2", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": false, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{C1}", "correctAnswerFractions": false, "numRows": "n2", "numColumns": "n2", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}, {"name": "Matrices: Multiplication 05", "extensions": [], "custom_part_types": [], "resources": [["question-resources/matrixMult.png", "/srv/numbas/media/question-resources/matrixMult.png"], ["question-resources/Matrix_Multiplication_02.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_02.gif"], ["question-resources/Matrix_Multiplication_01.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_01.gif"]], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Michael Proudman", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/269/"}], "tags": [], "metadata": {"description": "Multiplying matrices (pre-defined sizes in answers)
\nZero matrices AND AB = 0 does not imply that either A = 0 or B = 0.
", "licence": "Creative Commons Attribution-NonCommercial 4.0 International"}, "statement": "An $n \\times p$ matrix $A$ can be multiplied by a $p \\times n$ matrix $B$ to form an $n \\times m$ matrix $AB=C$.
\nThe number of columns of $A$ must match the number of rows of $B$.
\n\nThe element in the $i^{th}$ row and $j^{th}$ column of $C$ is obtained by multiplying the $i^{th}$ row of $A$ with the $j^{th}$ column of $B$.
", "advice": "\n
The matrix $\\var{Z2}$ is called the zerot matrix of order $2$, and is usually denoted by the symbol $\\underline{0}$.
\nAnd:
\n$ \\Large A \\times \\underline{0}=\\underline{0} \\times A=\\underline{0}$ for any matrix $A$
\n\n\nThis explains why, for the first four multiplications, we get fairly predictable results:
\n$A B=\\var{A1}\\var{Z2} $
\n$AB=\\var{Z2}$
\n\n$B A=\\var{Z2}\\var{A1}$
\n$B A=\\var{Z2}$
\n\n
$C D=\\var{B1}\\var{Z3}$
\n$C D=\\var{Z3}$
\n\n
$DC=\\var{Z3}\\var{B1}$
\n$DC=\\var{Z3}$
\n\n
But now we get some more interesting results:
\n$EF=\\var{X1}\\var{Y1}$
\n$EF=\\var{Z2}$
\n\n
$FE=\\var{Y1}\\var{X1}$
\n$FE=\\var{Z2}$
\n\n
In the multiplication of \"normal\" numbers
\n$\\large ab=0$
\nwould imply that either $a=0$, or $b=0$ or both are zero. This is not necessarily true for matrices.
", "rulesets": {}, "variables": {"n1": {"name": "n1", "group": "Matrix A", "definition": "2", "description": "", "templateType": "number"}, "m1": {"name": "m1", "group": "Matrix A", "definition": "2", "description": "", "templateType": "number"}, "A1": {"name": "A1", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),n1),m1)))", "description": "", "templateType": "anything"}, "A2": {"name": "A2", "group": "Matrix A", "definition": "transpose(matrix(repeat(repeat(random(0..9),m1),n1)))", "description": "", "templateType": "anything"}, "ProdA": {"name": "ProdA", "group": "Matrix A", "definition": "{A1}{A2}", "description": "", "templateType": "anything"}, "n2": {"name": "n2", "group": "Matrix B", "definition": "3", "description": "", "templateType": "number"}, "m2": {"name": "m2", "group": "Matrix B", "definition": "3", "description": "", "templateType": "number"}, "B1": {"name": "B1", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),n2),m2)))", "description": "", "templateType": "anything"}, "B2": {"name": "B2", "group": "Matrix B", "definition": "transpose(matrix(repeat(repeat(random(0..9),m2),n2)))", "description": "", "templateType": "anything"}, "ProdB": {"name": "ProdB", "group": "Matrix B", "definition": "{B1}{B2}", "description": "", "templateType": "anything"}, "n3": {"name": "n3", "group": "Matrix C", "definition": "3", "description": "", "templateType": "number"}, "m3": {"name": "m3", "group": "Matrix C", "definition": "3", "description": "", "templateType": "number"}, "C1": {"name": "C1", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),n3),m3)))", "description": "", "templateType": "anything"}, "m3a": {"name": "m3a", "group": "Matrix C", "definition": "random(2..4)", "description": "", "templateType": "anything"}, "C2": {"name": "C2", "group": "Matrix C", "definition": "transpose(matrix(repeat(repeat(random(0..9),m3),m3a)))", "description": "", "templateType": "anything"}, "prodC": {"name": "prodC", "group": "Matrix C", "definition": "{C1}{C2}", "description": "", "templateType": "anything"}, "I2": {"name": "I2", "group": "Ungrouped variables", "definition": "id(n1)", "description": "", "templateType": "anything"}, "I3": {"name": "I3", "group": "Ungrouped variables", "definition": "id(n2)", "description": "", "templateType": "anything"}, "Z3": {"name": "Z3", "group": "Ungrouped variables", "definition": "transpose(matrix(repeat(repeat(0,n2),m2)))", "description": "", "templateType": "anything"}, "Z2": {"name": "Z2", "group": "Ungrouped variables", "definition": "transpose(matrix(repeat(repeat(0,n1),m1)))", "description": "", "templateType": "anything"}, "X1": {"name": "X1", "group": "Other matrices", "definition": "transpose(matrix(repeat(repeat(x,n1),m1)))", "description": "", "templateType": "anything"}, "x": {"name": "x", "group": "Other matrices", "definition": "random(1 .. 4#1)", "description": "", "templateType": "randrange"}, "y": {"name": "y", "group": "Other matrices", "definition": "random(1..5)", "description": "", "templateType": "anything"}, "Y1": {"name": "Y1", "group": "Other matrices", "definition": "matrix([y, -y],[-y,y])", "description": "", "templateType": "anything"}, "XY": {"name": "XY", "group": "Other matrices", "definition": "(X1)(Y1)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["I2", "I3", "Z3", "Z2"], "variable_groups": [{"name": "Matrix A", "variables": ["n1", "m1", "A1", "A2", "ProdA"]}, {"name": "Matrix B", "variables": ["n2", "m2", "B1", "B2", "ProdB"]}, {"name": "Matrix C", "variables": ["n3", "m3", "C1", "m3a", "C2", "prodC"]}, {"name": "Other matrices", "variables": ["X1", "x", "y", "Y1", "XY"]}], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "\n
$A B=\\var{A1}\\var{Z2} $
\n$AB=$ [[0]]
\n\n$B A=\\var{Z2}\\var{A1}$
\n$B A=$ [[1]]
\n\n
$C D=\\var{B1}\\var{Z3}$
\n$C D=$ [[2]]
\n\n
$DC=\\var{Z3}\\var{B1}$
\n$DC=$ [[3]]
\n\n
$EF=\\var{X1}\\var{Y1}$
\n$EF=$ [[4]]
\n\n
$FE=\\var{Y1}\\var{X1}$
\n$FE=$ [[5]]
", "gaps": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{Z2}", "correctAnswerFractions": false, "numRows": "{n1}", "numColumns": "{n1}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{Z2}", "correctAnswerFractions": false, "numRows": "n1", "numColumns": "n1", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{Z3}", "correctAnswerFractions": false, "numRows": "n2", "numColumns": "n2", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{Z3}", "correctAnswerFractions": false, "numRows": "n2", "numColumns": "n2", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{Z2}", "correctAnswerFractions": false, "numRows": "{n1}", "numColumns": "{n1}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "{Z2}", "correctAnswerFractions": false, "numRows": "{n1}", "numColumns": "{n1}", "allowResize": false, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "type": "question"}]}], "allowPrinting": true, "navigation": {"allowregen": true, "reverse": true, "browse": true, "allowsteps": true, "showfrontpage": true, "showresultspage": "oncompletion", "navigatemode": "sequence", "onleave": {"action": "none", "message": ""}, "preventleave": true, "startpassword": ""}, "timing": {"allowPause": true, "timeout": {"action": "none", "message": ""}, "timedwarning": {"action": "none", "message": ""}}, "feedback": {"showactualmark": true, "showtotalmark": true, "showanswerstate": true, "allowrevealanswer": true, "advicethreshold": 0, "intro": "", "end_message": "", "reviewshowscore": true, "reviewshowfeedback": true, "reviewshowexpectedanswer": true, "reviewshowadvice": true, "feedbackmessages": [], "enterreviewmodeimmediately": true, "showexpectedanswerswhen": "inreview", "showpartfeedbackmessageswhen": "always", "showactualmarkwhen": "always", "showtotalmarkwhen": "always", "showanswerstatewhen": "always", "showadvicewhen": "inreview"}, "diagnostic": {"knowledge_graph": {"topics": [], "learning_objectives": []}, "script": "diagnosys", "customScript": ""}, "type": "exam", "contributors": [{"name": "Michael Proudman", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/269/"}], "extensions": [], "custom_part_types": [], "resources": [["question-resources/matrixMult.png", "/srv/numbas/media/question-resources/matrixMult.png"], ["question-resources/Matrix_Multiplication_02.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_02.gif"], ["question-resources/Matrix_Multiplication_01.gif", "/srv/numbas/media/question-resources/Matrix_Multiplication_01.gif"]]}