# D. Scott
# Linear Algebra: TCI
# Code Challenge 6.4
# Cauchy-Schwarz inequality verification
import random
import numpy as np
A = np.empty((5,9),dtype=int)
v = np.empty((1,5),dtype=int)
# generate diagonal 6 x 6 matrix
for i in range(0,5):
for j in range(0,9):
A[i][j] = random.randint(-4,12)
# generate 1 x 5 vector
for i in range(0,5):
v[0][i] = random.randint(-4,12)
print("Matrix A:\n",A,"\n")
print("Vector v:\n",v,"\n")
print("v@A:\n",v@A,"\n")
print("||v@A||\n",np.linalg.norm(v@A))
F_norm = np.trace(A@A.transpose())
print("Frobenius norm of A (tr(A@A.T)): \n",F_norm)
print("||v||*||A_f||: ",np.linalg.norm(v)*F_norm,"\n")
print(np.linalg.norm(v@A),"<=",np.linalg.norm(v)*F_norm," ? \n")
print("Yes.")
Matrix A: [[ 8 8 10 0 -1 11 -2 2 7] [ 1 11 4 2 7 4 12 11 9] [-2 -3 5 9 8 6 9 -1 5] [10 2 8 6 8 7 3 3 -2] [12 5 8 -3 -1 12 7 -4 1]] Vector v: [[8 6 7 8 5]] v@A: [[196 150 243 108 149 270 178 79 134]] ||v@A|| 531.6117003979502 Frobenius norm of A (tr(A@A.T)): 2078 ||v||*||A_f||: 32057.822633485262 531.6117003979502 <= 32057.822633485262 ? Yes.