Počítání s maticemi¶
Nekomutativita součinu
Pro libovolnou nesymetrickou čtvercovu matici $\boldsymbol A$ zkonstruujte matici $\boldsymbol B$ tak, že jejich součin nekomutuje, t.j. $\boldsymbol{AB}\ne\boldsymbol{BA}$.
Najděte takovou symetrickou $\boldsymbol B$.
Nápověda:
Součin (nejen matic) je třeba zapisovat pomocí *.
Náhodnou matici řádu $n$ vrací konstruktor random_matrix(ZZ, n, n), zde pro jednoduchost ZZ značí celočíselnou.
 
Nekomutativita součinu symetrických matic
Komutuje součin matic pokud jsou obě matice symetrické? Své zjištění ověřte na několika náhodných symetrických maticích.
Nápověda:
Z náhodné matice lze odvodit symetrickou matici pomocí součinu a transpozice .T, což je zkratka pro metodu .transpose().
 
Inverze matic
Invertujte následující matice a proveďte zkoušku.
Alespoň jednu spočítejte sami ručně, pro výpočet redukovaného odstupňovaného tvaru u ostatních můžete použít počítač.
Nápověda:
Jenotkovou matici $\mathbf I_n$ řádu $n$ vrací funkce identity_matrix(n).
Metodu A.augment(B) lze použít i pro rozšíření matice $\boldsymbol A$ o matici $\boldsymbol B$ (t.j. nejenom o vektory, jak už víme z řešení soustav).
A = matrix(QQ,[
    [ 1, 0, 1, 1],
    [ 2, 0, 1, 1],
    [ 2, 1, 0, 0],
    [ 1, 2, 1, 0]])
matrix(QQ,[
    [ 0, 2, 2, 1],
    [ 1, 0, 2, 0],
    [ 2, 1, 0, 2],
    [ 2, 2, 1, 1]])
matrix(QQ,[
    [ 2, 0, 1, 0],
    [ 1, 2, 0, 1],
    [ 2, 1, 1, 0],
    [ 1, 0, 1, 1]])
matrix(QQ,[
    [ 1, 1, 0, 0],
    [ 1, 2, 1, 1],
    [ 1, 1, 2, 0],
    [ 0, 1, 2, 1]])
matrix(QQ,[
    [ 1, 1, 2, 0],
    [ 1, 2, 1, 1],
    [ 0, 1, 2, 1],
    [ 1, 2, 0, 0]]);
Maticové rovnice
Vyřešte následující maticové rovnice nejprve symbolicky a pak i numericky. Proveďte zkoušku.
a) $(\boldsymbol A-\boldsymbol D)\boldsymbol X_1=\boldsymbol A$,
b) $\boldsymbol X_2\boldsymbol B=\boldsymbol C+\boldsymbol D$,
c) $\boldsymbol A\boldsymbol X^{-1}_3=\boldsymbol E^\mathrm{T}$
d) $(\boldsymbol X^{-1}_4-\boldsymbol C)^\mathrm{T}=\boldsymbol D$
e) $(\boldsymbol A\boldsymbol X_5)^{-1}+\boldsymbol C=\boldsymbol E$
f) $\boldsymbol D^\mathrm{T}\boldsymbol X^{-1}_6=\boldsymbol B+2\mathbf I$
Nápověda:
Pro inverzi matice použijte metodu .inverse().
Připomeňme, že ověření rovnosti $L=P$ lze provést např. vyhodnocením podmínky L == P.
A = matrix(QQ,[
    [ 1, 0, 1, 1],
    [ 2, 0, 1, 1],
    [ 2, 1, 0, 0],
    [ 1, 2, 1, 0]])
B = matrix(QQ,[
    [ 0, 2, 2, 1],
    [ 1, 0, 2, 0],
    [ 2, 1, 0, 2],
    [ 2, 2, 1, 1]])
C = matrix(QQ,[
    [ 2, 0, 1, 0],
    [ 1, 2, 0, 1],
    [ 2, 1, 1, 0],
    [ 1, 0, 1, 1]])
D = matrix(QQ,[
    [ 1, 1, 0, 0],
    [ 1, 2, 1, 1],
    [ 1, 1, 2, 0],
    [ 0, 1, 2, 1]])
E = matrix(QQ,[
    [ 1, 1, 2, 0],
    [ 1, 2, 1, 1],
    [ 0, 1, 2, 1],
    [ 1, 2, 0, 0]])
Řešení¶
Pokud si nevíte rady, můžete zde kliknout a ukáže se vám řešení (nebo alespoň jeho podstatná část):
Nekomutativita součinu
Je možné začít s náhodnou matici
A = random_matrix(ZZ,4,4)
 a prozkoumat efekt součinů $\boldsymbol{AB}$ a $\boldsymbol{BA}$, kde $\boldsymbol B$ má všechny složky nulové až na jednu, např.
B = matrix([
    [ 0, 1, 0, 0],
    [ 0, 0, 0, 0],
    [ 0, 0, 0, 0],
    [ 0, 0, 0, 0]])
 Pro odvození obecného postupu stačí vzít matici $\boldsymbol A$, která se od své transpozice liší jen na dvou pozicích, např.
A = matrix([
    [ 1, 1, 1, 1],
    [ 1, 1, 1, 3],
    [ 1, 1, 1, 1],
    [ 1, 5, 1, 1]])
 nebo dokonce
A = matrix([
    [ 0, 0, 0, 0],
    [ 0, 0, 0, 3],
    [ 0, 0, 0, 0],
    [ 0, 0, 0, 0]])
 Odpozorovaný princip je však třeba popsat obecně. To už není úkol pro sage.
Nekomutativita součinu symetrických matic
Vyzkoušejte následující.
C = random_matrix(ZZ,3,3)
D = random_matrix(ZZ,3,3)
A = C * C.T     
B = D * D.T
A, B, A * B, B * A    
 I zde je možné sestavit $\boldsymbol B$ obecně v závislosti na $\boldsymbol A$, podobně jako v předchozí úloze.
Inverze matic
Vyzkoušejte postupně následující příkazy:
identity_matrix(4)
A.augment(identity_matrix(4))
A.augment(identity_matrix(4)).rref()
A.augment(identity_matrix(4)).rref()[:,4:]
B = A.augment(identity_matrix(4)).rref()[:,4:]
A, B, A * B, B * A, B == A.inverse()
 Pro provedení zkoušky, čili že nalezená $\boldsymbol B$ je hledaná $\boldsymbol A^{-1}$, stačí ve skutečnosti ověřit, že jen jeden ze součinů $\boldsymbol{AB}$ a $\boldsymbol{BA}$ dává jednotkovou matici.
Maticové rovnice
Ekvivalentními úpravami rovnice získáme vyjádření: $\boldsymbol X_1=(\boldsymbol A-\boldsymbol D)^{-1}\boldsymbol A$. To pak lze numericky vyhodnotit např. výrazem:
( A - D ).inverse() * A
 Zkoušku lze pak provést např. následovně:
X = ( A - D ).inverse() * A
( A - D ) * X == A
 Podobně pro zbývající rovnice.