In Python wordt een matrix weergegeven als een geneste lijst.
De 4 x 3 matrix $$M = $$
$$
\left[
\begin{array}{ccc}
1 & 2 & 3\\
4 & 5 & 6\\
7 & 8 & 9\\
10 & 11 & 12\\
\end{array} \right]
$$
wordt in Python de lijst
M = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
Een geneste lijst is een representatie van een wiskundige matrix als elke element van de hoofdlijst opnieuw een lijst is. Elk van deze sublijsten moet een gelijk aantal elementen hebben.
Een vierkante matrix is een matrix met evenveel rijen als kolommen. Dit aantal wordt de orde van de matrix genoemd.
De vierkante matrix $$M = $$
$$
\left[
\begin{array}{ccc}
1 & 2 & 3\\
4 & 5 & 6\\
7 & 8 & 9\\
\end{array} \right]
$$
wordt in Python de lijst
M = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
De elementen $$M_{11}, M_{22},... $$ vormen de hoofddiagonaal. In dit voorbeeld staan de getallen 1, 5 en 9 op de hoofddiagonaal.
orde
Schrijf een functie orde met één argument: een geneste lijst.
Als de geneste lijst de representatie is van een vierkante matrix is, retourneert de functie de orde van de matrix, in het andere geval de waarde -1. We definiëren in deze oefening dat een lege lijst een vierkante matrix van orde 0 is.
spoor
Schrijf een functie spoor met één argument: een geneste lijst die een representatie is van een vierkante matrix
De functie berekent het spoor van de matrix, dit is de som van alle elementen op de hoofddiagonaal. De functie retourneert een geheel getal.
eenheidsmatrix
Schrijf een functie eenheidsmatrix met één argument: een geheel getal n (strikt positief)
De functie retourneert een vierkante matrix van de orde n, waarbij alle elementen op de hoofddiagonaal gelijk zijn aan 1, de andere elementen 0.
kolom
Schrijf een functie kolom met twee argumenten: een geneste lijst die de representatie is van een vierkante matrix en een geheel getal i (>= 0).
De functie geeft de i-de kolom van de matrix als een lijst. Hierbij beginnen we te tellen vanaf nul. Als de matrix minder dan i+1 kolommen telt, dan retourneert de functie de string "onmogelijk".
>>> kolom([[52, 433, 155], [265, 249, 203], [292, 180, 18]], 2) [155, 203, 18] >>> kolom([[52, 433, 155], [265, 249, 203], [292, 180, 18]], 12) "onmogelijk" >>> spoor([[0, 0, 1], [3, 5, 1], [1, 1, 2]]) 7 >>> orde([[0, 0, 1], [3, 5, 1], [1, 1, 2]]) 3 >>> orde([[0, 0, 1], [3, 5, 1], [1, 1, 2], [1, 1, 1]]) -1 >>> orde([]) 0 >>> eenheidsmatrix(3) [[1, 0, 0], [0, 1, 0], [0, 0, 1]] >>> eenheidsmatrix(1) [[1]]