6 Linear Algebra
title: "Linear algebra" date: 2026-05-24T13:51:49Z
Linear algebra
1import numpy as np
1np.__version__
'1.11.2'
Matrix and vector products
Q1. Predict the results of the following code.
1x = [1,2]
2y = [[4, 1], [2, 2]]
3#print np.dot(x, y)
4#print np.dot(y, x)
5#print np.matmul(x, y)
6#print np.inner(x, y)
7#print np.inner(y, x)
Q2. Predict the results of the following code.
1x = [[1, 0], [0, 1]]
2y = [[4, 1], [2, 2], [1, 1]]
3#print np.dot(y, x)
4#print np.matmul(y, x)
Q3. Predict the results of the following code.
1x = np.array([[1, 4], [5, 6]])
2y = np.array([[4, 1], [2, 2]])
3#print np.vdot(x, y)
4#print np.vdot(y, x)
5#print np.dot(x.flatten(), y.flatten())
6#print np.inner(x.flatten(), y.flatten())
7#print (x*y).sum()
Q4. Predict the results of the following code.
1x = np.array(['a', 'b'], dtype=object)
2y = np.array([1, 2])
3#print np.inner(x, y)
4#print np.inner(y, x)
5#print np.outer(x, y)
6#print np.outer(y, x)
Decompositions
Q5. Get the lower-trianglular L in the Cholesky decomposition of x and verify it.
1x = np.array([[4, 12, -16], [12, 37, -43], [-16, -43, 98]], dtype=np.int32)
[[ 2. 0. 0.]
[ 6. 1. 0.]
[-8. 5. 3.]]
Q6. Compute the qr factorization of x and verify it.
1x = np.array([[12, -51, 4], [6, 167, -68], [-4, 24, -41]], dtype=np.float32)
q=
[[-0.85714287 0.39428571 0.33142856]
[-0.42857143 -0.90285712 -0.03428571]
[ 0.2857143 -0.17142858 0.94285715]]
r=
[[ -14. -21. 14.]
[ 0. -175. 70.]
[ 0. 0. -35.]]
Q7. Factor x by Singular Value Decomposition and verify it.
1x = np.array([[1, 0, 0, 0, 2], [0, 0, 3, 0, 0], [0, 0, 0, 0, 0], [0, 2, 0, 0, 0]], dtype=np.float32)
U=
[[ 0. 1. 0. 0.]
[ 1. 0. 0. 0.]
[ 0. 0. 0. -1.]
[ 0. 0. 1. 0.]]
s=
[ 3. 2.23606801 2. 0. ]
V=
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]
Matrix eigenvalues
Q8. Compute the eigenvalues and right eigenvectors of x. (Name them eigenvals and eigenvecs, respectively)
1x = np.diag((1, 2, 3))
eigenvalues are
[ 1. 2. 3.]
eigenvectors are
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 0. 0. 1.]]
Q9. Predict the results of the following code.
1#print np.array_equal(np.dot(x, eigenvecs), eigenvals * eigenvecs)
Norms and other numbers
Q10. Calculate the Frobenius norm and the condition number of x.
1x = np.arange(1, 10).reshape((3, 3))
16.8819430161
4.56177073661e+17
Q11. Calculate the determinant of x.
1x = np.arange(1, 5).reshape((2, 2))
-2.0
Q12. Calculate the rank of x.
1x = np.eye(4)
4
Q13. Compute the sign and natural logarithm of the determinant of x.
1x = np.arange(1, 5).reshape((2, 2))
-1.0 0.69314718056
Q14. Return the sum along the diagonal of x.
1x = np.eye(4)
4.0
Solving equations and inverting matrices
Q15. Compute the inverse of x.
1x = np.array([[1., 2.], [3., 4.]])
[[-2. 1. ]
[ 1.5 -0.5]]