Python求特徵值和特徵向量、奇異值分解
阿新 • • 發佈:2019-01-28
問題1描述:
求解矩陣A=[-1 2 -3; 4 -6 6]的2範數。
其中,矩陣A的2範數為矩陣的最大特徵值開平方根。
即利用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