Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 1794
Image: ubuntu2004
1
load("__common__.sage")
2
3
def generator():
4
# create a 3x5 or 4x4 matrix
5
rows = randrange(3,5)
6
columns = 8-rows
7
8
#start with nice RREF
9
max_number_of_pivots = min(rows,columns-1)
10
number_of_pivots = randrange(2,max_number_of_pivots+1)
11
A = random_matrix(QQ,rows,columns,algorithm='echelonizable',rank=number_of_pivots,upper_bound=9)
12
A.subdivide([],[columns-1])
13
14
# construct variables
15
xs=choice([
16
vector([var("x_"+str(i+1)) for i in range(0,columns-1)]),
17
vector([var("x"),var("y"),var("z"),var("zw",latex_name="w")][0:columns-1]),
18
])
19
20
# construct system
21
system=[A.delete_columns([columns-1]).row(r)*xs==A.column(-1)[r] for r in range(0,rows)]
22
23
#randomly swap exercise query
24
prompt = choice(["system","matrix","vector"])
25
26
return {
27
"system": systemEquations(A,xs).equations,
28
"alignCols": A.ncols(),
29
"matrix": A,
30
"vectorequation": vectorEquation(A),
31
"prompt": prompt
32
}
33