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
|
#
# n.m -- Polynome mit dem gleichen Wert von p(A)
#
# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
#
A0 = [
2, 1, 0;
0, 2, 0;
0, 0, 3
];
# find a 3x3 matrix in SL(3,Z)
function retval = zufallswert()
x = round(rand() * 10) - 2;
if (x >= 0)
x = x + 1;
endif
retval = x;
end
function retval = zufallsmatrix(n)
retval = zeros(n, n);
for i = (1:n)
for j = (1:n)
retval(i,j) = zufallswert();
end
end
end
function retval = regulaer(n)
d = 0;
do
retval = zufallsmatrix(2);
d = det(retval);
until (d == 1);
end
function retval = eingebettet(n,k)
retval = eye(n);
retval(k:k+1,k:k+1) = regulaer(2);
end
format long
B = eye(3);
B = B * eingebettet(3,2)
B = B * eingebettet(3,1)
B
inverse(B)
A = round(B * A0 * inverse(B))
|