// Numbas version: exam_results_page_options {"name": "Maria's copy of Week 3 Vectors", "percentPass": 0, "feedback": {"showactualmark": true, "showtotalmark": true, "advicethreshold": 0, "intro": "", "feedbackmessages": [], "showanswerstate": true, "allowrevealanswer": true}, "metadata": {"licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International", "description": "

Some questions to practice your fundamental skills in vectors.

"}, "question_groups": [{"name": "Vector Components", "pickingStrategy": "all-shuffled", "pickQuestions": 1, "questions": [{"name": "Hanging", "extensions": ["jsxgraph"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}, {"name": "Timothy Gould", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/1466/"}], "tags": [], "metadata": {"description": "", "licence": "None specified"}, "statement": "

A weight of mass {wt} kg hangs from two wires that make angles of {angl}$^\\circ$ and {angr}$^\\circ$, respectively, below the horizontal, as shown in the diagram. Assume $g=9.8~\\text{ms}^{-2}$.

\n

{tensiondia(topr,topl,height,wt,angl,angr)}

", "advice": "

{hangsol(topr,topl,height,wt,angl,angr)}

\n

Write the tensions $T_1$ and $T_2$ in terms of their horizontal and vertical components. From the diagram it can be seen that

\n

$T_1 = -|T_1| \\cos \\var{angl}^\\circ \\underline{i} + |T_1| \\sin \\var{angl}^\\circ \\underline{j}$

\n

$T_2 = |T_2| \\cos \\var{angr}^\\circ \\underline{i} + |T_2| \\sin \\var{angr}^\\circ \\underline{j}$

\n

The resultant vector $T_1+T_2$ of the tensions must balance the weight $\\underline{w} = \\var{wt}\\underline{g} = \\var{wt}\\times-9.8\\underline{j} = -\\var{wtg}\\underline{j}$. So we must have that

\n

$T_1+T_2 = -\\underline{w} = \\var{wtg}\\underline{j}$.

\n

Hence

\n

$(-|T_1| \\cos \\var{angl}^\\circ + |T_2| \\cos \\var{angr}^\\circ) \\underline{i} +(|T_1| \\sin \\var{angl}^\\circ + |T_2| \\sin \\var{angr}^\\circ) \\underline{j} = \\var{wtg}\\underline{j}$.

\n

Now equate the components to get

\n

$-|T_1| \\cos \\var{angl}^\\circ + |T_2| \\cos \\var{angr}^\\circ = 0$

\n

$|T_1| \\sin \\var{angl}^\\circ + |T_2| \\sin \\var{angr}^\\circ = \\var{wtg}$.

\n

Solving the first equation for $|T_1$ gives

\n

$|T_2| = \\frac{|T_1| \\cos \\var{angl}^\\circ}{\\cos \\var{angr}^\\circ}$

\n

Now substitute this into the second equation to get

\n

$|T_1| \\sin \\var{angl}^\\circ + \\frac{|T_1| \\cos \\var{angl}^\\circ}{\\cos \\var{angr}^\\circ} \\sin \\var{angr}^\\circ = \\var{wtg}$.

\n

Next solving for $T_1$ gives

\n

$|T_1| = \\frac{\\var{wtg}}{\\sin \\var{angl}^\\circ + \\tan \\var{angr}^\\circ \\cos \\var{angl}^\\circ} \\approx \\var{tl}$N

\n

and so

\n

$|T_2| = \\frac{|T_1| \\cos \\var{angl}^\\circ}{\\cos \\var{angr}^\\circ} \\approx \\var{tr}$N.

\n

Hence the final tensions are

\n

$T_1 \\approx -\\var{tl}\\cos \\var{angl}^\\circ \\underline{i} + \\var{tl}\\sin \\var{angl}^\\circ \\underline{j} \\approx -\\var{tlx}\\underline{i} + \\var{tly}\\underline{j}$ Newtons.

\n

and

\n

$T_2 \\approx \\var{tr}\\cos \\var{angr}^\\circ \\underline{i} + \\var{tr}\\sin \\var{angr}^\\circ \\underline{j} \\approx \\var{trx}\\underline{i} + \\var{try}\\underline{j}$ Newtons.

", "rulesets": {}, "variables": {"wt": {"name": "wt", "group": "Ungrouped variables", "definition": "random(10..100#10)", "description": "

Mass of weight

", "templateType": "anything"}, "wtg": {"name": "wtg", "group": "Ungrouped variables", "definition": "wt*9.8", "description": "", "templateType": "anything"}, "height": {"name": "height", "group": "Ungrouped variables", "definition": "10", "description": "", "templateType": "anything"}, "tl": {"name": "tl", "group": "Ungrouped variables", "definition": "precround(wtg/(sin(rangl)+tan(rangr)*cos(rangl)),2)", "description": "", "templateType": "anything"}, "topl": {"name": "topl", "group": "Ungrouped variables", "definition": "-height/tan(radians(angl))", "description": "", "templateType": "anything"}, "tlx": {"name": "tlx", "group": "Ungrouped variables", "definition": "precround(tl*cos(rangl),2)", "description": "", "templateType": "anything"}, "angr": {"name": "angr", "group": "Ungrouped variables", "definition": "random(30..60)", "description": "", "templateType": "anything"}, "try": {"name": "try", "group": "Ungrouped variables", "definition": "precround(tr*sin(rangr),2)", "description": "", "templateType": "anything"}, "rangr": {"name": "rangr", "group": "Ungrouped variables", "definition": "radians(angr)", "description": "", "templateType": "anything"}, "topr": {"name": "topr", "group": "Ungrouped variables", "definition": "height/tan(radians(angr))", "description": "", "templateType": "anything"}, "rangl": {"name": "rangl", "group": "Ungrouped variables", "definition": "radians(angl)", "description": "", "templateType": "anything"}, "tr": {"name": "tr", "group": "Ungrouped variables", "definition": "precround(tl*cos(rangl)/cos(rangr),2)", "description": "", "templateType": "anything"}, "tly": {"name": "tly", "group": "Ungrouped variables", "definition": "precround(tl*sin(rangl),2)", "description": "", "templateType": "anything"}, "angl": {"name": "angl", "group": "Ungrouped variables", "definition": "random(30..80)", "description": "", "templateType": "anything"}, "trx": {"name": "trx", "group": "Ungrouped variables", "definition": "precround(tr*cos(rangr),2)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["wt", "rangl", "wtg", "angl", "angr", "height", "topl", "topr", "rangr", "tl", "tr", "tlx", "tly", "trx", "try"], "variable_groups": [], "functions": {"hangsol": {"parameters": [["topr", "number"], ["topl", "number"], ["height", "number"], ["weight", "number"], ["angl", "number"], ["angr", "number"]], "type": "html", "language": "javascript", "definition": "// First, make the JSXGraph board.\n// The function provided by the JSXGraph extension wraps the board up in\n// a div tag so that it's easier to embed in the page.\nvar div = Numbas.extensions.jsxgraph.makeBoard('800px','240px',\n{boundingBox: [-40,12,40,-12],\naxis: false,\nshowNavigation: true,\ngrid: false\n});\n// div.board is the object created by JSXGraph, which you use to\n// manipulate elements\nvar board = div.board;\nvar tlp = board.create('point',[topl,height],{size:'none',name:''});\nvar trp = board.create('point',[topr,height],{size:'none',name:''});\nvar zl = board.create('point',[-20,0],{size:'none',name:''});\nvar zr = board.create('point',[20,0],{size:'none',name:''});\nvar l1 = board.create('line',[[-20,height],[20,height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true});\nvar l2 = board.create('line',[[0,0],[topr,height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true}); \nvar l3 = board.create('line',[[0,0],[topl,height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true});\nvar l4 = board.create('line',[zl,zr],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true, dash:2});\nvar a1 = board.create('arrow',[[0,0],[0.5*topr,0.5*height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'red', fixed: true});\nvar a2 = board.create('arrow',[[0,0],[0.5*topl,0.5*height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'red', fixed: true});\nvar origin = board.create('point',[0,0],{size:'none',name:''});\nvar down = board.create('line',[[0,0],[0,-3]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true});\nvar quad = board.create('polygon',[[-2,-3],[2,-3],[4,-5],[-4,-5]],\n {vertices:{visible:false}});\nvar t1 = board.create('text',[-1,-4,\"\"+weight+\"kg\"]);\nvar t2 = board.create('text',[0.25*topr+1,0.25*height,\"T_2\"]);\nvar t3 = board.create('text',[0.25*topl-2.0,0.25*height,\"T_1\"]);\nvar arcl = board.create('angle',[origin,tlp,trp],{radius:0.3*height,name:\"\"+angl+\"^o\",size:'none'});\nvar arcr = board.create('angle',[tlp,trp,origin],{radius:0.3*height,name:\"\"+angr+\"^o\",size:'none'});\nvar arclb = board.create('angle',[tlp,origin,zl],{radius:0.3*height,name:\"\"+angl+\"^o\",size:'none'});\nvar arcrb = board.create('angle',[zr,origin,trp],{radius:0.3*height,name:\"\"+angr+\"^o\",size:'none'});\n// Then do whatever you want with the board....\n// and return the container div\nreturn div;"}, "tensiondia": {"parameters": [["topr", "number"], ["topl", "number"], ["height", "number"], ["weight", "number"], ["angl", "number"], ["angr", "number"]], "type": "html", "language": "javascript", "definition": "// First, make the JSXGraph board.\n// The function provided by the JSXGraph extension wraps the board up in\n// a div tag so that it's easier to embed in the page.\nvar div = Numbas.extensions.jsxgraph.makeBoard('800px','240px',\n{boundingBox: [-40,12,40,-12],\naxis: false,\nshowNavigation: true,\ngrid: false\n});\n// div.board is the object created by JSXGraph, which you use to\n// manipulate elements\nvar board = div.board;\nvar l1 = board.create('line',[[-20,height],[20,height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true});\nvar l2 = board.create('line',[[0,0],[topr,height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true}); \nvar l3 = board.create('line',[[0,0],[topl,height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true});\nvar a1 = board.create('arrow',[[0,0],[0.5*topr,0.5*height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'red', fixed: true});\nvar a2 = board.create('arrow',[[0,0],[0.5*topl,0.5*height]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'red', fixed: true});\nvar tlp = board.create('point',[topl,height],{size:'none',name:''});\nvar trp = board.create('point',[topr,height],{size:'none',name:''});\nvar origin = board.create('point',[0,0],{size:'none',name:''});\nvar down = board.create('line',[[0,0],[0,-3]],\n {straightFirst:false, straightLast:false, \n strokeColor: 'black', fixed: true});\nvar quad = board.create('polygon',[[-2,-3],[2,-3],[4,-5],[-4,-5]],\n {vertices:{visible:false}});\nvar t1 = board.create('text',[-1,-4,\"\"+weight+\"kg\"]);\nvar t2 = board.create('text',[0.25*topr+1,0.25*height,\"T_2\"]);\nvar t3 = board.create('text',[0.25*topl-2.0,0.25*height,\"T_1\"]);\nvar arcl = board.create('angle',[origin,tlp,trp],{radius:0.3*height,name:\"\"+angl+\"^o\",size:'none'});\nvar arcr = board.create('angle',[tlp,trp,origin],{radius:0.3*height,name:\"\"+angr+\"^o\",size:'none'});\n// Then do whatever you want with the board....\n// and return the container div\nreturn div;"}}, "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": "

Find the tensions (forces) in both wires:

\n

$T_1 = $[[0]] $\\underline{i} +$[[1]]$\\underline{j}$.

\n

$T_2 = $[[2]] $\\underline{i} +$[[3]]$\\underline{j}$.

", "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "-tlx*1.01", "maxValue": "-tlx*0.99", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "2", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "tly*0.99", "maxValue": "tly*1.01", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "2", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "trx*0.99", "maxValue": "trx*1.01", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "2", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "minValue": "try*0.99", "maxValue": "try*1.01", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "2", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always"}, {"name": "towing", "extensions": ["jsxgraph"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}], "functions": {"towfig": {"parameters": [["bigforce", "number"], ["smforce", "number"], ["smang", "number"], ["theta", "number"]], "type": "html", "definition": "// First, make the JSXGraph board.\n// The function provided by the JSXGraph extension wraps the board up in\n// a div tag so that it's easier to embed in the page.\nvar div = Numbas.extensions.jsxgraph.makeBoard('800px','400px',\n{boundingBox: [-40,20,40,-20],\naxis: false,\nshowNavigation: true,\ngrid: false\n});\n// div.board is the object created by JSXGraph, which you use to\n// manipulate elements\nvar board = div.board;\nvar scale = 20.0/bigforce;\nvar rsmang = -smang*Math.PI/180.0;\nvar rtheta = theta*Math.PI/180.0;\nvar origin = board.create('point',[0,0],{size:'none',name:''});\nvar Apt = board.create('point',[-20,0],{size:'none',name:'A'});\nvar Bpt = board.create('point',[20,0],{size:'none',name:'B'});\nvar line = board.create('line',[Apt,Bpt],{straightFirst:false, straightLast:false,dash:2,strokeColor:'blue'});\nvar boat = board.create('polygon',[origin,[-2,2],[-10,2],[-10,-2],[-2,-2]],{name:'',fillColor:'blue',vertices:{visible:false},fillOpacity:1});\nvar bigtug = board.create('point',[scale*bigforce*Math.cos(rtheta),scale*bigforce*Math.sin(rtheta)],{size:'none',name:'big tug'});\nvar smtug = board.create('point',[scale*smforce*Math.cos(rsmang),scale*smforce*Math.sin(rsmang)],{size:'none',name:'small tug'});\nvar bigvec = board.create('arrow',[origin,bigtug],{strokeColor:'black'});\nvar smvec = board.create('arrow',[origin,smtug],{strokeColor:'black'});\nvar bigang = board.create('angle',[Bpt,origin,bigtug],{radius:5,name:'\\\\[\\\\theta\\\\]',fillColor:'green',label:{offset:[0,10]}});\nvar smallang = board.create('angle',[smtug,origin,Bpt],{radius:4,name:''+smang+'^o'});\n\n// Then do whatever you want with the board....\n// and return the container div\nreturn div;", "language": "javascript"}, "towsol": {"parameters": [["bigforce", "number"], ["smforce", "number"], ["smang", "number"], ["theta", "number"]], "type": "html", "definition": "// First, make the JSXGraph board.\n// The function provided by the JSXGraph extension wraps the board up in\n// a div tag so that it's easier to embed in the page.\nvar div = Numbas.extensions.jsxgraph.makeBoard('800px','400px',\n{boundingBox: [-40,20,40,-20],\naxis: false,\nshowNavigation: true,\ngrid: false\n});\n// div.board is the object created by JSXGraph, which you use to\n// manipulate elements\nvar board = div.board;\nvar scale = 20.0/bigforce;\nvar rsmang = -smang*Math.PI/180.0;\nvar rtheta = theta*Math.PI/180.0;\nvar origin = board.create('point',[0,0],{size:'none',name:''});\nvar xpt = board.create('point',[10,0],{size:'none',name:'x'});\nvar Apt = board.create('point',[0,10],{size:'none',name:'y'});\nvar Apt = board.create('point',[-20,0],{size:'none',name:'A'});\nvar Bpt = board.create('point',[20,0],{size:'none',name:'B'});\nvar line = board.create('line',[Apt,Bpt],{straightFirst:false, straightLast:false,dash:2,strokeColor:'blue'});\nvar xaxis = board.create('arrow',[origin,[10,0]],{straightFirst:false, straightLast:false,strokeColor:'red',strokeWidth:1});\nvar yaxis = board.create('arrow',[origin,[0,10]],{straightFirst:false, straightLast:false,strokeColor:'red',strokeWidth:1});\nvar boat = board.create('polygon',[origin,[-2,2],[-10,2],[-10,-2],[-2,-2]],{name:'',fillColor:'blue',vertices:{visible:false},fillOpacity:1});\nvar bigtug = board.create('point',[scale*bigforce*Math.cos(rtheta),scale*bigforce*Math.sin(rtheta)],{size:'none',name:'big tug'});\nvar smtug = board.create('point',[scale*smforce*Math.cos(rsmang),scale*smforce*Math.sin(rsmang)],{size:'none',name:'small tug'});\nvar bigvec = board.create('arrow',[origin,bigtug],{strokeColor:'black'});\nvar bigcomp = board.create('arrow',[[scale*bigforce*Math.cos(rtheta),0],bigtug],{strokeColor:'black',strokeWidth:1,dash:2});\nvar smvec = board.create('arrow',[origin,smtug],{strokeColor:'black'}); //,name:''+smforce,label:{position:'llft',addrotation:45},withLabel:true});\nvar smcomp = board.create('arrow',[[scale*smforce*Math.cos(rsmang),0],smtug],{strokeColor:'black',strokeWidth:1,dash:2});\nvar bigang = board.create('angle',[Bpt,origin,bigtug],{radius:5,name:''+theta+'^o',fillColor:'green',label:{offset:[0,0]}});\nvar smallang = board.create('angle',[smtug,origin,Bpt],{radius:4,name:''+smang+'^o'});\n\n// Then do whatever you want with the board....\n// and return the container div\nreturn div;", "language": "javascript"}}, "metadata": {"licence": "None specified", "description": ""}, "tags": [], "ungrouped_variables": ["bigforce", "smforce", "smang", "sinth", "theta"], "variable_groups": [], "preamble": {"js": "", "css": ""}, "statement": "

Two tugboats are towing a large ship into port, as shown in the figure. The larger tug exerts a force of {bigforce}N on its cable, and the smaller tug exerts a force of {smforce}N in its cable.

\n

{towfig(bigforce,smforce,smang,theta)}

", "advice": "

{towsol(bigforce,smforce,smang,theta)}

\n

As in the diagram, construct a coordinate system with the origin at the bow of the boat.

\n

The vertical components of the forces must add up to zero for the large ship to travel in a straight line from $A$ to $B$. The vertical component of the smaller tug is $\\var{smforce} \\sin (-\\var{smang}^\\circ)$ (recall that the angle is measured anticlockwise from the positive $x$-axis). The vertical component of the larger tug is $\\var{bigforce} \\sin \\theta$. Hence

\n

$\\var{bigforce}\\sin\\theta = -\\var{smforce}\\sin(-\\var{smang}^\\circ) \\Rightarrow \\sin\\theta = \\frac{-\\var{smforce}\\sin(-\\var{smang}^\\circ)}{\\var{bigforce}} = \\var{sinth}$

\n

Therefore $\\theta \\approx \\var{theta}^\\circ$ and so the large tug must make an angle of $\\var{theta}^\\circ$ with the line $AB$.

", "variablesTest": {"maxRuns": 100, "condition": ""}, "variables": {"smang": {"templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "smang", "definition": "random(20..50#5)"}, "sinth": {"templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "sinth", "definition": "precround(smforce*sin(radians(smang))/bigforce,4)"}, "bigforce": {"templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "bigforce", "definition": "random(3000..5000#100)"}, "theta": {"templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "theta", "definition": "precround(degrees(arcsin(sinth)),1)"}, "smforce": {"templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "smforce", "definition": "random(2000..bigforce#100)"}}, "parts": [{"prompt": "

If the ship is to travel in a straight line from $A$ to $B$, find the angle $\\theta$ (in degrees) that the large tug must make with the line $AB$.

", "type": "numberentry", "showFeedbackIcon": true, "maxValue": "1.01*{theta}", "precision": "1", "minValue": "0.99*{theta}", "strictPrecision": true, "mustBeReduced": false, "correctAnswerStyle": "plain", "marks": 1, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "precisionType": "dp", "notationStyles": ["plain", "en", "si-en"], "mustBeReducedPC": 0, "precisionMessage": "You have not given your answer to the correct precision.", "showPrecisionHint": true, "scripts": {}, "showCorrectAnswer": true, "allowFractions": false, "precisionPartialCredit": 0, "correctAnswerFraction": false}], "rulesets": {}, "type": "question"}, {"name": "plane and wind 3", "extensions": ["jsxgraph"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}], "tags": [], "parts": [{"allowFractions": false, "correctAnswerStyle": "plain", "variableReplacementStrategy": "originalfirst", "correctAnswerFraction": false, "precision": 0, "variableReplacements": [], "marks": 1, "showFeedbackIcon": true, "strictPrecision": true, "maxValue": "gspd", "type": "numberentry", "precisionPartialCredit": 0, "minValue": "gspd", "mustBeReduced": false, "showCorrectAnswer": true, "scripts": {}, "mustBeReducedPC": 0, "precisionMessage": "You have not given your answer to the correct precision.", "prompt": "

Find the approximate ground speed of the aeroplane (to the nearest km/h).

", "precisionType": "dp", "notationStyles": ["plain", "en", "si-en"], "showPrecisionHint": true}, {"allowFractions": false, "correctAnswerStyle": "plain", "variableReplacementStrategy": "originalfirst", "correctAnswerFraction": false, "precision": 0, "variableReplacements": [], "marks": 1, "showFeedbackIcon": true, "strictPrecision": true, "maxValue": "phi", "type": "numberentry", "precisionPartialCredit": 0, "minValue": "phi", "mustBeReduced": false, "showCorrectAnswer": true, "scripts": {}, "mustBeReducedPC": 0, "precisionMessage": "You have not given your answer to the correct precision.", "prompt": "

Find the true course of the aeroplane (to the nearest degree).

", "precisionType": "dp", "notationStyles": ["plain", "en", "si-en"], "showPrecisionHint": true}], "variablesTest": {"maxRuns": 100, "condition": ""}, "ungrouped_variables": ["airsp", "airdir", "windsp", "airang", "vx", "vy", "vwx", "gspd", "tanth", "th1", "theta", "phi", "th2", "winddir", "windang", "wx", "wy", "vwy"], "functions": {"planesu": {"language": "javascript", "parameters": [["airsp", "number"], ["airdir", "number"], ["windsp", "number"], ["windang", "number"]], "definition": "// First, make the JSXGraph board.\n// The function provided by the JSXGraph extension wraps the board up in\n// a div tag so that it's easier to embed in the page.\nvar div = Numbas.extensions.jsxgraph.makeBoard('800px','400px',\n{boundingBox: [-40,20,40,-20],\naxis: false,\nshowNavigation: true,\ngrid: false\n});\n// div.board is the object created by JSXGraph, which you use to\n// manipulate elements\nvar board = div.board;\nvar scale = 20.0/airsp;\nvar rairdir = (90.0-airdir)*Math.PI/180.0;\nvar rwinddir = (90.0-windang)*Math.PI/180.0;\nvar origin = board.create('point',[0,0],{size:'none',name:''});\nvar north = board.create('point',[0,12],{size:'none',name:'N'});\nvar wx = windsp*scale*Math.cos(rwinddir);\nvar wy = windsp*scale*Math.sin(rwinddir);\nvar px = airsp*scale*Math.cos(rairdir);\nvar py = airsp*scale*Math.sin(rairdir);\nvar wind = board.create('point',[wx,wy],{size:'none',name:'\\\\[\\\\underline{w}\\\\]'});\nvar plane = board.create('point',[px,py],{size:'none',name:'\\\\[\\\\underline{v}\\\\]'});\nvar respos = board.create('point',[px+wx,py+wy],{size:'none',name:'\\\\[\\\\underline{v}+\\\\underline{w}\\\\]'});\nvar axis = board.create('arrow',[origin,north],{strokecolor:'black'});\nvar windvec = board.create('arrow',[origin,wind],{strokecolor:'green'});\nvar planevec = board.create('arrow',[origin,plane],{strokecolor:'blue'});\nvar angle = board.create('angle',[plane,origin,north],{radius:5,name:''+airdir+'^o'});\nvar res = board.create('arrow',[origin,respos],{strokecolor:'red'});\nvar pl1 = board.create('arrow',[wind,respos],{strokecolor:'blue',dash:2});\nvar wi1 = board.create('arrow',[plane,respos],{strokecolor:'green',dash:2});\n// Then do whatever you want with the board....\n// and return the container div\nreturn div;", "type": "html"}, "planesol": {"language": "javascript", "parameters": [["airsp", "number"], ["airdir", "number"], ["windsp", "number"], ["airang", "number"], ["phi", "number"], ["windang", "number"]], "definition": "// First, make the JSXGraph board.\n// The function provided by the JSXGraph extension wraps the board up in\n// a div tag so that it's easier to embed in the page.\nvar div = Numbas.extensions.jsxgraph.makeBoard('800px','400px',\n{boundingBox: [-40,20,40,-20],\naxis: false,\nshowNavigation: true,\ngrid: false\n});\n// div.board is the object created by JSXGraph, which you use to\n// manipulate elements\nvar board = div.board;\nvar scale = 20.0/airsp;\nvar rairdir = (90.0-airdir)*Math.PI/180.0;\nvar rwinddir = (90.0-windang)*Math.PI/180.0;\nvar wx = windsp*scale*Math.cos(rwinddir);\nvar wy = windsp*scale*Math.sin(rwinddir);\nvar px = airsp*scale*Math.cos(rairdir);\nvar py = airsp*scale*Math.sin(rairdir);\nvar origin = board.create('point',[0,0],{size:'none',name:''});\nvar east = board.create('point',[12,0],{size:'none',name:'\\\\[x\\\\]'});\nvar north = board.create('point',[0,12],{size:'none',name:'\\\\[y\\\\]'});\nvar wind = board.create('point',[wx,wy],{size:'none',name:''});\nvar plane = board.create('point',[px,py],{size:'none',name:'\\\\[\\\\underline{v}\\\\]'});\nvar respos = board.create('point',[px+wx,py+wy],{size:'none',name:'\\\\[\\\\underline{v}+\\\\underline{w}\\\\]',labelColor:'red'});\nvar xaxis = board.create('arrow',[origin,east],{strokecolor:'black'});\nvar yaxis = board.create('arrow',[origin,north],{strokecolor:'black'});\nvar planevec = board.create('arrow',[origin,plane],{strokecolor:'blue'});\nvar planang = board.create('angle',[east,origin,plane],{radius:5,name:''+airang+'^o'});\nvar heading = board.create('angle',[respos,origin,north],{radius:4,name:'True: '+phi+'^o',fillColor:'cyan'});\nvar resang = board.create('angle',[east,origin,respos],{radius:3,name:'\\\\[\\\\theta\\\\]',fillColor:'green'});\nvar res = board.create('arrow',[origin,respos],{strokecolor:'red'});\n// Then do whatever you want with the board....\n// and return the container div\nreturn div;", "type": "html"}}, "metadata": {"description": "", "licence": "None specified"}, "rulesets": {}, "advice": "

{planesol(airsp,airdir,windsp,airang,phi,windang)}

\n

As in the figure, consider an $xy$-plane with the aeroplane at the origin, the $y$-axis on the north-south line and $\\underline{v} = v_1\\underline{i}+v_2\\underline{j}$. Since $\\| \\underline{v} \\| = \\var{airsp}$, it follows that

\n

$v_1 = \\var{airsp} \\cos \\var{airang}^\\circ=\\var{vx}$ and $v_2 = \\var{airsp}\\sin \\var{airang}^\\circ=\\var{vy}$.

\n

Hence

\n

$\\underline{v} = \\simplify{{vx} underline:i+{vy} underline:j}$ and $\\underline{w} = \\simplify{{wx}underline:i+{wy} underline:j}$.

\n

The resultant vector is then

\n

$\\underline{v}+\\underline{w} = \\simplify[basic]{({vx}+{wx})underline:i+({vy}+{wy}) underline:j = {vwx} underline:i+{vwy}underline:j}$.

\n

and the ground speed is

\n

$\\|\\underline{v}+\\underline{w}\\| = \\sqrt{(\\var{vwx})^2+(\\var{vwy})^2} \\approx \\var{gspd}$ km/h.

\n

If $\\theta$ is the angle  between $\\underline{v}+\\underline{w}$ and the positive $x$-axis then

\n

$\\tan \\theta = \\frac{\\var{vwy}}{\\var{vwx}} \\approx \\var{tanth}$ and so $\\theta \\approx \\var{theta}^\\circ$.

\n

Hence the true course of the airplane is approximately $\\var{phi}^\\circ$.

", "preamble": {"css": "", "js": ""}, "variable_groups": [], "statement": "

In air navigation, directions are specified by measuring from the north in a clockwise direction. Suppose an aeroplane with an airspeed of {airsp} km/h is flying in a direction $\\var{airdir}^\\circ$, and a wind is from the {winddir} blowing  at {windsp} km/h. As in the diagram, these velocities may be represented by vectors $\\underline{v}$ and $\\underline{w}$ of magnitudes {airsp} and {windsp}, respectively. The direction of the resultant $\\underline{v}+\\underline{w}$ is the true course of the airplane relative to the ground and the magnitude $\\|\\underline{v}+\\underline{w}\\|$ is the ground speed of the airplane.

\n

{planesu(airsp,airdir,windsp,windang)}

", "variables": {"th2": {"description": "", "templateType": "anything", "name": "th2", "group": "Ungrouped variables", "definition": "arg(vwx+vwy*i)"}, "gspd": {"description": "", "templateType": "anything", "name": "gspd", "group": "Ungrouped variables", "definition": "precround(sqrt(vwx^2+vwy^2),0)"}, "wx": {"description": "", "templateType": "anything", "name": "wx", "group": "Ungrouped variables", "definition": "precround(windsp*cos(radians(90-windang)),2)"}, "wy": {"description": "", "templateType": "anything", "name": "wy", "group": "Ungrouped variables", "definition": "precround(windsp*sin(radians(90-windang)),2)"}, "winddir": {"description": "", "templateType": "anything", "name": "winddir", "group": "Ungrouped variables", "definition": "random('North','South','East','West')"}, "vwy": {"description": "", "templateType": "anything", "name": "vwy", "group": "Ungrouped variables", "definition": "vy+wy"}, "airdir": {"description": "", "templateType": "anything", "name": "airdir", "group": "Ungrouped variables", "definition": "random(0..360#10)"}, "vwx": {"description": "", "templateType": "anything", "name": "vwx", "group": "Ungrouped variables", "definition": "vx+wx"}, "windang": {"description": "", "templateType": "anything", "name": "windang", "group": "Ungrouped variables", "definition": "switch(winddir='North',180,winddir='South',0,winddir='East',270,90)"}, "theta": {"description": "", "templateType": "anything", "name": "theta", "group": "Ungrouped variables", "definition": "precround(if(th2<0,degrees(th2)+360,degrees(th2)),0)"}, "vx": {"description": "", "templateType": "anything", "name": "vx", "group": "Ungrouped variables", "definition": "precround(airsp*cos(radians(airang)),2)"}, "airang": {"description": "", "templateType": "anything", "name": "airang", "group": "Ungrouped variables", "definition": "if (airdir > 90,450-airdir,90-airdir)"}, "vy": {"description": "", "templateType": "anything", "name": "vy", "group": "Ungrouped variables", "definition": "precround(airsp*sin(radians(airang)),2)"}, "windsp": {"description": "", "templateType": "anything", "name": "windsp", "group": "Ungrouped variables", "definition": "random(20..80#5)"}, "tanth": {"description": "", "templateType": "anything", "name": "tanth", "group": "Ungrouped variables", "definition": "precround(vwy/vwx,2)"}, "phi": {"description": "", "templateType": "anything", "name": "phi", "group": "Ungrouped variables", "definition": "if (90-theta < 0,90-theta+360,90-theta)"}, "th1": {"description": "", "templateType": "anything", "name": "th1", "group": "Ungrouped variables", "definition": "arctan(tanth)"}, "airsp": {"description": "", "templateType": "anything", "name": "airsp", "group": "Ungrouped variables", "definition": "random(200..400#10)"}}, "type": "question"}]}, {"name": "Coordinate Vectors", "pickingStrategy": "all-ordered", "pickQuestions": 1, "questions": [{"name": "Basic skills in vector manipulation - 1", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}], "tags": [], "metadata": {"description": "

Problems to practice the basic skills in vector manipulation (vectors in i,j,k form).

", "licence": "None specified"}, "statement": "

Consider the two vectors $\\simplify[basic,zeroFactor,zeroTerm,unitFactor]{underline:u = {u1} underline:i+{u2} underline:j + {u3} underline:k}$ and $\\simplify[basic,zeroFactor,zeroTerm,unitFactor]{underline:v =  {v1} underline:i+{v2} underline:j+{v3} underline:k}$

", "advice": "", "rulesets": {}, "variables": {"u3": {"name": "u3", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "v1": {"name": "v1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "u2": {"name": "u2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "v3": {"name": "v3", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "v2": {"name": "v2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "u1": {"name": "u1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "lenv2": {"name": "lenv2", "group": "Ungrouped variables", "definition": "v1*v1+v2*v2+v3*v3", "description": "", "templateType": "anything"}, "ucrossv": {"name": "ucrossv", "group": "Ungrouped variables", "definition": "cross(vector(u1,u2,u3),vector(v1,v2,v3))", "description": "", "templateType": "anything"}, "coeff2": {"name": "coeff2", "group": "Ungrouped variables", "definition": "random(-5..5 except 0)", "description": "", "templateType": "anything"}, "coeff1": {"name": "coeff1", "group": "Ungrouped variables", "definition": "random(-5..5 except 0)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["u1", "u2", "u3", "v1", "v2", "v3", "ucrossv", "lenv2", "coeff1", "coeff2"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Calculate the vector $\\simplify[basic,zeroFactor,zeroTerm,unitFactor]{{coeff1} underline:u + {coeff2} underline:v} = $[[0]]$\\underline{i}$+[[1]]$\\underline{j}$+[[2]]$\\underline{k}$.

", "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "coeff1*u1+coeff2*v1", "maxValue": "coeff1*u1+coeff2*v1", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "coeff1*u2+coeff2*v2", "maxValue": "coeff1*u2+coeff2*v2", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "coeff1*u3+coeff2*v3", "maxValue": "coeff1*u3+coeff2*v3", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Calculate $|\\underline{u}|$.

", "minValue": "0.995*sqrt(u1*u1+u2*u2+u3*u3)", "maxValue": "1.005*sqrt(u1*u1+u2*u2+u3*u3)", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "2", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "jme", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Calculate $|\\underline{v}|$. (Enter an exact expression, that is, something like sqrt(5).)

", "answer": "sqrt({lenv2})", "answerSimplification": "All", "showPreview": true, "checkingType": "absdiff", "checkingAccuracy": 0.001, "failureRate": 1, "vsetRangePoints": 5, "vsetRange": [0, 1], "checkVariableNames": false, "valuegenerators": []}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Find the dot product $\\underline{u}\\cdot\\underline{v}$.

", "minValue": "u1*v1+u2*v2+u3*v3", "maxValue": "u1*v1+u2*v2+u3*v3", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Use the answers to parts (a), (b) and (c) to find the angle between the vectors $\\underline{u}$ and $\\underline{v}$.

", "minValue": "0.995*degrees(angle(vector(u1,u2,u3),vector(v1,v2,v3)))", "maxValue": "1.005*degrees(angle(vector(u1,u2,u3),vector(v1,v2,v3)))", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "1", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Find a unit normal vector in the direction of $\\underline{u}$. (Give your answers correct to three decimal places.)

\n

$\\underline{\\hat{u}} = $[[0]]$\\underline{i}+$[[1]]$\\underline{j}+$[[2]]$\\underline{k}$

", "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "u1/sqrt(u1*u1+u2*u2+u3*u3)", "maxValue": "u1/sqrt(u1*u1+u2*u2+u3*u3)", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "3", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": false, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "u2/sqrt(u1*u1+u2*u2+u3*u3)", "maxValue": "u2/sqrt(u1*u1+u2*u2+u3*u3)", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "3", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": false, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "u3/sqrt(u1*u1+u2*u2+u3*u3)", "maxValue": "u3/sqrt(u1*u1+u2*u2+u3*u3)", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "3", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": false, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}, {"type": "gapfill", "useCustomName": false, "customName": "", "marks": 0, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Find the cross product $\\underline{u} \\times \\underline{v}$.

\n

$\\underline{u} \\times \\underline{v}$ = [[0]] $\\underline{i}$ +[[1]] $\\underline{j}$+[[2]] $\\underline{k}$

", "gaps": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "{ucrossv}[0]", "maxValue": "{ucrossv}[0]", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "{ucrossv}[1]", "maxValue": "{ucrossv}[1]", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "minValue": "{ucrossv}[2]", "maxValue": "{ucrossv}[2]", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}], "sortAnswers": false}]}, {"name": "Basic skills in vector manipulation - 2", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}], "tags": [], "metadata": {"description": "

Problems to practice the basic skills in vector manipulation.

", "licence": "None specified"}, "statement": "

Consider the two vectors $\\underline{u} = (\\var{u1},\\var{u2},\\var{u3})$ and $\\underline{v} =  (\\var{v1},\\var{v2},\\var{v3})$.

", "advice": "", "rulesets": {}, "variables": {"u1": {"name": "u1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "lincom": {"name": "lincom", "group": "Ungrouped variables", "definition": "coeff1*vector(u1,u2,u3)+coeff2*vector(v1,v2,v3)", "description": "", "templateType": "anything"}, "u2": {"name": "u2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "u3": {"name": "u3", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "v3": {"name": "v3", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "ucrossv": {"name": "ucrossv", "group": "Ungrouped variables", "definition": "cross(vector(u1,u2,u3),vector(v1,v2,v3))", "description": "", "templateType": "anything"}, "v1": {"name": "v1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "lenu2": {"name": "lenu2", "group": "Ungrouped variables", "definition": "({u1}*{u1}+{u2}*{u2}+{u3}*{u3})", "description": "", "templateType": "anything"}, "coeff1": {"name": "coeff1", "group": "Ungrouped variables", "definition": "random(-5..5 except 0)", "description": "", "templateType": "anything"}, "v2": {"name": "v2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "coeff2": {"name": "coeff2", "group": "Ungrouped variables", "definition": "random(-5..5 except 0)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["u1", "u2", "u3", "v1", "v2", "v3", "ucrossv", "lenu2", "coeff1", "coeff2", "lincom"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "matrix", "useCustomName": false, "customName": "", "marks": "3", "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Calculate the vector $\\simplify[all]{{coeff1} underline:u + {coeff2} underline:v}$.

", "correctAnswer": "transpose({lincom})", "correctAnswerFractions": false, "numRows": 1, "numColumns": "3", "allowResize": false, "tolerance": 0, "markPerCell": true, "allowFractions": false}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Calculate $|\\underline{u}|$.

", "minValue": "sqrt(u1*u1+u2*u2+u3*u3)", "maxValue": "sqrt(u1*u1+u2*u2+u3*u3)", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "2", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "jme", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Calculate $|\\underline{v}|$. (Enter an exact expression.)

", "answer": "sqrt({v1}*{v1}+{v2}*{v2}+{v3}*{v3})", "showPreview": true, "checkingType": "absdiff", "checkingAccuracy": 0.001, "failureRate": 1, "vsetRangePoints": 5, "vsetRange": [0, 1], "checkVariableNames": false, "valuegenerators": []}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Find the dot product $\\underline{u}\\cdot\\underline{v}$.

", "minValue": "u1*v1+u2*v2+u3*v3", "maxValue": "u1*v1+u2*v2+u3*v3", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Use the answers to parts (a), (b) and (c) to find the angle between the vectors $\\underline{u}$ and $\\underline{v}$.

", "minValue": "degrees(angle(vector(u1,u2,u3),vector(v1,v2,v3)))", "maxValue": "degrees(angle(vector(u1,u2,u3),vector(v1,v2,v3)))", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "1", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": "3", "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Find a unit normal vector in the direction of $\\underline{u}$. (Give your answers to three decimal places.)

", "correctAnswer": "transpose(vector({u1},{u2},{u3})/sqrt({lenu2}))", "correctAnswerFractions": false, "numRows": "1", "numColumns": "3", "allowResize": false, "tolerance": 0, "markPerCell": true, "allowFractions": false, "precisionType": "dp", "precision": "3", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": false}, {"type": "matrix", "useCustomName": false, "customName": "", "marks": "3", "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Find the cross product $\\underline{u} \\times \\underline{v}$.

", "correctAnswer": "transpose({ucrossv})", "correctAnswerFractions": false, "numRows": 1, "numColumns": "3", "allowResize": false, "tolerance": 0, "markPerCell": true, "allowFractions": false}]}, {"name": "Orthogonal Vectors", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}, {"name": "Timothy Gould", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/1466/"}], "tags": [], "metadata": {"description": "use orthogonality of vectors to determine an unknown component.
", "licence": "None specified"}, "statement": "

Given the vectors $\\simplify[basic,unitFactor,zeroFactor,zeroTerm]{underline:u = {u1} underline:i+{u2} underline:j+{u3} underline:k}$ and $\\simplify[basic,unitFactor,zeroFactor,zeroTerm]{underline:v = {v1} underline:i+{v2} underline:j+b underline:k}$ .

", "advice": "

For the vectors $\\underline{u}$ and $\\underline{v}$ to be orthogonal, we require that $\\underline{u}\\cdot\\underline{v} = 0$. Hence

\n

$\\underline{u}\\cdot\\underline{v} = \\var{u1}\\times\\var{v1}+\\var{u2}\\times\\var{v2} +\\var{u3}\\times b = \\simplify[basic,unitFactor,zeroFactor,zeroTerm]{{numer} + {u3}b} = 0$,

\n

which is linear equation that can be solved for $b$. Therefore

\n

$\\simplify[all]{b = -{numer}/{u3}}$

", "rulesets": {}, "variables": {"v2": {"name": "v2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "v1": {"name": "v1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "numer": {"name": "numer", "group": "Ungrouped variables", "definition": "u1*v1+u2*v2", "description": "", "templateType": "anything"}, "u2": {"name": "u2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "u1": {"name": "u1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "u3": {"name": "u3", "group": "Ungrouped variables", "definition": "random(-5..5 except 0)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "numer=0", "maxRuns": 100}, "ungrouped_variables": ["u1", "u2", "u3", "v1", "v2", "numer"], "variable_groups": [], "functions": {}, "preamble": {"js": "", "css": ""}, "parts": [{"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "showCorrectAnswer": true, "showFeedbackIcon": true, "scripts": {}, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "adaptiveMarkingPenalty": 0, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "prompt": "

Find the value of $b$ such that $\\underline{u}$ is orthogonal (perpendicular) to $\\underline{v}$.

", "minValue": "-{numer}/{u3}", "maxValue": "-{numer}/{u3}", "correctAnswerFraction": true, "allowFractions": true, "mustBeReduced": false, "mustBeReducedPC": 0, "showFractionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}]}, {"name": "Area of a Triangle", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}, {"name": "Timothy Gould", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/1466/"}], "tags": [], "metadata": {"description": "", "licence": "None specified"}, "statement": "

Consider the three points $A=(\\var{a1},\\var{a2},\\var{a3})$, $B = (\\var{b1},\\var{b2},\\var{b3})$ and $C = (\\var{c1},\\var{c2},\\var{c3})$.

", "advice": "

Firstly, find the vectors defining two sides of the triangle:

\n

a) $\\underline{u} = \\underline{AB} = \\underline{OB} - \\underline{OA} = \\var{ba}$.

\n

$\\underline{v} = \\underline{AC} = \\underline{OC} - \\underline{OA} = \\var{ca}$.

\n

b) The cross product is given by $\\underline{u} \\times \\underline{v} = \\var{baxca}$.

\n

c) The area is given by $\\frac{1}{2}|\\underline{u} \\times \\underline{v}| = \\frac{1}{2}\\left |\\var{baxca} \\right | = \\var{area2}$.

\n

d) The cross product vector given in part (b), $\\underline{u}\\times\\underline{v}$ is a vector in the direction normal to the plane of the triangle. To determine a unit vector in this direction, we must first find the length of $\\underline{u}\\times\\underline{v}$:

\n

$|\\underline{u}\\times\\underline{v}| = \\var{len}$.

\n

So the required unit vector is

\n

$\\var{transpose(vector(baxca[0]/len,baxca[1]/len,baxca[2]/len))}$.

", "rulesets": {}, "variables": {"c2": {"name": "c2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "a2": {"name": "a2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "ba": {"name": "ba", "group": "Ungrouped variables", "definition": "vector(b1,b2,b3)-vector(a1,a2,a3)", "description": "

Side AB of triangle ABC

", "templateType": "anything"}, "ca": {"name": "ca", "group": "Ungrouped variables", "definition": "vector(c1,c2,c3)-vector(a1,a2,a3)", "description": "

Side AC of triangle ABC.

", "templateType": "anything"}, "b2": {"name": "b2", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "len": {"name": "len", "group": "Ungrouped variables", "definition": "length(baxca)", "description": "", "templateType": "anything"}, "b1": {"name": "b1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "c1": {"name": "c1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "area": {"name": "area", "group": "Ungrouped variables", "definition": "length(baxca)/2", "description": "", "templateType": "anything"}, "area2": {"name": "area2", "group": "Ungrouped variables", "definition": "dpformat(area,2)", "description": "", "templateType": "anything"}, "a1": {"name": "a1", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "baxca": {"name": "baxca", "group": "Ungrouped variables", "definition": "cross(ba,ca)", "description": "", "templateType": "anything"}, "a3": {"name": "a3", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "c3": {"name": "c3", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}, "b3": {"name": "b3", "group": "Ungrouped variables", "definition": "random(-5..5)", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["a1", "a2", "a3", "b1", "b2", "b3", "c1", "c2", "c3", "ba", "ca", "baxca", "area", "area2", "len"], "variable_groups": [], "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": "

Determine the vectors $\\underline{u} = \\underline{AB}$ and $\\underline{v} = \\underline{AC}$ that represent the sides of the triangle $ABC$.

\n

$\\underline{u} = $[[0]]

\n

$\\underline{v} = $[[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": null, "correctAnswer": "transpose({ba})", "correctAnswerFractions": false, "numRows": 1, "numColumns": "3", "allowResize": false, "tolerance": 0, "markPerCell": true, "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": null, "correctAnswer": "transpose({ca})", "correctAnswerFractions": false, "numRows": 1, "numColumns": "3", "allowResize": false, "tolerance": 0, "markPerCell": true, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}], "sortAnswers": false}, {"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": null, "prompt": "

For the vectors $\\underline{u}$ and $\\underline{v}$ defined in Part a, find the cross product $\\underline{u} \\times \\underline{v}$.

", "correctAnswer": "transpose({baxca})", "correctAnswerFractions": false, "numRows": 1, "numColumns": "3", "allowResize": false, "tolerance": 0, "markPerCell": true, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0}, {"type": "numberentry", "useCustomName": false, "customName": "", "marks": 1, "scripts": {}, "customMarkingAlgorithm": "", "extendBaseMarkingAlgorithm": true, "unitTests": [], "showCorrectAnswer": true, "showFeedbackIcon": true, "variableReplacements": [], "variableReplacementStrategy": "originalfirst", "nextParts": [], "suggestGoingBack": false, "adaptiveMarkingPenalty": 0, "exploreObjective": null, "prompt": "

Find the area of the triangle $ABC$.

", "minValue": "{area}", "maxValue": "{area}", "correctAnswerFraction": false, "allowFractions": false, "mustBeReduced": false, "mustBeReducedPC": 0, "precisionType": "dp", "precision": "2", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true, "showPrecisionHint": true, "notationStyles": ["plain", "en", "si-en"], "correctAnswerStyle": "plain"}, {"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": null, "prompt": "

Find a unit vector normal (at a right angle) to the plane of the triangle $ABC$. (express your answer to 3 decimal places)

", "correctAnswer": "transpose(vector(baxca[0]/len,baxca[1]/len,baxca[2]/len))", "correctAnswerFractions": false, "numRows": 1, "numColumns": "3", "allowResize": false, "tolerance": "0.005", "markPerCell": false, "allowFractions": false, "minColumns": 1, "maxColumns": 0, "minRows": 1, "maxRows": 0, "precisionType": "dp", "precision": "3", "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "strictPrecision": true}], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always"}, {"name": "Volume of a Parallelepiped", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}], "variablesTest": {"maxRuns": 100, "condition": ""}, "metadata": {"licence": "None specified", "description": "

Use vector methods to calculate the volume of a parallelepiped.

"}, "tags": [], "functions": {}, "parts": [{"marks": "3", "correctAnswerFractions": false, "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "correctAnswer": "transpose({vxw})", "prompt": "

Find the cross product $\\underline{v} \\times \\underline{w}$.

", "showFeedbackIcon": true, "showCorrectAnswer": true, "tolerance": 0, "numColumns": "3", "allowResize": false, "type": "matrix", "numRows": 1, "markPerCell": true, "allowFractions": false, "scripts": {}}, {"marks": 1, "showPrecisionHint": true, "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "strictPrecision": false, "showCorrectAnswer": true, "correctAnswerStyle": "plain", "prompt": "

Find the area of the parallelogram generated by the vectors $\\underline{v}$ and $\\underline{w}$.

", "precisionType": "dp", "showFeedbackIcon": true, "scripts": {}, "precisionPartialCredit": 0, "precisionMessage": "You have not given your answer to the correct precision.", "precision": "2", "minValue": "modvxw", "type": "numberentry", "allowFractions": false, "correctAnswerFraction": false, "maxValue": "modvxw", "notationStyles": ["plain", "en", "si-en"]}, {"marks": 1, "variableReplacementStrategy": "originalfirst", "variableReplacements": [], "integerPartialCredit": 0, "showCorrectAnswer": true, "correctAnswerStyle": "plain", "prompt": "

Find the volume of the parallelepiped that the vectors $\\underline{u}$, $\\underline{v}$ and $\\underline{w}$ generate.

", "showFeedbackIcon": true, "scripts": {}, "integerAnswer": true, "minValue": "{modvol}", "type": "numberentry", "allowFractions": false, "correctAnswerFraction": false, "maxValue": "{modvol}", "notationStyles": ["plain", "en", "si-en"]}], "rulesets": {}, "ungrouped_variables": ["a1", "a2", "a3", "b1", "b2", "b3", "c1", "c2", "c3", "u", "v", "w", "vxw", "vol", "modvol", "modvxw", "modvxw2"], "variables": {"a3": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "a3"}, "modvxw2": {"definition": "dpformat(modvxw,2)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "modvxw2"}, "w": {"definition": "transpose(vector(c1,c2,c3))\n", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "w"}, "b2": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "b2"}, "modvxw": {"definition": "length(vxw)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "modvxw"}, "c1": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "c1"}, "b1": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "b1"}, "c3": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "c3"}, "c2": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "c2"}, "vol": {"definition": "dot(u,vxw)", "templateType": "anything", "description": "

The volume is the dot product of $u$ with $v \\times w$.

", "group": "Ungrouped variables", "name": "vol"}, "u": {"definition": "transpose(vector(a1,a2,a3))", "templateType": "anything", "description": "

Side AB of triangle ABC

", "group": "Ungrouped variables", "name": "u"}, "vxw": {"definition": "(cross(v,w))", "templateType": "anything", "description": "

Cross product of v and w.

", "group": "Ungrouped variables", "name": "vxw"}, "a1": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "a1"}, "v": {"definition": "transpose(vector(b1,b2,b3))", "templateType": "anything", "description": "

Side AC of triangle ABC.

", "group": "Ungrouped variables", "name": "v"}, "modvol": {"definition": "abs(vol)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "modvol"}, "b3": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "b3"}, "a2": {"definition": "random(-5..5)", "templateType": "anything", "description": "", "group": "Ungrouped variables", "name": "a2"}}, "statement": "

Consider the three vectors $\\underline{u}=(\\var{a1},\\var{a2},\\var{a3})$, $\\underline{v} = (\\var{b1},\\var{b2},\\var{b3})$ and $\\underline{w} = (\\var{c1},\\var{c2},\\var{c3})$.

", "variable_groups": [], "advice": "

a) To find the cross product of the vectors $\\underline{v}$ and $\\underline{w}$:

\n

$\\underline{t} = \\underline{v} \\times \\underline{w} = \\var{transpose(vxw)}$.

\n

b) The area of the parallelogram is then given by

\n

$\\text{area} ~ = |\\underline{t}| = |\\underline{v} \\times \\underline{w}| = \\var{modvxw2}$.

\n

c) Hence to calculate the volume of the parallelepiped, firstly calculate the dot product

\n

$\\underline{u} \\cdot (\\underline{v}\\times \\underline{w}) = \\underline{u} \\cdot \\underline{t} = \\var{u} \\cdot \\var{transpose(vxw)} = \\var{vol}$.

\n

Finally, the volume is given by $|\\underline{u}\\cdot (\\underline{v} \\times \\underline{w})| = \\left |\\var{vol} \\right | = \\var{modvol}$.

", "preamble": {"css": "", "js": ""}, "type": "question"}]}], "duration": 0, "showstudentname": true, "navigation": {"browse": true, "allowregen": true, "reverse": true, "preventleave": true, "showresultspage": "oncompletion", "showfrontpage": true, "onleave": {"action": "none", "message": ""}}, "showQuestionGroupNames": true, "timing": {"timedwarning": {"action": "none", "message": ""}, "allowPause": true, "timeout": {"action": "none", "message": ""}}, "type": "exam", "contributors": [{"name": "Peter Johnston", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/771/"}, {"name": "Maria Aneiros", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/3388/"}], "extensions": ["jsxgraph"], "custom_part_types": [], "resources": []}