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?

In [ ]:
 

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([]).

In [6]:
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).

In [ ]:
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}$

In [1]:
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()