Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 1794
Image: ubuntu2004
1
load("__common__.sage")
2
3
def generator():
4
#Pick How many vectors in R4
5
n=choice([4,5,6])
6
vec=[]
7
for i in range(0,n):
8
vec.append(vector([ randrange(-5,5),randrange(-5,5), randrange(-5,5),randrange(-5,5)]))
9
10
#Pick if yes a spanning set or no
11
span = choice([false,true])
12
13
#If they should not span, generate columns 3 or 4 through n.
14
if span==false:
15
if choice([false,true]):
16
vec[2] = randrange(-3,3)*vec[0]+randrange(-4,4)*vec[1]
17
for i in range (3,n):
18
vec[3] = randrange(-3,3)*vec[0]+randrange(-3,3)*vec[1]+randrange(-3,3)*vec[2]
19
20
#Constructor uses vecs as rows
21
A=matrix(vec).transpose()
22
if rank(A)<4:
23
span = false
24
else:
25
span = true
26
27
xs=[var("x_"+str(i+1)) for i in range(0,n)]
28
vectorComb = linearCombination(xs,[column_matrix(v) for v in vec])
29
30
return {
31
"spans": span,
32
"vecset": vectorSet(vec),
33
"vecComb": vectorComb,
34
"prompt": choice([true,false]),
35
"matrix": A,
36
"rref": A.rref(),
37
}
38