Ich habe versucht, QR-Zerlegung Schritt für Schritt zu visualisieren, aber ich bekomme keine erwarteten Ergebnisse. Ich bin neu in numpy so, es wäre schön, wenn jeder Experte Auge erkennen konnte, was ich vielleicht fehlt:Matrix QR-Faktorisierungsalgorithmen
import numpy as np
from scipy import linalg
A = np.array([[12, -51, 4],
[6, 167, -68],
[-4, 24, -41]])
#Givens
v = np.array([12, 6])
vnorm = np.linalg.norm(v)
W_12 = np.array([[v[0]/vnorm, v[1]/vnorm, 0],
[-v[1]/vnorm, v[0]/vnorm, 0],
[0, 0, 1]])
W_12 * A #this should return a matrix such that [1,0] = 0
#gram-schmidt
A[:,0]
v = np.linalg.norm(A[:,0]) * np.array([1, 0, 0])
u = (A[:,0] - v)
u = u/np.linalg.norm(u)
W1 = np.eye(3) - 2 * np.outer(u, u.transpose())
W1 * A #this matrix's first column should look like [a, 0, 0]
jede Hilfe die Tatsache klarzustellen, dass diese Zwischenergebnisse zeigen nicht die Eigenschaften, die sie eigentlich wird sehr empfangen werden
Danke !!