1. 程式人生 > >向量與矩陣的範數及其在matlab中的用法(norm)

向量與矩陣的範數及其在matlab中的用法(norm)

一、常數向量範數

  • L0範數

∥x∥0=def‖x‖0=def向量中非零元素的個數

其在matlab中的用法:

sum( x(:) ~= 0 )
  • L1範數

∥x∥1=def∑i=1m|xi|=|x1|+⋯+|xm|‖x‖1=def∑i=1m|xi|=|x1|+⋯+|xm|,即向量元素絕對值之和

其在matlab中的用法:

norm(x, 1)
  • L2範數

∥x∥2=(|x1|2+⋯+|xm|2)1/2‖x‖2=(|x1|2+⋯+|xm|2)1/2,即向量元素絕對值的平方和後開方

其在matlab中的用法:

norm(x, 2)
  • L∞範數
  • 極大無窮範數

∥x∥∞=max{|x1|,⋯,|xm|}‖x‖∞=max{|x1|,⋯,|xm|},即所有向量元素絕對值中的最大值

其在matlab中的用法:

norm(x, inf)
  • 極小無窮範數

∥x∥∞=min{|x1|,⋯,|xm|}‖x‖∞=min{|x1|,⋯,|xm|},即所有向量元素絕對值中的最小值

其在matlab中的用法:

norm(x, -inf)

二、矩陣範數

誘導範數和元素形式範數是矩陣範數的兩種主要型別。

1. 誘導範數

  • L1 範數(列和範數)

∥A∥1=max1⩽j⩽n∑i=1m{|aij|}‖A‖1=max1⩽j⩽n∑i=1m{|aij|},即所有矩陣列向量絕對值之和的最大值

其在matlab中的用法:

norm(A,1)
  • L2 範數

∥A∥2=λi−−√‖A‖2=λi,其中 λiλi 為 ATAATA 的最大特徵值。

其在matlab中的用法:

norm(A,2)
  • L∞ 範數(行和範數)

∥A∥∞=max1⩽i⩽m∑j=1n{|aij|}‖A‖∞=max1⩽i⩽m∑j=1n{|aij|},即所有矩陣行向量絕對值之和的最大值

其在matlab中的用法:

norm(A,inf)

2. "元素形式"範數

  • L0 範數

∥A∥0=def矩陣的非零元素的個數‖A‖0=def矩陣的非零元素的個數

其在matlab中的用法:

sum(sum(A ~= 0))
  • L1範數

∥A∥1=def∑i=1m∑j=1n|aij|‖A‖1=def∑i=1m∑j=1n|aij|,即矩陣中的每個元素絕對值之和

其在matlab中的用法:

sum(sum(abs(A)))
  • LF 範數

∥A∥F=def(∑i=1m∑j=1n|aij|2)1/2‖A‖F=def(∑i=1m∑j=1n|aij|2)1/2,即矩陣的各個元素平方之和後開方

其在matlab中的用法:

norm(A,'fro')
  • L∞ 範數

∥A∥∞=maxi=1,⋯,m; j=1,⋯,n{|aij|}‖A‖∞=maxi=1,⋯,m; j=1,⋯,n{|aij|},即矩陣的各個元素絕對值的最大值

其在matlab中的用法:

max(max(abs(A)))
  • 核範數

∥A∥∗=∑i=1nλi‖A‖∗=∑i=1nλi,λiλi 為 AA 的奇異值,即所有矩陣奇異值之和

其在matlab中的用法:

sum(svd(A))