28. 正定矩阵和最小值

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的对称矩阵

    1. 怎么快速的判断矩阵是否为正定矩阵
    1. 正定矩阵与图像之间的关系:椭圆和正定性有关,双曲线与正定性无关。
    1. 如何找到极小值?

2. 正定矩阵判定条件

假设我们有如下对称矩阵A
A = [ a b b c ] \begin{equation} A=\begin{bmatrix}a&b\\\\b&c\end{bmatrix} \end{equation} A= abbc

    1. 对称矩阵特征值大于零, λ 1 > 0 , λ 2 > 0 \lambda_1 >0,\lambda_2 >0 λ1>0,λ2>0
    1. 顺序主子式大于零, a > 0 , a c − b 2 > 0 a>0,ac-b^2>0 a>0,acb2>0
    1. 主元大于零, a > 0 , a c − b 2 a > 0 a>0,\frac{ac-b^2}{a}>0 a>0,aacb2>0
    1. 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 22c62>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,fxxfyyfxyfyx>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= 210121012

  1. 顺序主子式的行列式均大于零,所以矩阵为正定矩阵。
    ∣ 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; 2112 =3>0; 210121012 =4>0
  2. 主元分别如下: 2 , 3 2 , 4 3 2,\frac{3}{2},\frac{4}{3} 2,23,34,均大于零,所以为正定矩阵。
  3. 特征值分别如下: 2 − 2 , 2 , 2 + 2 2-\sqrt{2},2,2+\sqrt{2} 22 ,2,2+2 ,均大于零,所以为正定矩阵。
  4. 方程如下:
    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+2x322x1x22x2x3
    以上得到一个椭圆球的方程,图形如下:
    在这里插入图片描述
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值