Untitled
unknown
plain_text
9 months ago
643 B
9
Indexable
import numpy as np
def householder_qr(A):
n = A.shape[0]
Q = np.eye(n)
R = A.copy()
for k in range(n - 1):
x = R[k:, k]
e = np.zeros_like(x)
e[0] = np.linalg.norm(x)
if x[0] > 0:
e[0] = -e[0]
v = x - e
v = v / np.linalg.norm(v)
Q_k = np.eye(n)
Q_k[k:, k:] -= 2.0 * np.outer(v, v)
R = Q_k @ R
Q = Q @ Q_k.T
return Q, R
# Example Usage
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 10]], dtype=np.float64)
Q, R = householder_qr(A)
print("Matrix Q (Orthogonal):")
print(Q)
print("\nMatrix R (Upper Triangular):")
print(R)Editor is loading...
Leave a Comment