Search
Termín odevzdání: 19.12.2021 23:59 CET
Hodnocení: 5b
Program načte soubor matrixes.dat, ve kterém jsou umístěny definice matic. Textový řetězec, vyjadřující maticovou operaci, je předán programu jako parametr příkazové řádky. Vaším úkolem je provést zadanou operaci a vypsat na standardní výstup výslednou matici.
matrixes.dat
Error: Chybny vstup!
Error: Matice nenalezena!
# maticovy soucet $python3 HW05.py v=a+b # maticovy soucin $python3 HW05.py v=a*b # determinant matice $python3 HW05.py det(a)
numpy
Definice matic jsou v souboru matrixes.dat. Každá matice má na prvním řádku nejprve název a svoji velikost ($n$, $m$) a následuje $n$ řádků vždy s $m$ hodnotami matice. Jednotlivé hodnoty jsou oddělené mezerami, ale za poslední hodnotou je pouze znak nového řádku.
a 3 3 10 20 30 40 50 60 70 80 90 b 3 3 11 44 47 98 17 77 40 33 18
Formát výstupu je stejný, ale obsahuje pouze jednu matici nebo skalár. Pokud je výsledkem matice, jmenuje se v.
v
Pro implementaci domácího úkolu navrhněte třídu Matrix, která bude popisovat matici. Parametry konstruktoru bude velikost matice, součástí budou přetížené magické metody pro aritmetické operace:
Matrix
__add__ __sub__ __mul__
Pro výpočet determinantu implementujte funkci, jejíž argumentem bude instance třídy Matrix.
$ \left( \begin{array}{cc} 76 & 98 & -31 \\ 30 & 30 & 32 \end{array} \right) - \left( \begin{array}{c} 89 & 25 & 38 \\ 1 & -32 & -38 \end{array} \right) = \left( \begin{array}{c} -13 & 73 & -69 \\ 29 & 62 & 70 \end{array} \right) $
a 2 3 76 98 -31 30 30 32 b 2 3 89 25 38 1 -32 -38
v=a-b
v 2 3 -13 73 -69 29 62 70
$ \left( \begin{array}{cc} -59 & 78 & -85\end{array} \right) \times \left( \begin{array}{c} 78 \\ -28 \\ -97\end{array} \right) = \left( \begin{array}{c} 1459\end{array} \right) $
a 1 3 -59 78 -85 b 3 1 78 -28 -97
v=a*b
v 1 1 1459
a 2 3 16 41 -98 b 3 1 96 -67 49
a*b
$ \left( \begin{array}{cc} 81 & -96 & -56 & -9 \\ -19 & 66 & 37 & -21 \\ 20 & 49 & -71 & -49 \\ 45 & -96 & 20 & 8\end{array} \right) \times \left( \begin{array}{c} -89 & -96 \\ 76 & 75 \\ 65 & 2\end{array} \right) $
a 4 4 81 -96 -56 -9 -19 66 37 -21 20 49 -71 -49 45 -96 20 8 b 3 2 -89 -96 76 75 65 2
a 3 3 1 2 3 4 5 6 7 8 9
det(a)
žádný