Skip to content
Related Articles

Related Articles

Calculate the QR decomposition of a given matrix using NumPy
  • Last Updated : 05 Sep, 2020

In this article, we will discuss QR decomposition of a matrix. QR factorization of a matrix is the decomposition of a matrix say ‘A’ into ‘A=QR’ where Q is orthogonal and R is an upper-triangular matrix. We can calculate the QR decomposition of a given matrix with the help of numpy.linalg.qr(). 

Syntax : numpy.linalg.qr(a, mode=’reduced’)

Parameters :

  • a : matrix(M,N) which needs to be factored.
  • mode : it is optional. It can be :

Example 1:

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

import numpy as np
  
  
# Original matrix
matrix1 = np.array([[1, 2, 3], [3, 4, 5]])
print(matrix1)
  
# Decomposition of the said matrix
q, r = np.linalg.qr(matrix1)
print('\nQ:\n', q)
print('\nR:\n', r)

chevron_right


Output:

[[1 2 3]
 [3 4 5]]

Q:
 [[-0.31622777 -0.9486833 ]
 [-0.9486833   0.31622777]]

R:
 [[-3.16227766 -4.42718872 -5.69209979]
 [ 0.         -0.63245553 -1.26491106]]

Example 2:



Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

import numpy as np
  
  
# Original matrix
matrix1 = np.array([[1, 0], [2, 4]])
print(matrix1)
  
# Decomposition of the said matrix
q, r = np.linalg.qr(matrix1)
print('\nQ:\n', q)
print('\nR:\n', r)

chevron_right


Output:

[[1 0]
 [2 4]]

Q:
 [[-0.4472136  -0.89442719]
 [-0.89442719  0.4472136 ]]

R:
 [[-2.23606798 -3.57770876]
 [ 0.          1.78885438]]

Example 3:

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

import numpy as np 
    
# Create a numpy array  
arr = np.array([[5, 11, -15], [12, 34, -51], 
                [-24, -43, 92]], dtype=np.int32) 
    
print(arr)
  
# Find the QR factor of array 
q, r = np.linalg.qr(arr) 
print('\nQ:\n', q)
print('\nR:\n', r)

chevron_right


Output:

[[  5  11 -15]
 [ 12  34 -51]
 [-24 -43  92]]

Q:
 [[-0.18318583 -0.08610905  0.97929984]
 [-0.43964598 -0.88381371 -0.15995231]
 [ 0.87929197 -0.45984624  0.12404465]]

R:
 [[-27.29468813 -54.77256208 106.06459346]
 [  0.         -11.22347731   4.06028083]
 [  0.           0.           4.88017756]]

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :