Zápočtový úkol 2

Zápočtový úkol 2#

LU dekompozice a její využití.

Úkol

Implementujte LU dekompozici a aplikujte ji na řešení soustavy linearních rovnic. Můžete využít zpětné substituce výše. Dopřednou substituci (\(\mathbb{L} y = b\)) je třeba doimplementovat zvlášť. Správnost ověřte pomocí knihovní funkce scipy.linalg.solve() aplikovanou na náhodnou matici \(\mathbb{A}\) a náhodné vektory \(\vec{b}_1\), \(\vec{b}_2\) a \(\vec{b}_3\).

Pomocí LU dekompozice spočítejte determinant matice \(\mathbb{A}\). Využite vlastnosti determinantu součinu matic a tvaru matic \(\mathbb{L}\) a \(\mathbb{U}\) pro odvození zjednodušeného vzorce. Výsledek opět zkontrolujte pomocí knihovní funkce numpy.linalg.det(). Jaká je složitost (v rámci big-O notace) výpočtu determinantu pomocí LU dekompozice oproti přímému použití vzorečku z definice determinantu?

import numpy as np
import matplotlib.pyplot as plt
A = np.random.rand(4,4)
b1 = np.random.rand(4)
b2 = np.random.rand(4)
b3 = np.random.rand(4)

## DOPLŇTE ##