定义
矩阵在某个向量处的瑞利商Rayleigh quotient是这样定义的:
ρ(x):=xHAxxHx\rho(x) :=\frac{x^HAx}{x^Hx} ρ(x):=xHxxHAx
这个怎么理解呢?上面是埃尔米特内积的表达式,下面是标准埃尔米特内积。但是矩阵不一定是对称阵,如果不是复数的话,分子是一个双线性型的表达式。
从另一个角度讲,瑞利商是一个线性函数,也可以看做是一个多元函数。以二维空间为例子,以下矩阵的瑞丽商:
A=(1101)A=\begin{pmatrix}1 & 1\\ 0 & 1\end{pmatrix} A=(1011)
那么它的瑞丽商就是一个连续函数,不过x1,x2x_1,x_2x1,x2不能同时为0:
ρ(x)=x12+x1x2+x22x12+x22\rho(\bold x)=\frac{x_1^2+x_1x_2+x^2_2}{x_1^2+x_2^2} ρ(x)=x12+x22x12+x1x2+x22
假设只作用在单位向量上,那么就可以定义x1=cosθ,x2=sinθx_1=\cos\theta,x_2=\sin\thetax1=cosθ,x2=sinθ,所以它的瑞丽商就是:
ρ(x)=cos2θ+cosθsinθ+sin2θcos2θ+sin2θ=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):=xHAxxHx=(x∥x∥,Ax∥x∥)=(x∥x∥,Ax∥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 xx单位化后的变量叫u\bold uu,那么瑞丽商其实就是这样的:
ρ(x):=(u,Au)\rho(x) :=(\bold u,A\bold u) ρ(x):=(u,Au)
所以本质上,瑞丽商就是单位向量和变换后的单位向量的内积。那么还以刚才的矩阵为例子,可以继续绘制瑞丽商的图形。其实就算出来还是1+cosθsinθ1+\cos\theta\sin\theta1+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