Potenzmethode
Verfasst: Mittwoch 20. Dezember 2017, 15:31
Hi ich hab hier versucht die Potenzmethode zu Programmieren aber ich hab einen zeitfehler also das programm läuft zu lange
denke das liegt an der while schleife wo ich residual berechne
vielleicht sieht ja jemand nen fehler
bin leider totaler anfänger und das ist alles mehr geraten als gewusst
Danke schonmal
denke das liegt an der while schleife wo ich residual berechne
vielleicht sieht ja jemand nen fehler
bin leider totaler anfänger und das ist alles mehr geraten als gewusst
Danke schonmal
Code: Alles auswählen
def power_iteration(M: np.ndarray, epsilon: float = -1.0) -> (np.ndarray, list):
if M.shape[0] != M.shape[1]:
raise ValueError("Matrix not nxn")
if epsilon == -1:
epsilon = 10*np.finfo(float).eps
n,m = M.shape
vector = np.random.rand(m)
z = np.empty_like(vector)
residuals = []
residual = 2.0 * epsilon
while residual > epsilon:
np.copyto(z, vector)
vector = np.dot(M,vector)
Vnorm = np.linalg.norm(vector)
residual = np.linalg.norm(vector-z)
residuals.append(residual)
vector = vector / Vnorm
return vector, residuals