import numpy as np
from numpy import random
from scipy import linalg

Q, __ = linalg.qr(random.randn(50,50))
R = np.triu(random.randn(50,50))
A = Q @ R

Qtilde, Rtilde = linalg.qr(A)

Atilde = Qtilde @ Rtilde

dQ = Qtilde - Q
dR = Rtilde - R
dA = Atilde - A

print('||Qtilde - Q|| = {}'.format(linalg.norm(dQ, 2)))
print('||Rtilde - R||/||R|| = {}'.format(linalg.norm(dR, 2)/linalg.norm(R, 2)))
print('||Qtilde Rtilde - A||/||A|| = {}'.format(linalg.norm(dA, 2)/linalg.norm(A, 2)))
