MSCA 37016 Assignment 1 Zewen Li
import numpy as np
from scipy import linalg as la
A = np.array([[0,3,-1],[-1,4,-2],[1,3,1]])
B = np.array([[2,-1,2],[-1,0,1],[-1,2,2]])
v = np.array([2,-1,4])
u = np.array([-2,1,5])
a = -2
b = 1
#Question 1: ‖𝑣‖1𝑣+𝑎𝑢
#‖𝑣‖1 = 2+1+4 = 7
#‖𝑣‖1𝑣 = 7*[[2],[-1],[4]] = [[14],[-7],[28]]
#𝑎𝑢 = -2*[[-2],[1],[5]] = [[4],[-2],[-10]]
#‖𝑣‖1𝑣+𝑎𝑢 = [[14],[-7],[28]] + [[4],[-2],[-10]] = [[18],[-9],[18]]
#Code for Question 1
norm = la.norm(v,1)
norm * v + a*u
#Question 2:
#cos𝜃 = (v•u)/(‖𝑣‖‖u‖)
#v•u = 2*(-2) + (-1)*1 + 4*5 = -4-1+20 = 15
# ‖𝑣‖‖u‖ = sqrt(2**2+(-1)**2+4**2)*sqrt((-2)**2+1**2+5**2) = sqrt(21)*sqrt(30) = 25.0998
#cos𝜃 = 15/25.0998 = 0.59761
#Code for question 2
Cosine_Theta = ( np.dot(v,u) / (la.norm(v,2)*la.norm(u,2)))
Cosine_Theta
#Question 3:𝑎(𝑨∙𝑣)
#𝑨∙𝑣 = [[0+3*(-1)+(-1)*4],[(-1)*2+4*(-1)+(-2)*4],[1*2+3*(-1)+1*4]] = [[-7],[-14],[3]]
#𝑎(𝑨∙𝑣) = -2*[[-7],[-14],[3]] = [[14],[28],[-6]]
#Code for question 3
prod = np.dot(A,v)
prod2 = a*prod
prod2
#Question 4:𝑨∙𝑩𝑇+𝑡𝑟(𝑩)∗𝑳
#BT = np.array([[2,-1,-1],[-1,0,2],[2,1,2]])
#𝑨∙𝑩𝑇 = [[0*2+3*(-1)+(-2)*2, -1,4],[-10,-1,5],[1,0,7]] = [[-5,-1,4],[-10,-1,5],[1,0,7]]
#tr(B) = 2+0+2 = 4
#L = [[2,0,0],[-1,0,0],[-1,2,2]]
#tr(B)*L = [[8,0,0],[-4,0,0],[-4,8,8]]
#𝑨∙𝑩𝑇+𝑡𝑟(𝑩)∗𝑳 = [[3,-1,4],[-14,-1,5],[-3,8,15]]
#Code for que
BT = B.transpose()
TB = B.trace()
L = la.tril(B)
np.dot(A, BT) + TB * L