This repository has been archived by the owner on May 11, 2021. It is now read-only.
/
defined_and_undefined_matrix_operations.html
120 lines (108 loc) · 5.5 KB
/
defined_and_undefined_matrix_operations.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html>
<html data-require="math matrix">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Defined and undefined matrix operations</title>
<script src="../khan-exercise.js"></script>
</head>
<body>
<div class="exercise">
<div class="vars" data-ensure="!(DIM_1 === 1 && DIM_2 === 1) && !(DIM_3 === 1 && DIM_4 === 1) && (PRETTY_MAT_1_ID !== PRETTY_MAT_2_ID)">
<var id="ANSWER">DEFINED ? "Yes" : "No"</var>
<var id="MAT_1">makeMatrix(randRange(-2, 4, DIM_1, DIM_2))</var>
<var id="MAT_2">makeMatrix(randRange(-2, 4, DIM_3, DIM_4))</var>
<var id="PRETTY_MAT_1_ID">"\\textbf " + randFromArray("ABCDEF")</var>
<var id="PRETTY_MAT_2_ID">"\\textbf " + randFromArray("ABCDEF")</var>
<var id="PRETTY_MAT_1">
printSimpleMatrix(MAT_1)
</var>
<var id="PRETTY_MAT_2">
printSimpleMatrix(MAT_2)
</var>
</div>
<div class="problem">
<p>
<code><var>PRETTY_MAT_1_ID</var> = <var>PRETTY_MAT_1</var></code>
</p>
<p>
<code><var>PRETTY_MAT_2_ID</var> = <var>PRETTY_MAT_2</var></code>
</p>
</div>
<p class="question">
Is <code><var>PRETTY_MAT_1_ID + OPERATION + PRETTY_MAT_2_ID</var></code> defined?
</p>
<p class="solution"><var>ANSWER</var></p>
<ul class="choices" data-category="true">
<li>Yes</li>
<li>No</li>
</ul>
<div class="problems">
<div id="addition-subtraction">
<div class="vars" data-apply="prependVars">
<var id="DEFINED">randRange(0, 1)</var>
<var id="DIM_1">randRange(1, 3)</var>
<var id="DIM_2">randRange(1, 3)</var>
<var id="DIM_3">DIM_1</var>
<var id="DIM_4">
DEFINED ? DIM_2 : randRangeExclude(1, 3, [DIM_2])
</var>
<var id="OPERATION">randFromArray("+-")</var>
</div>
<div class="hints">
<div>
<p>
In order for <span data-if="OPERATION === '+'">addition</span><span data-else>subtraction</span> of two matrices to be defined, the matrices must have the same dimensions.
</p>
<p>
If <code><var>PRETTY_MAT_1_ID</var></code> is of dimension <code>(\blue m \times \red n)</code> and <code><var>PRETTY_MAT_2_ID</var></code> is of dimension <code>(\blue p \times \red q)</code>, then:
</p>
<p>
1. <code>\blue m</code> (number of rows in <code><var>PRETTY_MAT_1_ID</var></code>) must equal <code>\blue p</code> (number of rows in <code><var>PRETTY_MAT_2_ID</var></code>) and
</p>
<p>
2. <code>\red n</code> (number of columns in <code><var>PRETTY_MAT_1_ID</var></code>) must equal <code>\red q</code> (number of columns in <code><var>PRETTY_MAT_2_ID</var></code>)
</p>
<p>
for their <span data-if="OPERATION === '+'">sum</span><span data-else>difference</span> to be defined.
</p>
</div>
<div>
<p>
Since <code><var>PRETTY_MAT_1_ID</var></code> has <span data-if="DEFINED">the same</span><span data-else>different</span> dimensions <code>(<var>DIM_1 + "\\times" + DIM_2</var>)</code> <span data-if="DEFINED">as</span><span data-else>from</span> <code><var>PRETTY_MAT_2_ID</var></code> <code>(<var>DIM_3 + "\\times" + DIM_4</var>)</code>,
<p>
<code><var>PRETTY_MAT_1_ID + OPERATION + PRETTY_MAT_2_ID</var></code> is <span data-if="!DEFINED">not</span> defined.
</p>
</div>
</div>
</div>
<div id="multiplication">
<div class="vars" data-apply="prependVars">
<var id="DEFINED">randRange(0, 1)</var>
<var id="DIM_1">randRange(1, 3)</var>
<var id="DIM_2">randRange(1, 3)</var>
<var id="DIM_3">
DEFINED ? DIM_2 : randRangeExclude(1, 3, [DIM_2])
</var>
<var id="DIM_4">randRange(1, 3)</var>
<var id="OPERATION">""</var>
</div>
<div class="hints">
<div>
<p>
In order for multiplication of two matrices to be defined, the two inner dimensions must be equal.
</p>
</div>
<div>
<p>
If the two matrices have dimensions <code>(\blue m \times \red n)</code> and <code>(\red p \times \green q)</code>, then <code>\red n</code> (number of columns in the first matrix) must equal <code>\red p</code> (number of rows in the second matrix) for their product to be defined.
</p>
</div>
<div>
Since <code><var>PRETTY_MAT_1_ID</var></code> has <span data-if="DEFINED">the same</span><span data-else>a different</span> number of columns (<var>DIM_2</var>) <span data-if="DEFINED">as</span><span data-else>than</span> <code><var>PRETTY_MAT_2_ID</var></code> has rows (<var>DIM_3</var>), <code><var>PRETTY_MAT_1_ID + PRETTY_MAT_2_ID</var></code> is <span data-if="!DEFINED">not</span> defined.
</div>
</div>
</div>
</div>
</div>
</body>
</html>