MATLAB norm()関数
このチュートリアルでは、MATLAB の norm()
関数を使用して、ベクトルまたは行列のユークリッドノルムとフロベニウスノルムを見つける方法について説明します。
MATLAB norm()
関数
MATLAB の norm()
関数は、ベクトルまたは行列のユークリッドノルムとフロベニウスノルムを見つけるために使用されます。ユークリッドノルムは、ベクトルの原点からのユークリッド距離であり、ベクトルの大きさ、2 ノルム、またはユークリッド長に等しくなります。
ユークリッド距離は、ユークリッド空間内の 2 点間の線分の長さに等しくなります。また、ベクトルとそれ自体の内積を見つけ、その平方根を取ることによって、ユークリッドノルムを見つけることができます。
フロベニウスノルムは、行列のユークリッドノルムです。norm()
関数内にベクトルを渡すと、そのベクトルのユークリッドノルムが返されますが、行列の場合、norm()
関数はフロベニウスノルムを返します。
norm()
関数には、以下に示す 5つの異なる構文があります。
nm = norm(vec)
nm = norm(vec,p)
nm = norm(mat)
nm = norm(mat,p)
nm = norm(mat,"fro")
最初の構文は、指定されたベクトルの 2 ノルムまたはユークリッドノルムを返します。2 番目の構文は、指定されたベクトルの p
-ノルムを返します。p
-ノルムは、1-ノルム、2-ノルム、3-ノルムなどになります。
3 番目の構文は、行列の最大特異値またはユークリッドノルムを返します。4 番目の構文は、指定された行列の p
-ノルムを返します。p
は、1、2、または Inf
にすることができます。
p
が 1 の場合、構文は指定された行列の列の最大絶対合計を返し、p
が 2 の場合、2 ノルムが返されます。p
が Inf
の場合、構文は指定された行列の行の最大絶対合計を返します。
最後の構文は、指定された行列のフロベニウスノルムを返します。たとえば、norm()
関数を使用して、ベクトルと行列のユークリッドノルムを見つけましょう。
以下のコードを参照してください。
clc
clear
v1 = 1:5;
m = [1:10;21:30];
n1 = norm(v1)
n3 = norm(m)
出力:
n1 =
7.4162
n3 =
83.2005
上記の出力では、行列全体のノルムが返されます。これは 83
です。行列に存在する各行または列のノルムを見つけたい場合は、vecnorm()
関数を使用できます。この関数は、指定された行列の各行または列を個別のベクトルとして扱い、そのノルムを計算します。
たとえば、vecnorm()
関数内に行列を渡すと、指定された行列に存在する各列の 2 ノルムを含むベクトルが返されます。vecnorm()
関数内で、ノルム番号を 2 番目の引数として設定し、ノルムを 3 番目の引数として使用する次元を設定することもできます。
norm()
関数の詳細については、このリンクを確認してください。また、vecnorm()
関数の詳細については、このリンクを確認してください。