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.
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
.
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:
__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)
$
matrixes.dat | Operace | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|---|
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 | žádný |
$
\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)
$
matrixes.dat | Operace | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|---|
a 1 3 -59 78 -85 b 3 1 78 -28 -97 | v=a*b | v 1 1 1459 | žádný |
matrixes.dat | Operace | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|---|
a 2 3 16 41 -98 b 3 1 96 -67 49 | a*b | žádný | Error: Chybny vstup! |
$
\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)
$
matrixes.dat | Operace | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|---|
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*b | žádný | Error: Chybny vstup! |
matrixes.dat | Operace | Očekávaný výstup | Očekávaný chybový výstup |
---|---|---|---|
a 3 3 1 2 3 4 5 6 7 8 9 | det(a) | 0 | žádný |