We noemen een kolomvector $$x$$, verschillend van de nulvector, die voldoet aan
$$A x = \lambda x$$ een eigenvector van de reële matrix $$A$$, met bijhorende eigenwaarde $$\lambda$$. Het vinden van alle
eigenvectoren en eigenwaarden van een matrix is vrij rekenintensief. Om echter de eigenvector te vinden
die hoort bij de grootste, positieve eigenwaarde van $$A$$ kunnen we een eenvoudig iteratief schema gebruiken.
We construeren de rij van kolomvectoren $$x$$, gegeven door
$$
x_{n+1} = \frac{1}{||A x_n||} A x_n
$$
Hierin stelt $$||v||$$ de norm van de vector $$v$$ voor, gedefinieerd als de vierkantswortel uit de som van
de kwadraten van zijn componenten. Om de iteratie te starten, wordt een startvector $$x_0$$ opgegeven.
Schrijf een functie $$\verb!grootste_eigenwaarde()!$$ die van een gegeven reële matrix $$A$$ , met minstens één positieve
reële eigenwaarde, een eigenvector horend bij de grootste positieve eigenwaarde van $$A$$ oplevert,
volgens de geschetste procedure.
De functie heeft drie argumenten, namelijk:
Een NumPy-matrix, $$M>0$$ rijen en $$N>0$$ kolommen.
Een tuple bestaande uit een kolomvector en een reëel getal.
a = np.matrix([[ 0., 1., 2., 3.], [10., 11., 12., 13.], [20., 21., 22., 23.], [30., 31., 32., 33.]]) x0 = np.matrix([[1.], [1.], [1.], [1.]]) grootste_eigenwaarde(a, x0, 0.001) = (matrix([[ 0.05415981], [ 0.29764915], [ 0.54113849], [ 0.78462783]]), 68.93663131468723)