28. 正定矩阵和最小值

news2024/12/27 22:21:57

文章目录

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

    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
    以上得到一个椭圆球的方程,图形如下:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1695594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html 字体设置 (web端字体设置)

windows自带的字体是有版权的,包括微软雅黑(方正)、宋体(中易)、黑体(中易)等 版权算是个大坑,所谓为了避免版权问题,全部使用开源字体即可 我这里选择的是思源宋体&…

Java进阶学习笔记10——子类构造器

子类构造器的特点: 子类的全部构造器,都会先调用父类的构造器,再执行自己。 子类会继承父类的数据,可能还会使用父类的数据。所以,子类初始化之前,一定先要完成父类数据的初始化,原因在于&…

【pyspark速成专家】7_SparkSQL编程1

目录 一,RDD,DataFrame和DataSet对比 二,创建DataFrame 本节将介绍SparkSQL编程基本概念和基本用法。 不同于RDD编程的命令式编程范式,SparkSQL编程是一种声明式编程范式,我们可以通过SQL语句或者调用DataFrame的相…

2024Spring> HNU-计算机系统-实验4-Buflab-导引+验收

前言 称不上导引了,因为验收已经结束了。主要是最近比较忙,在准备期末考试。周五晚上才开始看实验,自己跟着做了一遍实验,感觉难度还是比bomblab要低的,但是如果用心做的话对于栈帧的理解确实能上几个档次。 实验参考…

ClickHouse 24.4 版本发布说明

本文字数:13148;估计阅读时间:33 分钟 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 新的一个月意味着新版本的发布! 发布概要 本次ClickHouse 24.4版本包含了13个新功能🎁…

List Control控件绑定变量

创建基于对话框的mfc项目 添加 List Control控件 右击控件,选择“添加变量” 在初始化对话框代码中增加一些代码 BOOL CMFCApplication3Dlg::OnInitDialog() { //...// TODO: 在此添加额外的初始化代码DWORD dwStyle m_programLangList.GetExtendedStyle(); …

程序员的那些经典段子

哈喽,大家好,我是明智~ 本周咱们已经解决了在面试中经常碰到的OOM问题: 《美团一面,发生OOM了,程序还能继续运行吗?》 《美团一面:碰到过OOM吗?你是怎么处理的&#xff1…

【Linux】Linux的基本指令_1

文章目录 二、基本指令1. whoami 和 who2. pwd3. ls4. clear5. mkdir 和 cd6. touch7. rmdir 和 rm 未完待续 二、基本指令 直接在命令行的末尾(# 后面)输入指令即可。在学习Linux指令的过程中,还会穿插一些关于Linux的知识点。 1. whoami …

AI助力垃圾分类开启智慧环保新时代,基于卷积神经网络模型开发实践垃圾分类识别系统

在快节奏的现代生活中,垃圾分类已经成为一项重要的环保举措。然而,面对日益复杂的垃圾种类和繁多的分类标准,许多人感到困惑和无奈。幸运的是,随着人工智能技术的飞速发展,AI深度学习模型为垃圾分类带来了革命性的变化…

人工智能 框架 paddlepaddle 飞桨 使用指南 使用例子 线性回归模型demo 详解

安装过程&使用指南&线性回归模型 使用例子 本来预想 是安装 到 conda 版本的 11.7的 但是电脑没有gpu 所以 安装过程稍有变动,下面简单讲下 conda create -n paddle_env117 python=3.9 由于想安装11.7版本 py 是3.9 所以虚拟环境名称也是 paddle_env117 activa…

嵌入式全栈开发学习笔记---C语言笔试复习大全21(编程题25~30)

目录 25、实现字符串的排序。(输入hello world good,输出good hello world,其中字符串个数任意) 26、输入两个有序的字符串(从小到大),合并成一个有序的字符串。(输入cdhxyz fjln …

利用EAS自动生成数据模型和sql脚本

EAS适用于敏捷开发中小系统,这节主要讲解EAS对应的模型和数据库脚本输出应用。 在这个应用程序中,用户可自定义实体模型和枚举模型,只要选择相应的实体或者枚举进行右击添加即可。 解决方案参数设定,在解决方案的设定中可设置项目名称、通用语言,命名空间和输出位置。 连…

Python+Flask+Pandas怎样实现任意时间范围的对比数据报表

话不多说,有图有源码: 1.上图 2.因为是低代码的,只能发重要有用的代码片段了 实现思路:1)获取指定时间范围内的数据:2)df合并 #----------年份替换----------------for syear in range(int(byear),int(eyear)1):start_datestr(syear)strbdate[4:]end_datestr(syear)stredate…

2024-05-22 VS2022使用modules

点击 <C 语言编程核心突破> 快速C语言入门 VS2022使用modules 前言一、准备二、使用其一, 用VS installer 安装模块:第二个选项就是, 与你的代码一同编译std模块, 这个非常简单, 但是也有坑. 总结 前言 要解决问题: 使用VS2022开启modules. 想到的思路: 跟着官方文档整…

Linux更改系统中的root密码

Linux里面的root密码忘记了怎么办&#xff1f; 1 更改系统中的 root 密码 &#xff08;1&#xff09;键盘 CtrlAltT 快捷键打开终端。 &#xff08;2&#xff09;在终端窗口中输入以下代码&#xff1a; sudo passwd root &#xff08;3&#xff09;输入锁屏密码 &#xf…

kali下载zsteg和stegpy

1.kali下载zsteg 从 GitHub 上克隆zsteg到kali git clone https://github.com/zed-0xff/zsteg 切换目录 cd zsteg 用于安装名为 zsteg 的 Ruby Gem 包 gem install zsteg 2.kali下载stegpy 下载网站内的stegpy-master压缩包GitCode - 开发者的代码家园 并拉到kali中 切换到s…

String s1 = new String(“abc“);这句话创建了几个字符串对象?

首先&#xff0c;我们来聊聊Java中的字符串&#xff08;String&#xff09;。在Java里&#xff0c;字符串是不可变的&#xff0c;也就是说&#xff0c;一旦我们创建了一个字符串&#xff0c;它的值就不能更改了。这涉及到几个核心概念&#xff1a; 字符串常量池&#xff1a;这是…

Pytorch深度学习实践笔记5

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 视频来自【b站刘二大人】 目录 1 Linear Regress…

Java 登录错误次数限制,用户禁登1小时

手机号验证码登录&#xff0c;验证码输入错误次数超5次封禁 Overridepublic boolean checkCaptcha(String phoneNum, String captcha) {String codeNum (String) redisTemplate.opsForValue().get(UserCacheNames.USER_CAPTCHA phoneNum);if (codeNum null) {throw new Wan…

2024 ISCC pwn wp

iscc 练武pwn 总结第一周chaosISCC_easyFlagshopping 第二周ISCC_easyISCC_Uheapheap 第三周miaoYour_programeazy_heap 总结 总体感觉iscc考察的题目都挺基础的&#xff0c;在目前这种比赛的大环境下&#xff0c;仍然出这种&#xff0c;比较基础的题目&#xff0c;实在是难得…