定义
矩阵在某个向量处的瑞利商Rayleigh quotient是这样定义的:
ρ
(
x
)
:
=
x
H
A
x
x
H
x
\rho(x) :=\frac{x^HAx}{x^Hx}
ρ(x):=xHxxHAx
这个怎么理解呢?上面是埃尔米特内积的表达式,下面是标准埃尔米特内积。但是矩阵不一定是对称阵,如果不是复数的话,分子是一个双线性型的表达式。
从另一个角度讲,瑞利商是一个线性函数,也可以看做是一个多元函数。以二维空间为例子,以下矩阵的瑞丽商:
A
=
(
1
1
0
1
)
A=\begin{pmatrix}1 & 1\\ 0 & 1\end{pmatrix}
A=(1011)
那么它的瑞丽商就是一个连续函数,不过
x
1
,
x
2
x_1,x_2
x1,x2不能同时为0:
ρ
(
x
)
=
x
1
2
+
x
1
x
2
+
x
2
2
x
1
2
+
x
2
2
\rho(\bold x)=\frac{x_1^2+x_1x_2+x^2_2}{x_1^2+x_2^2}
ρ(x)=x12+x22x12+x1x2+x22
假设只作用在单位向量上,那么就可以定义
x
1
=
cos
θ
,
x
2
=
sin
θ
x_1=\cos\theta,x_2=\sin\theta
x1=cosθ,x2=sinθ,所以它的瑞丽商就是:
ρ
(
x
)
=
cos
2
θ
+
cos
θ
sin
θ
+
sin
2
θ
cos
2
θ
+
sin
2
θ
=
1
+
cos
θ
sin
θ
\rho(\bold x)=\frac{\cos^2\theta+\cos\theta\sin\theta+\sin^2\theta}{\cos^2\theta+\sin^2\theta}\\=1+\cos\theta\sin\theta
ρ(x)=cos2θ+sin2θcos2θ+cosθsinθ+sin2θ=1+cosθsinθ
这个矩阵在单位向量上的瑞丽商图像如下图所示(xy平面构成单位圆,z轴是瑞丽商):
单位化
以上的研究方式还是不好理解瑞丽商,其实可以把上述公式改写:
ρ
(
x
)
:
=
x
H
A
x
x
H
x
=
(
x
∥
x
∥
,
A
x
∥
x
∥
)
=
(
x
∥
x
∥
,
A
x
∥
x
∥
)
\rho(x) :=\frac{x^HAx}{x^Hx}=(\frac{\bold x}{\parallel x\parallel},\frac{A\bold x}{\parallel x\parallel})\\=(\frac{\bold x}{\parallel x\parallel},A\frac{\bold x}{\parallel x\parallel})
ρ(x):=xHxxHAx=(∥x∥x,∥x∥Ax)=(∥x∥x,A∥x∥x)
把
x
\bold x
x单位化后的变量叫
u
\bold u
u,那么瑞丽商其实就是这样的:
ρ
(
x
)
:
=
(
u
,
A
u
)
\rho(x) :=(\bold u,A\bold u)
ρ(x):=(u,Au)
所以本质上,瑞丽商就是单位向量和变换后的单位向量的内积。那么还以刚才的矩阵为例子,可以继续绘制瑞丽商的图形。其实就算出来还是
1
+
cos
θ
sin
θ
1+\cos\theta\sin\theta
1+cosθsinθ.
埃尔米特阵的瑞丽商
埃尔米特阵的瑞丽商有特别的性质,最大值和最小值分别是最大特征值和最小特征值。在最小特征值的特征向量处得到最小值,同样,在最大特征值的特征向量处得到最大值。也就是:
λ
1
=
min
ρ
(
x
)
,
λ
n
=
max
ρ
(
x
)
\lambda_1=\min \rho(\bold x),\lambda_n=\max \rho(\bold x)
λ1=minρ(x),λn=maxρ(x)
代码
瑞丽商的定义这么简单,计算它的代码也就十分简洁了:
# 瑞丽商
def rayleigh_quotient(self, vector):
v = Matrix([vector])
v_h = v.hermitian_transpose()
numerator = (v_h * self * v).__vectors[0][0]
denominator = (v_h * v).__vectors[0][0]
return numerator / denominator