Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 1794
Image: ubuntu2004
1
load("__common__.sage")
2
3
def generator():
4
# create a 3x5,4x4,5x3 matrix
5
#Pick how many vectors in R4
6
n = choice([3,4,5])
7
vec=[]
8
for i in range(0,n):
9
vec.append(vector([ randrange(-5,5), randrange(-3,3), randrange(-5,5), randrange(-3,3)]))
10
11
#Pick if yes a linear combination or no
12
lincombo = choice([false,true])
13
14
combovector=[]
15
16
#Generate additional vecor
17
if lincombo==1:
18
combovector=randrange(-3,3)*vec[0]+randrange(-3,3)*vec[1]+randrange(-3,3)*vec[2]
19
else:
20
combovector = vector([ randrange(-10,10), randrange(-10,10), randrange(-10,10), randrange(-10,10)])
21
#Sometimes make 3rd column a dependency
22
if choice([false,true]):
23
vec[2]=randrange(-3,3)*vec[0]+randrange(-3,3)*vec[1]
24
#Make sure at columns 4 and 5 are dependencies
25
if n>3:
26
vec[3]=randrange(-3,3)*vec[0]+randrange(-3,3)*vec[1]+randrange(-3,3)*vec[2]
27
if n>4:
28
vec[4]=randrange(-3,3)*vec[0]+randrange(-3,3)*vec[1]+randrange(-3,3)*vec[2]
29
30
A=column_matrix([vec[0],vec[1],vec[2]])
31
while 3 not in A.augment(combovector).pivots():
32
combovector = vector([ randrange(-10,10), randrange(-10,10), randrange(-10,10), randrange(-10,10)])
33
34
#Generate equivalent vector equation
35
xs=[var("x_"+str(i+1)) for i in range(0,n)]
36
37
A=matrix(vec).transpose().augment(combovector,subdivide=true)
38
39
return {
40
"lc": lincombo,
41
"veclist": vectorList(vec),
42
"combovector": column_matrix(combovector),
43
"statement": choice([true,false]),
44
"veceq": vectorEquation(A),
45
"matrix": A,
46
"rref": A.rref()
47
}
48