1. 程式人生 > 程式設計 >在python Numpy中求向量和矩陣的範數例項

在python Numpy中求向量和矩陣的範數例項

np.linalg.norm(求範數):linalg=linear(線性)+algebra(代數),norm則表示範數。

函式引數

x_norm=np.linalg.norm(x,ord=None,axis=None,keepdims=False)

①x: 表示矩陣(也可以是一維)

②ord:範數型別

向量的範數:

矩陣的範數:

ord=1:列和的最大值

ord=2:|λE-ATA|=0,求特徵值,然後求最大特徵值得算術平方根

ord=∞:行和的最大值

③axis:處理型別

axis=1表示按行向量處理,求多個行向量的範數

axis=0表示按列向量處理,求多個列向量的範數

axis=None表示矩陣範數。

④keepding:是否保持矩陣的二維特性

True表示保持矩陣的二維特性,False相反

向量範數:

1-範數: ,即向量元素絕對值之和,matlab呼叫函式norm(x,1) 。

2-範數: ,Euclid範數(歐幾里得範數,常用計算向量長度),即向量元素絕對值的平方和再開方,matlab呼叫函式norm(x,2)。

∞-範數: ,即所有向量元素絕對值中的最大值,matlab呼叫函式norm(x,inf)。

-∞-範數: ,即所有向量元素絕對值中的最小值,matlab呼叫函式norm(x,-inf)。

p-範數: ,即向量元素絕對值的p次方和的1/p次冪,matlab呼叫函式norm(x,p)。

矩陣範數:

1-範數: , 列和範數,即所有矩陣列向量絕對值之和的最大值,matlab呼叫函式norm(A,1)。

2-範數: ,譜範數,即A'A矩陣的最大特徵值的開平方。matlab呼叫函式norm(x,2)。

∞-範數: ,行和範數,即所有矩陣行向量絕對值之和的最大值,matlab呼叫函式norm(A,inf)。

F-範數: ,Frobenius範數,即矩陣元素絕對值的平方和再開平方,matlab呼叫函式norm(A,'fro‘)。

import numpy as np

x1=np.array([1,5,6,3,-1])
x2=np.arange(12).reshape(3,4)
print x1,'\n',x2
print '向量2範數:'
print np.linalg.norm(x1)
print np.linalg.norm(x1,ord=2)
print '預設的矩陣範數:'
print np.linalg.norm(x2)
print '矩陣2範數:'
print np.linalg.norm(x2,ord=2)

經測試知:

np.linalg.norm(X),X為向量時,預設求向量2範數,即求向量元素絕對值的平方和再開方;

X為矩陣是,預設求的是F範數。矩陣的F範數即:矩陣的各個元素平方之和再開平方根,它通常也叫做矩陣的L2範數,它的有點在它是一個凸函式,可以求導求解,易於計算。

以上這篇在python Numpy中求向量和矩陣的範數例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。