diff options
Diffstat (limited to '')
-rw-r--r-- | buch/chapters/30-endlichekoerper/rechnungen/invbeispiel.maxima | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/buch/chapters/30-endlichekoerper/rechnungen/invbeispiel.maxima b/buch/chapters/30-endlichekoerper/rechnungen/invbeispiel.maxima new file mode 100644 index 0000000..f227f3a --- /dev/null +++ b/buch/chapters/30-endlichekoerper/rechnungen/invbeispiel.maxima @@ -0,0 +1,81 @@ +/* + * invbeispiel.maxima + * + * (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + */ + +m: X^3 + 2*X^2 + 2*X + 3; + +modulus:7; +factor(m); +modulus:false; + +M: matrix( + [ 0, 0, -3 ], + [ 1, 0, -2 ], + [ 0, 1, -2 ] +); +M: mod(M, 7); +M0: identfor(M); +M1: M; +M2: M.M1; + +a0: 1; +a1: 2; +a2: 2; + +a: a0 + a1*X + a2*X^2; + +A: a0*M0 + a1*M1 + a2*M2; +A: mod(A, 7); + +T: matrix( + [ A[1,1], A[1,2], A[1,3], 1, 0, 0 ], + [ A[2,1], A[2,2], A[2,3], 0, 1, 0 ], + [ A[3,1], A[3,2], A[3,3], 0, 0, 1 ] +); + +t: inv_mod(T[1,1], 7); +T[1]: mod(t * T[1], 7); +T[2]: mod(T[2] - T[2,1]*T[1], 7); +T[3]: mod(T[3] - T[3,1]*T[1], 7); +T; + +t: inv_mod(T[2,2], 7); +T[2]: mod(t * T[2], 7); +T[3]: mod(T[3] - T[3,2] * T[2], 7); +T; + +t: inv_mod(T[3,3], 7); +T[3]: mod(t * T[3], 7); +T; + +T[2]: mod(T[2] - T[2,3] * T[3], 7); +T[1]: mod(T[1] - T[1,3] * T[3], 7); +T; + +T[1]: mod(T[1] - T[1,2] * T[2], 7); +T; + +C: matrix( + [ T[1,4], T[1,5], T[1,6] ], + [ T[2,4], T[2,5], T[2,6] ], + [ T[3,4], T[3,5], T[3,6] ] +); + +mod(A.C, 7); + +b0: C[1,1]; +b1: C[2,1]; +b2: C[3,1]; + +Cc: mod(b0*M0 + b1*M1 + b2*M2, 7); +C - Cc; + +b: b0 + b1*X + b2*X^2; +p: expand(a*b); + +pp: 3*X^4 + X^3 + 3*X^2 + 6*X; + +divide(pp, m, X); + |