文章目录
- 1. 概述
- 2. 正定矩阵判定条件
- 3. 举例
1. 概述
正定矩阵这节可以将主元,行列式,特征值,还有不稳定性结合起来。以前我们学的是解决方程
A
x
=
b
Ax=b
Ax=b 的问题,现在升级,变成
x
T
A
x
=
b
x^TAx=b
xTAx=b ,在原来的基础上新增了一个
x
T
x^T
xT 变量,使得原来线性一次问题,变成了二次问题。我们的目标如下:
此节讨论的是: 前提是矩阵A为2X2的对称矩阵
-
- 怎么快速的判断矩阵是否为正定矩阵
-
- 正定矩阵与图像之间的关系:椭圆和正定性有关,双曲线与正定性无关。
-
- 如何找到极小值?
2. 正定矩阵判定条件
假设我们有如下对称矩阵A
A
=
[
a
b
b
c
]
\begin{equation} A=\begin{bmatrix}a&b\\\\b&c\end{bmatrix} \end{equation}
A=
abbc
-
- 对称矩阵特征值大于零, λ 1 > 0 , λ 2 > 0 \lambda_1 >0,\lambda_2 >0 λ1>0,λ2>0
-
- 顺序主子式大于零, a > 0 , a c − b 2 > 0 a>0,ac-b^2>0 a>0,ac−b2>0
-
- 主元大于零, a > 0 , a c − b 2 a > 0 a>0,\frac{ac-b^2}{a}>0 a>0,aac−b2>0
-
- x T A x x^TAx xTAx的值大于零。 x T A x > 0 x^TAx>0 xTAx>0
假设我们有一个矩阵A 表示如下:
A
=
[
2
6
6
c
]
\begin{equation} A=\begin{bmatrix}2&6\\\\6&c\end{bmatrix} \end{equation}
A=
266c
那我们如何选择变量c ,使得矩阵A是正定矩阵呢?我们可以用主元大于零来判断,第一个主元a>0 ,满足条件,第二个
2
∗
c
−
6
2
2
>
0
\frac{2*c-6^2}{2}>0
22∗c−62>0,得到
c
>
18
c>18
c>18 才能满足矩阵A是正定矩阵。
- 假设我们令 c=18,那么矩阵A的特征值
λ
1
=
0
,
λ
2
=
20
\lambda_1=0,\lambda_2=20
λ1=0,λ2=20 , 所以矩阵A为半正定矩阵。
x T A x = [ x 1 x 2 ] [ 2 6 6 18 ] [ x 1 x 2 ] = a x 1 2 + 2 b x 1 x 2 + c x 2 2 = 2 x 1 2 + 12 x 1 x 2 + 18 x 2 2 \begin{equation} x^TAx=\begin{bmatrix}x_1&x_2\end{bmatrix}\begin{bmatrix}2&6\\\\6&18\end{bmatrix}\begin{bmatrix}x_1\\\\x_2\end{bmatrix}=ax_1^2+2bx_1x_2+cx_2^2=2x_1^2+12x_1x_2+18x_2^2 \end{equation} xTAx=[x1x2] 26618 x1x2 =ax12+2bx1x2+cx22=2x12+12x1x2+18x22
我们知道当c=18的时候,A为半正定矩阵,Python 图像代码如下:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建 x 和 y 的范围,并生成网格数据
x = np.linspace(-10, 10, 400)
y = np.linspace(-10, 10, 400)
x, y = np.meshgrid(x, y)
# 计算 z 的值
z = 2 * x**2 + 12 * x * y + 18 * y**2
# 创建一个新的图像
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制三维图像,增加网格线和颜色映射
surface = ax.plot_surface(x, y, z, cmap='viridis', edgecolor='k', alpha=0.8)
# 添加颜色条
fig.colorbar(surface, shrink=0.5, aspect=5)
# 设置图像标题和轴标签
ax.set_title('Surface plot of z=2x^2 + 12xy + 18y^2')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')
# 调整视角
ax.view_init(elev=30, azim=30)
# 显示图像
plt.show()
- 当我们令 c=7时,矩阵A为非正定矩阵,图像如下:
- 当我们令 c=20时,矩阵A为正定矩阵,图像如下:
可以知道矩阵A的行列式: λ 1 λ 2 = 4 > 0 \lambda_1\lambda_2=4>0 λ1λ2=4>0表示要么同为正,要么同为负, λ 1 + λ 2 = 22 > 0 \lambda_1+\lambda_2=22>0 λ1+λ2=22>0,所以可以得到, λ 1 > 0 , λ 2 > 0 \lambda_1>0 ,\lambda_2>0 λ1>0,λ2>0
x T A x = [ x y ] [ 2 6 6 20 ] [ x y ] = 2 x 2 + 12 x y + 20 y 2 = 2 ( x + 3 y ) 2 + 2 y 2 \begin{equation} x^TAx=\begin{bmatrix}x&y\end{bmatrix}\begin{bmatrix}2&6\\\\6&20\end{bmatrix}\begin{bmatrix}x\\\\y\end{bmatrix}=2x^2+12xy+20y^2=2(x+3y)^2+2y^2 \end{equation} xTAx=[xy] 26620 xy =2x2+12xy+20y2=2(x+3y)2+2y2
[ 2 6 6 20 ] = [ 1 0 3 1 ] [ 2 6 0 2 ] = [ 1 0 3 1 ] [ 2 6 0 2 ] \begin{equation} \begin{bmatrix}2&6\\\\6&20\end{bmatrix}=\begin{bmatrix}1&0\\\\3&1\end{bmatrix}\begin{bmatrix}2&6\\\\0&2\end{bmatrix}=\begin{bmatrix}1&0\\\\3&1\end{bmatrix}\begin{bmatrix}2&6\\\\0&2\end{bmatrix} \end{equation} 26620 = 1301 2062 = 1301 2062
可以得到消元法和配方后的结果一致。
化简后可以看出,正定值大于等于零。图形相当于一个碗,也就是旋转的抛物线体。
d x T A x d x = 4 x + 12 y , d x T A x d y = 12 x + 40 y \begin{equation} \frac{\mathrm{d}x^TAx}{\mathrm{d}x}=4x+12y,\frac{\mathrm{d}x^TAx}{\mathrm{d}y}=12x+40y \end{equation} dxdxTAx=4x+12y,dydxTAx=12x+40y - 可以看出在零点的最小值中的一阶导数为0,如果需要知道极小值点,不仅需要一阶导数为0,还同时需要二阶导数为正。
- 一阶导数为0
[ f x x f x y f y x f y y ] > 0 , f x x > 0 , f x x f y y − f x y f y x > 0 ⇒ 矩阵是正定,有极小值 \begin{equation} \begin{bmatrix}f_{xx}&f_{xy}\\\\f_{yx}&f_{yy}\end{bmatrix}>0,f_{xx}>0,f_{xx}f_{yy}-f_{xy}f_{yx}>0\Rightarrow 矩阵是正定,有极小值 \end{equation} fxxfyxfxyfyy >0,fxx>0,fxxfyy−fxyfyx>0⇒矩阵是正定,有极小值
3. 举例
假设我们有如下矩阵A
A
=
[
2
−
1
0
−
1
2
−
1
0
−
1
2
]
\begin{equation} A=\begin{bmatrix} 2&-1&0\\\\ -1&2&-1\\\\ 0&-1&2 \end{bmatrix} \end{equation}
A=
2−10−12−10−12
- 顺序主子式的行列式均大于零,所以矩阵为正定矩阵。
∣ 2 ∣ = 2 > 0 ; ∣ 2 − 1 − 1 2 ∣ = 3 > 0 ; ∣ 2 − 1 0 − 1 2 − 1 0 − 1 2 ∣ = 4 > 0 \begin{equation} \begin{vmatrix} 2 \end{vmatrix}=2>0; \begin{vmatrix} 2&-1\\\\ -1&2 \end{vmatrix}=3>0; \begin{vmatrix} 2&-1&0\\\\ -1&2&-1\\\\ 0&-1&2 \end{vmatrix}=4>0 \end{equation} 2 =2>0; 2−1−12 =3>0; 2−10−12−10−12 =4>0 - 主元分别如下: 2 , 3 2 , 4 3 2,\frac{3}{2},\frac{4}{3} 2,23,34,均大于零,所以为正定矩阵。
- 特征值分别如下: 2 − 2 , 2 , 2 + 2 2-\sqrt{2},2,2+\sqrt{2} 2−2,2,2+2,均大于零,所以为正定矩阵。
- 方程如下:
f ( x 1 , x 2 , x 3 ) = x T A x = 2 x 1 2 + 2 x 2 2 + 2 x 3 2 − 2 x 1 x 2 − 2 x 2 x 3 \begin{equation} f(x_1,x_2,x_3)=x^TAx=2x_1^2+2x_2^2+2x_3^2-2x_1x_2-2x_2x_3 \end{equation} f(x1,x2,x3)=xTAx=2x12+2x22+2x32−2x1x2−2x2x3
以上得到一个椭圆球的方程,图形如下: