// Numbas version: finer_feedback_settings {"name": "Matrix products and transposes (same as WBQ 1.31)", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "Matrix products and transposes (same as WBQ 1.31)", "tags": ["associativity", "matrix multiplication", "transpose"], "metadata": {"description": "

A combination of tasks: checking which matrix products exist, calculating some of these products, calculating transpose matrices. Comparing product of transpose with transpose of product. Experiencing associativity of matrix multiplication. Not much randomisation, only in which matrix product is computed as second option.

\n

Comprehensive solution written out in Advice.

", "licence": "Creative Commons Attribution 4.0 International"}, "statement": "

Let \\(A=\\var{A}\\), \\(B=\\var{B}\\), \\(C=\\var{C}\\), \\(D=\\var{D}\\), \\(E=\\var{F}\\).

\n

You will be asked to

\n\n

When you have finished the calculations, think about what you have noticed and how this links to the theory from lectures. You can discuss this part in your Feedback Sessions.

", "advice": "

Which product exists?

\n

We can multiply an \\(m\\times k\\) matrix and a \\(k\\times n\\) matrix, i.e. the number of columns of the first matrix and the number of rows of the second matrix have to match. The resulting product has size \\(m\\times n\\).

\n

\\(A\\) has size \\(3\\times 2\\), \\(B\\) has size \\(2\\times 2\\), so \\(AB\\) exists but \\(BA\\) doesn't.

\n

\\(C\\) has size \\(2\\times 3\\), so both \\(AC\\) and \\(CA\\) exist.

\n

\\(D\\) hase size \\(3\\times 3\\), so \\(AD\\) doesn't exist but \\(DA\\) exists.

\n

Compute some matrix products

\n

To compute the product, we work out \"row \\(i\\) of first matrix times column \\(j\\) of second matrix\" for each entry \\(i,j\\) of the product, for example:

\n

\\[\\var{generalA}\\var{generalB}=\\var{generalAB}.\\]

\n

So we have:

\n

\\(AB=\\var{A}\\var{B}=\\var{unresolvedAB}=\\var{A*B}\\)

\n

and

\n

\\(\\var{firstmatrixname}\\var{secondmatrixname}=\\var{firstmatrix}\\var{secondmatrix}=\\var{unresolvedRandomProduct}=\\var{firstmatrix*secondmatrix}\\)

\n

Transpose a matrix

\n

When we transpose a matrix, we switch rows and columns: \\((A^T)_{ij}=A_{ji}\\).

\n

\\[A^T=\\var{transpose(A)}, \\quad B^T=\\var{transpose(B)}, \\quad  C^T=\\var{transpose(C)}, \\quad D^T=\\var{transpose(D)}, \\quad E^T=\\var{transpose(F)}.\\]

\n

You can see that \\(A^T\\) has size \\(2\\times 3\\) and \\(B^T\\) has size \\(2\\times 2\\), so now \\(A^TB^T\\) does not exist as the middle sizes don't match, but \\(B^TA^T\\) exists.

\n

Compute further products

\n

\\(B^TA^T=\\var{unresolvedBTAT}=\\var{transpose(B)*transpose(A)}\\)

\n

Notice that \\(B^TA^T=(AB)^T\\). This is a general rule. So since \\(BA\\) does not exist, \\((BA)^T=A^TB^T\\) also does not exist.

\n

\\(A(BC)=\\var{A}\\var{B*C}=\\var{A*B*C}\\) and \\((AB)C=\\var{A*B}\\var{C}=\\var{A*B*C}\\). We notice that we get the same answer: matrix multiplication is associative. The point here is to \"experience\" this general rule on an example.

\n

\\(CC^T=\\var{C}\\var{transpose(C)}=\\var{unresolvedCCT}=\\var{C*transpose(C)}\\).

", "rulesets": {}, "extensions": [], "variables": {"A": {"name": "A", "group": "Original matrices", "definition": "matrix([3,0],[-1,2],[1,1])", "description": "", "templateType": "anything"}, "B": {"name": "B", "group": "Original matrices", "definition": "matrix([4,-1],[0,2])", "description": "", "templateType": "anything"}, "C": {"name": "C", "group": "Original matrices", "definition": "matrix([1,4,2],[3,1,5])", "description": "", "templateType": "anything"}, "D": {"name": "D", "group": "Original matrices", "definition": "matrix([1,5,2],[-1,0,1],[3,2,4])", "description": "", "templateType": "anything"}, "F": {"name": "F", "group": "Original matrices", "definition": "matrix([6,1,3],[-1,1,2],[4,1,3])", "description": "", "templateType": "anything"}, "firstmatrix": {"name": "firstmatrix", "group": "Original matrices", "definition": "random(A,C,D)", "description": "", "templateType": "anything"}, "secondmatrix": {"name": "secondmatrix", "group": "Original matrices", "definition": "if(firstmatrix=A,C,A)", "description": "

Made so that firstmatrix times secondmatrix is one of AC, CA, DA.

", "templateType": "anything"}, "firstmatrixname": {"name": "firstmatrixname", "group": "Original matrices", "definition": "switch(firstmatrix=A,latex('A'),firstmatrix=C,latex('C'),firstmatrix=D,latex('D'))", "description": "

to put into the question text

", "templateType": "anything"}, "secondmatrixname": {"name": "secondmatrixname", "group": "Original matrices", "definition": "if(firstmatrix=A,latex('C'),latex('A'))", "description": "

to put into the question text

", "templateType": "anything"}, "rawunresolvedAB": {"name": "rawunresolvedAB", "group": "Matrix products for Advice", "definition": "rawunresolvedproduct(A,B,3,2,2)", "description": "", "templateType": "anything"}, "unresolvedAB": {"name": "unresolvedAB", "group": "Matrix products for Advice", "definition": "latex('\\\\begin{pmatrix}'+ concatstrings(rawunresolvedAB) +'\\\\end{'+'pmatrix}')", "description": "", "templateType": "anything"}, "rawgeneralA": {"name": "rawgeneralA", "group": "General matrices for Advice", "definition": "map('a_{'+'{k}'+'{l}}'+symbols[k-1][l-1],[k,l],product(1..2,1..2))", "description": "

to print out a 2x2 matrix A in the advice. Size can be changed here

", "templateType": "anything"}, "symbols": {"name": "symbols", "group": "General matrices for Advice", "definition": "repeat(repeat('&',1)+['\\\\\\\\'],1)+[repeat('&',1)+['']]", "description": "

symbols for the general matrix expressions. For general size it would be:

\n

repeat(repeat('&',n-1)+['\\\\\\\\'],m-1)+[repeat('&',n-1)+['']]

", "templateType": "anything"}, "rawgeneralB": {"name": "rawgeneralB", "group": "General matrices for Advice", "definition": "map('b_{'+'{k}'+'{l}}'+symbols[k-1][l-1],[k,l],product(1..2,1..2))", "description": "

to print out a 2x2 matrix B in the advice. Size can be changed here

", "templateType": "anything"}, "generalA": {"name": "generalA", "group": "General matrices for Advice", "definition": "latex('\\\\begin{pmatrix}'+ concatstrings(rawgeneralA) +'\\\\end{'+'pmatrix}')", "description": "

to print out a 2x2 matrix A in the advice.

", "templateType": "anything"}, "generalB": {"name": "generalB", "group": "General matrices for Advice", "definition": "latex('\\\\begin{pmatrix}'+ concatstrings(rawgeneralB) +'\\\\end{'+'pmatrix}')", "description": "", "templateType": "anything"}, "rawgeneralAB": {"name": "rawgeneralAB", "group": "General matrices for Advice", "definition": "map('a_\\{{r+1}{t+1}\\}'+'\\\\cdot'+' b_\\{{t+1}{s+1}\\}'+symbolsAB(2,2,2)[r][s][t],[r,s,t],product(0..1,0..1,0..1))", "description": "

to print out general product of matrices in Advice.

", "templateType": "anything"}, "generalAB": {"name": "generalAB", "group": "General matrices for Advice", "definition": "latex('\\\\begin{pmatrix}'+ concatstrings(rawgeneralAB) +'\\\\end{'+'pmatrix}')", "description": "", "templateType": "anything"}, "rawunresolvedRandomProduct": {"name": "rawunresolvedRandomProduct", "group": "Matrix products for Advice", "definition": "rawunresolvedproduct(firstmatrix,secondmatrix,numrows(firstmatrix),numrows(secondmatrix),numcolumns(secondmatrix))", "description": "

rawunresolvedproduct(firstmatrix,secondmatrix,m,k,n)

", "templateType": "anything"}, "unresolvedRandomProduct": {"name": "unresolvedRandomProduct", "group": "Matrix products for Advice", "definition": "latex('\\\\begin{pmatrix}'+ concatstrings(rawunresolvedRandomProduct) +'\\\\end{'+'pmatrix}')", "description": "", "templateType": "anything"}, "rawunresolvedBTAT": {"name": "rawunresolvedBTAT", "group": "Matrix products for Advice", "definition": "rawunresolvedproduct(transpose(B),transpose(A),2,2,3)", "description": "", "templateType": "anything"}, "unresolvedBTAT": {"name": "unresolvedBTAT", "group": "Matrix products for Advice", "definition": "latex('\\\\begin{pmatrix}'+ concatstrings(rawunresolvedBTAT) +'\\\\end{'+'pmatrix}')", "description": "", "templateType": "anything"}, "BTAT": {"name": "BTAT", "group": "Matrix products for Advice", "definition": "transpose(B)*transpose(A)", "description": "", "templateType": "anything"}, "rawunresolvedCCT": {"name": "rawunresolvedCCT", "group": "Matrix products for Advice", "definition": "rawunresolvedproduct(C,transpose(C),2,3,2)", "description": "", "templateType": "anything"}, "unresolvedCCT": {"name": "unresolvedCCT", "group": "Matrix products for Advice", "definition": "latex('\\\\begin{pmatrix}'+ concatstrings(rawunresolvedCCT) +'\\\\end{'+'pmatrix}')", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": [], "variable_groups": [{"name": "Original matrices", "variables": ["A", "B", "C", "D", "F", "firstmatrix", "secondmatrix", "secondmatrixname", "firstmatrixname"]}, {"name": "Matrix products for Advice", "variables": ["rawunresolvedAB", "unresolvedAB", "rawunresolvedRandomProduct", "unresolvedRandomProduct", "rawunresolvedBTAT", "unresolvedBTAT", "BTAT", "rawunresolvedCCT", "unresolvedCCT"]}, {"name": "General matrices for Advice", "variables": ["symbols", "rawgeneralA", "generalA", "rawgeneralB", "generalB", "rawgeneralAB", "generalAB"]}], "functions": {"concatstrings": {"parameters": [["input", "list"]], "type": "string", "language": "javascript", "definition": "var output = '';\nvar i;\nfor (i = 0; i < input.length; i++) {\n output += input[i];\n} \nreturn output;"}, "symbolsAB": {"parameters": [["m", "number"], ["k", "number"], ["n", "number"]], "type": "list", "language": "jme", "definition": "repeat(repeat(repeat('+',k-1)+['&'],n-1)+[repeat('+',k-1)+['\\\\\\\\']],m-1)+[repeat(repeat('+',k-1)+['&'],n-1)+[repeat('+',k-1)+['']]]"}, "rawunresolvedproduct": {"parameters": [["A", "matrix"], ["B", "matrix"], ["m", "number"], ["k", "number"], ["n", "number"]], "type": "string", "language": "jme", "definition": "map(if({A[r][t]<0,'({A[r][t]})','{A[r][t]}')+'\\\\cdot'+if(B[t][s]<0,'({B[t][s]})','{B[t][s]}')+symbolsAB(m,k,n)[r][s][t],[r,s,t],product(0..m-1,0..n-1,0..k-1))"}}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": true, "customName": "Which products exist?", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [{"label": "Compute some matrix products", "rawLabel": "", "otherPart": 1, "variableReplacements": [], "availabilityCondition": "answered", "penalty": "", "penaltyAmount": 0, "lockAfterLeaving": true}], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Which of these matrix products exist?

\n

[[0]]

\n

(You will receive 1 mark for each correct answer and -1 mark for each incorrect answer.)

", "gaps": [{"type": "m_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": "Determine whether matrix product exists.", "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "checkbox", "displayColumns": 0, "minAnswers": 0, "maxAnswers": 0, "warningType": "none", "showCellAnswerState": true, "choices": ["\\(AB\\)", "\\(BA\\)", "\\(AC\\)", "\\(CA\\)", "\\(AD\\)", "\\(DA\\)"], "matrix": ["1", "-1", "1", "1", "-1", "1"], "distractors": ["", "", "", "", "", ""]}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "Compute some matrix products", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [{"label": "Transpose a matrix", "rawLabel": "", "otherPart": 2, "variableReplacements": [], "availabilityCondition": "answered", "penalty": "", "penaltyAmount": 0, "lockAfterLeaving": true}], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Compute \\(AB = \\) [[0]]

\n

and \\(\\var{firstmatrixname}\\var{secondmatrixname}= \\)[[1]]

", "gaps": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": "3", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Multiply matrices", "correctAnswer": "A*B", "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": "3", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Multiply matrices", "correctAnswer": "firstmatrix*secondmatrix", "correctAnswerFractions": false, "numRows": 1, "numColumns": 1, "allowResize": true, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "Transpose a matrix", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [{"label": "Compute further products", "rawLabel": "", "otherPart": 3, "variableReplacements": [], "availabilityCondition": "answered", "penalty": "", "penaltyAmount": 0, "lockAfterLeaving": true}], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Compute the transposes:

\n

\\(A^T = \\) [[0]]

\n

\\(B^T= \\) [[1]]

\n

\\(C^T= \\) [[2]]

\n

\\(D^T= \\) [[3]]

\n

\\(E^T= \\) [[4]]

\n

Does \\(A^TB^T\\) exist? Does \\(B^TA^T\\) exist? Select which ones exist. [[5]] (You will 1 point for any correct answer and -1 point for any wrong answer.)

", "gaps": [{"type": "matrix", "useCustomName": true, "customName": "A transpose", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Transpose a matrix", "correctAnswer": "transpose(A)", "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": true, "customName": "B transpose", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Transpose a matrix", "correctAnswer": "transpose(B)", "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": true, "customName": "C transpose", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Transpose a matrix", "correctAnswer": "transpose(C)", "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": true, "customName": "D transpose", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Transpose a matrix", "correctAnswer": "transpose(D)", "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": true, "customName": "E transpose", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Transpose a matrix", "correctAnswer": "transpose(F)", "correctAnswerFractions": false, "numRows": 1, "numColumns": 1, "allowResize": true, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "m_n_2", "useCustomName": true, "customName": "products of transposes", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Determine whether matrix product exists.", "minMarks": 0, "maxMarks": 0, "shuffleChoices": false, "displayType": "checkbox", "displayColumns": 0, "minAnswers": 0, "maxAnswers": 0, "warningType": "none", "showCellAnswerState": true, "choices": ["\\(A^TB^T\\)", "\\(B^TA^T\\)"], "matrix": ["-1", "1"], "distractors": ["", ""]}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": true, "customName": "Compute further products", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Compute

\n

\\(B^TA^T= \\) [[0]]

\n

Compare \\(B^TA^T\\) and \\(A^TB^T\\) to \\(AB\\) and \\(BA\\). What do you notice? [[1]]

\n

\\(A(BC)= \\)[[2]]

\n

\\((AB)C= \\)[[3]]

\n

\\(CC^T= \\)[[4]]

", "gaps": [{"type": "matrix", "useCustomName": true, "customName": "B^TA^T", "marks": "2", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "correctAnswer": "transpose(B)*transpose(A)", "correctAnswerFractions": false, "numRows": 1, "numColumns": 1, "allowResize": true, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "m_n_2", "useCustomName": true, "customName": "Comparison", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Understand some theory", "minMarks": 0, "maxMarks": 0, "shuffleChoices": true, "displayType": "checkbox", "displayColumns": 0, "minAnswers": 0, "maxAnswers": 0, "warningType": "none", "showCellAnswerState": true, "choices": ["There is nothing that connects these products.", "We have \\(B^TA^T=(AB)^T\\).", "We have \\(A^TB^T=(AB)^T\\)", "The products \\(AB\\) and \\(B^TA^T\\) are the same.", "The product \\(BA\\) does not exist so \\(A^TB^T\\) cannot exist either."], "matrix": ["-1", "1", "-1", "-1", "1"], "distractors": ["", "", "", "", ""]}, {"type": "matrix", "useCustomName": true, "customName": "A(BC)", "marks": "3", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Multiply matrices", "correctAnswer": "A*B*C", "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": true, "customName": "(AB)C", "marks": "3", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Multiply matrices", "correctAnswer": "A*B*C", "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": true, "customName": "CC^T", "marks": "2", "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": "Multiply matrices", "alternatives": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": 0, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "alternativeFeedbackMessage": "

You seem to have computed \\(C^TC\\) instead of \\(CC^T\\). Matrix multiplication depends on the order!

", "useAlternativeFeedback": false, "correctAnswer": "transpose(C)*C", "correctAnswerFractions": false, "numRows": 1, "numColumns": 1, "allowResize": true, "tolerance": 0, "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}], "correctAnswer": "C*transpose(C)", "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": "explore", "maxMarks": "28", "objectives": [{"name": "Determine whether matrix product exists.", "limit": "5", "mode": "sum"}, {"name": "Multiply matrices", "limit": "16", "mode": "sum"}, {"name": "Transpose a matrix", "limit": "5", "mode": "sum"}, {"name": "Understand some theory", "limit": "2", "mode": "sum"}], "penalties": [], "objectiveVisibility": "when-active", "penaltyVisibility": "always", "type": "question", "contributors": [{"name": "Julia Goedecke", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/5121/"}]}]}], "contributors": [{"name": "Julia Goedecke", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/5121/"}]}