Grupy, tělesa¶
Zbytkové třídy¶
Pro $n=4,\dots,7$ uvažte množiny zbytkových tříd Integers(n) a pomocí metod .addition_table( names='digits' ) a .multiplication_table( names='digits' ) si vypište tabulky pro sčítání a násobení.
Ve kterých případech jde o grupy a ve kterých nikoli?
 
Permutační rovnice¶
Řešte permutační rovnici $p\circ x\circ q=\mathrm{id}$ pro permutace $p$ a $q$.
$p=(6,4,1,5,3,2)$, $q=(6,4,3,2,5,1)$
$p=(1,2,7,6,5,4,3,8,9)$, $q=(1,3,5,7,9,8,6,4,2)$
$p=(5,4,3,2,1,9,8,7,6)$, $q=(8,6,4,2,1,3,5,7,9)$
$p=(3,6,9,2,5,8,1,4,7)$, $q=(9,8,7,6,5,4,3,2,1)$
Nápověda:
Pro složení permutací $p\circ q$ použijte kód p.left_action_product(q). Pozor, p * q vrací permutaci, kterou v naší notaci značíme obráceně, t.j. $q\circ p$.
Podrobnosti k této volbě je možné se dočíst v dokumentaci a související debatě.
Řád permutací je třeba uvádět pomocí Permutations(6) tehdy, pokud mají správně fungovat mocniny p^3, q^-10 apod.
Identitu lze zapsat např. jako prázdný seznam, zde P([]).
P = Permutations(6)
p = P([6,4,1,5,3,2])
q = P([6,4,3,2,5,1])
# ostatní přeneste analogicky
Inverze matic¶
Pokud to je možné, invertujte následující matice v tělesech $\mathbb Z_3$, $\mathbb Z_5$ a výsledek srovnejte s inverzí v $\mathbb R$ spočítaný dříve.
Alespoň jednu spočítejte v obou konečných těsech sami ručně, pro výpočet ostatních můžete použít počítač.
Nápověda
Volbu tělesa $\mathbb Z_p$ lze provést např pomocí GF(p).
A = matrix(GF(3),[
    [ 1, 0, 1, 1],
    [ 2, 0, 1, 1],
    [ 2, 1, 0, 0],
    [ 1, 2, 1, 0]])
matrix([
    [ 0, 2, 2, 1],
    [ 1, 0, 2, 0],
    [ 2, 1, 0, 2],
    [ 2, 2, 1, 1]])
matrix([
    [ 2, 0, 1, 0],
    [ 1, 2, 0, 1],
    [ 2, 1, 1, 0],
    [ 1, 0, 1, 1]])
matrix([
    [ 1, 1, 0, 0],
    [ 1, 2, 1, 1],
    [ 1, 1, 2, 0],
    [ 0, 1, 2, 1]])
matrix([
    [ 1, 1, 2, 0],
    [ 1, 2, 1, 1],
    [ 0, 1, 2, 1],
    [ 1, 2, 0, 0]]);
Maticová rovnice¶
Najděte matici $\boldsymbol A$, která nad tělesem $\mathbb Z_5$ splňuje rovnost
$\boldsymbol A \cdot \begin{pmatrix} 4 & 4 & 0 & 1 \\ 3 & 1 & 2 & 2 \\ 2 & 3 & 1 & 3 \\ 3 & 2 & 3 & 4 \\ \end{pmatrix}¶
\begin{pmatrix} 1 & 0 & 2 & 3 \\ 3 & 1 & 2 & 2 \\ 2 & 3 & 1 & 3 \\ 1 & 2 & 3 & 4 \\ \end{pmatrix}$
matrix(GF(5),[
    [ 4, 4, 0, 1],
    [ 3, 1, 2, 2],
    [ 2, 3, 1, 3],
    [ 3, 2, 3, 4]]);
matrix(GF(5),[
    [ 1, 0, 2, 3],
    [ 3, 1, 2, 2],
    [ 2, 3, 1, 3],
    [ 1, 2, 3, 4]]);
Řešení¶
Pokud si nevíte rady, můžete zde kliknout a ukáže se vám řešení (nebo alespoň jeho podstatná část):
Zbytkové třídy
Tabulky lze generovat postupně, nebo najednou:
for n in range(4,8) :
    print (Integers(n).addition_table( names='digits' ))
    print (Integers(n).multiplication_table( names='digits' )) Permutační rovnice
Protože $x=p^{-1}\circ p\circ x\circ q\circ q^{-1}=p^{-1}\circ q^{-1}=(q\circ p)^{-1}$, lze spočítat
x = q.left_action_product(p).inverse()
x, p.left_action_product(x).left_action_product(q) ==  P([])
Varování. Zkratka ^-1 pro inverzi nefunguje v kódu q.left_action_product(p)^-1. Třeba uvést typ složení P(q.left_action_product(p))^-1.
Inverze matic
Přímočaře A.inverse() nebo A^-1 apod.
Maticová rovnice
Algebraickou úpravou rovnice $\boldsymbol {AB}=\boldsymbol C$ získáme vyjádření A = C * B.inverse(), za předpokladu, že $\boldsymbol B$ je regulární.
Pak lze ověřit A * B == C.
Nevážně¶
Co provede následující kód?
Arrangements( ["Prófa", "Štístko", "Kejchal", "Stydlín", "Dřímal", "Rejpal", "Šmudla"], 7 ).list()