问题1描述:
求解矩阵A=[-1 2 -3; 4 -6 6]的2范数。
其中,矩阵A的2范数为矩阵 A T A A^{T}A ATA的最大特征值开平方根。
即利用Python求解2范数如下所示:
>>> A=np.array([[-1,2,-3],[4,-6,6]])
>>> A_T=np.transpose(A)
>>> Z=np.dot(A_T,A)
>>> a,b=np.linalg.eig(Z) #其中a为特征值,b为特征向量
>>> a
array([ 1.01249378e+02, -1.28328224e-16, 7.50621894e-01])
>>> b
array([[-0.40647913, 0.6882472 , -0.60090806],
[ 0.62776097, 0.6882472 , 0.36363711],
[-0.66384552, 0.22941573, 0.71181286]])
因此2范数为
>>> np.sqrt(a[0])
10.062274996520641
问题2描述:
求矩阵A=[-1 2 -3;4 -6 6]的核范数。
其中,矩阵A的核范数等于矩阵的奇异值(将矩阵svd分解)之和
>>> A=np.array([[-1,2,-3],[4,-6,6]])
>>> s,u,v=np.linalg.svd(A)
>>> np.sum(u)
10.928659376802015