// Numbas version: exam_results_page_options {"name": "Saw Tooth Fourier Series", "extensions": ["jsxgraph"], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "Saw Tooth Fourier Series", "advice": "", "statement": "

Calculate the Fourier Series of the function drawn below.

", "metadata": {"description": "

Widget Sales

", "licence": "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International"}, "variablesTest": {"maxRuns": 100, "condition": ""}, "tags": [], "preamble": {"js": "function dragpoint_board() {\n var scope = question.scope;\n\n JXG.Options.text.display = 'internal';\n \n var yo0 = scope.variables.yo0.value;\n var yo1 = scope.variables.yo1.value;\n var yo2 = scope.variables.yo2.value;\n var yo3 = scope.variables.yo3.value; \n var yo4 = scope.variables.yo4.value;\n var yo5 = scope.variables.yo5.value;\n \n var yo01 = scope.variables.yo01.value;\n var yo11 = scope.variables.yo11.value;\n var yo21 = scope.variables.yo21.value;\n var yo31 = scope.variables.yo31.value; \n var yo41 = scope.variables.yo41.value;\n var yo51 = scope.variables.yo51.value;\n \n var maxx = scope.variables.maxx.value;\n var maxy = scope.variables.maxy.value;\n \n var div = Numbas.extensions.jsxgraph.makeBoard('400px','400px',{boundingBox:[-0.4,20,7,-2], axis:false, grid:false, title:{\n text: \"Widget Production Jan - June 1982\"}});\n \n \n $(question.display.html).find('#dragpoint').append(div);\n \n var board = div.board;\n \n var xaxis = board.create('axis', [[0, 0], [7, 0]], {withLabel: true, name: \"Month\", label: {offset: [200,-30]}});\n \n xaxis.removeAllTicks();\n \n board.create('axis', [[0, 0], [0, 12]], {hideTicks:false, withLabel: false, name: \"Widgets (10,000s)\", label: {offset: [-110,300]}});\n \n //create stationary points\n \n var op0 = board.create('point',[1,yo0],{name:'',fixed:true,size:3,color:'blue',face:'diamond'});\n var op1 = board.create('point',[2,yo1],{name:'',fixed:true,size:3,color:'blue',face:'diamond'});\n var op2 = board.create('point',[3,yo2],{name:'',fixed:true,size:3,color:'blue',face:'diamond'});\n var op3 = board.create('point',[4,yo3],{name:'',fixed:true,size:3,color:'blue',face:'diamond'});\n var op4 = board.create('point',[5,yo4],{name:'',fixed:true,size:3,color:'blue',face:'diamond'});\n var op5 = board.create('point',[6,yo5],{name:'',fixed:true,size:3,color:'blue',face:'diamond'});\n \n var op01 = board.create('point',[1,yo01],{name:'',fixed:true,size:3,color:'red',face:'diamond'});\n var op11 = board.create('point',[2,yo11],{name:'',fixed:true,size:3,color:'red',face:'diamond'});\n var op21 = board.create('point',[3,yo21],{name:'',fixed:true,size:3,color:'red',face:'diamond'});\n var op31 = board.create('point',[4,yo31],{name:'',fixed:true,size:3,color:'red',face:'diamond'});\n var op41 = board.create('point',[5,yo41],{name:'',fixed:true,size:3,color:'red',face:'diamond'});\n var op51 = board.create('point',[6,yo51],{name:'',fixed:true,size:3,color:'red',face:'diamond'});\n \n var pop0 = board.create('point', [1,0],{name:'January',fixed:true,size:0,color:'black',face:'diamond', label:{offset:[-20,-8]}});\n var pop1 = board.create('point',[2,0],{name:'February',fixed:true,size:0,color:'black',face:'diamond', label:{offset:[-20,-8]}});\n var pop2 = board.create('point',[3,0],{name:'March',fixed:true,size:0,color:'black', face:'diamond', label:{offset:[-15,-8]}});\n var pop3 = board.create('point',[4,0],{name:'April',fixed:true,size:0,color:'black', face:'diamond', label:{offset:[-15,-8]}});\n var pop4 = board.create('point',[5,0],{name:'May',fixed:true,size:0,color:'black', face:'diamond', label:{offset:[-10,-8]}});\n var pop5 = board.create('point',[6,0],{name:'June',fixed:true,size:0,color:'black', face:'diamond', label:{offset:[-15,-8]}});\n \n // create the parabola\n var parabool1 = board.create('line',[[x1=1,y1=yo0], [x2=2,y2=yo1]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'blue'});\n var parabool2 = board.create('line',[[x1=2,y1=yo1], [x2=3,y2=yo2]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'blue'});\n var parabool3 = board.create('line',[[x1=3,y1=yo2], [x2=4,y2=yo3]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'blue'});\n var parabool4 = board.create('line',[[x1=4,y1=yo3], [x2=5,y2=yo4]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'blue'});\n var parabool5 = board.create('line',[[x1=5,y1=yo4], [x2=6,y2=yo5]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'blue'});\n \n var paraboolleg1 = board.create('line',[[x1=3,y1=2], [x2=4,y2=2]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'blue'});\n var txt1 = board.create('text',[4.1,2, 'standard quality'], {fontColor:'black', fontSize:12, rotate:0});\n \n var paraboolleg2 = board.create('line',[[x1=3,y1=3], [x2=4,y2=3]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'red'});\n var txt2 = board.create('text',[4.1,3, 'Total(standard + rejects)'], {fontColor:'black', fontSize:12, rotate:0});\n \n var txt3 = board.create('text',[-0.2,7, 'Widgets (10,000s)'], {fontColor:'black', fontSize:12, rotate:90});\n \n var parabool11 = board.create('line',[[x1=1,y1=yo01], [x2=2,y2=yo11]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'red'});\n var parabool21 = board.create('line',[[x1=2,y1=yo11], [x2=3,y2=yo21]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'red'});\n var parabool31 = board.create('line',[[x1=3,y1=yo21], [x2=4,y2=yo31]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'red'});\n var parabool41 = board.create('line',[[x1=4,y1=yo31], [x2=5,y2=yo41]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'red'});\n var parabool51 = board.create('line',[[x1=5,y1=yo41], [x2=6,y2=yo51]],{straightFirst:false, straightLast:false,strokeWidth:1,strokeColor:'red'});\n}\n\nquestion.signals.on('HTMLAttached',function() {\n dragpoint_board();\n});", "css": "table#values th {\n background: none;\n text-align: center;\n}"}, "variables": {"yo0": {"definition": "random(2..12)", "templateType": "anything", "name": "yo0", "description": "", "group": "Ungrouped variables"}, "yo1": {"definition": "random(4..10)", "templateType": "anything", "name": "yo1", "description": "", "group": "Ungrouped variables"}}, "rulesets": {"std": ["all", "fractionNumbers"]}, "functions": {}, "parts": [], "ungrouped_variables": ["yo1", "yo0"], "variable_groups": [], "extensions": ["jsxgraph"], "type": "question", "contributors": [{"name": "Gareth Woods", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/978/"}]}]}], "contributors": [{"name": "Gareth Woods", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/978/"}]}