正定矩阵(Positive Definite Matrix)

正定矩阵(Positive Definite Matrix)

flyfish

Positive(正数) :在数学和统计学中,通常指大于零的数。在矩阵理论中,一个矩阵被称为正定,是因为它的性质类似于正数的性质。

Definite(定) :在这里,“definite” 指的是矩阵具有确定的、明确的性质。具体地说,正定矩阵是指对于所有非零向量 x x x,都有 x T A x > 0 x^T A x > 0 xTAx>0 成立,其中 A A A 是正定矩阵。
在这里插入图片描述
一个矩阵 A A A 是正定矩阵(Positive Definite Matrix),如果对于任意的非零向量 x x x,都有: x T A x > 0 x^T A x > 0 xTAx>0

对称正定矩阵

一个矩阵 A A A 是对称正定矩阵(Symmetric Positive Definite Matrix),如果它同时满足以下两个条件:

  1. 对称性 :矩阵 A A A 是对称的,即 A = A T A = A^T A=AT

  2. 正定性 :对于任意的非零向量 x x x,有 x T A x > 0 x^T A x > 0 xTAx>0

正定性

x T A x > 0 x^T A x > 0 xTAx>0对于一个矩阵 A A A,我们希望它是正定的。这意味着对于任意的非零向量 x x x,向量 x x x 通过矩阵 A A A 变换后与自身的内积是正的,即: x T A x > 0 x^T A x > 0 xTAx>0
其中:

  • x x x 是一个列向量。

  • x T x^T xT x x x 的转置,即行向量。

  • A A A 是待检查是否正定的矩阵。
    这个条件确保了矩阵 A A A 在所有非零向量的方向上都是正的,从而保证了正定性。

x T A x > 0 x^T A x > 0 xTAx>0 看一个具体的例子。假设矩阵 A A A 为: A = ( 2 1 1 2 ) A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix} A=(2112)并且向量 x x x 为: x = ( 1 1 ) x = \begin{pmatrix} 1 \\ 1 \end{pmatrix} x=(11)现在我们计算 x T A x x^T A x xTAx x T = ( 1 1 ) x^T = \begin{pmatrix} 1 & 1 \end{pmatrix} xT=(11) x T A = ( 1 1 ) ( 2 1 1 2 ) = ( 3 3 ) x^T A = \begin{pmatrix} 1 & 1 \end{pmatrix} \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix} = \begin{pmatrix} 3 & 3 \end{pmatrix} xTA=(11)(2112)=(33) x T A x = ( 3 3 ) ( 1 1 ) = 3 ⋅ 1 + 3 ⋅ 1 = 6 x^T A x = \begin{pmatrix} 3 & 3 \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = 3 \cdot 1 + 3 \cdot 1 = 6 xTAx=(33)(11)=31+31=6我们看到 x T A x = 6 > 0 x^T A x = 6 > 0 xTAx=6>0,这说明对于向量 x x x,矩阵 A A A 是正定的。

对称性

A A A 是一个任意矩阵,那么 A T A^T AT 是它的转置矩阵。矩阵 A ⋅ A T A \cdot A^T AAT 计算如下: ( A ⋅ A T ) T = ( A T ) T ⋅ A T = A ⋅ A T (A \cdot A^T)^T = (A^T)^T \cdot A^T = A \cdot A^T (AAT)T=(AT)TAT=AAT其中 ( A ⋅ A T ) T (A \cdot A^T)^T (AAT)T 是矩阵 A ⋅ A T A \cdot A^T AAT 的转置,根据矩阵乘法的性质,它等于原矩阵 A ⋅ A T A \cdot A^T AAT。因此, A ⋅ A T A \cdot A^T AAT 是对称矩阵。

让我们以一个矩阵 A A A 为例: A = ( 1 2 3 4 ) A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} A=(1324)计算 A T A^T AT A T = ( 1 3 2 4 ) A^T = \begin{pmatrix} 1 & 3 \\ 2 & 4 \end{pmatrix} AT=(1234)现在计算 A ⋅ A T A \cdot A^T AAT A ⋅ A T = ( 1 2 3 4 ) ( 1 3 2 4 ) = ( 1 ⋅ 1 + 2 ⋅ 2 1 ⋅ 3 + 2 ⋅ 4 3 ⋅ 1 + 4 ⋅ 2 3 ⋅ 3 + 4 ⋅ 4 ) = ( 5 11 11 25 ) A \cdot A^T = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \begin{pmatrix} 1 & 3 \\ 2 & 4 \end{pmatrix} = \begin{pmatrix} 1 \cdot 1 + 2 \cdot 2 & 1 \cdot 3 + 2 \cdot 4 \\ 3 \cdot 1 + 4 \cdot 2 & 3 \cdot 3 + 4 \cdot 4 \end{pmatrix} = \begin{pmatrix} 5 & 11 \\ 11 & 25 \end{pmatrix} AAT=(1324)(1234)=(11+2231+4213+2433+44)=(5111125)
我们看到:
A ⋅ A T = ( 5 11 11 25 ) A \cdot A^T = \begin{pmatrix} 5 & 11 \\ 11 & 25 \end{pmatrix} AAT=(5111125)这个矩阵是对称的,因为矩阵的转置 ( A ⋅ A T ) T = A T ⋅ ( A T ) T = A ⋅ A T (A \cdot A^T)^T = A^T \cdot (A^T)^T = A \cdot A^T (AAT)T=AT(AT)T=AAT

单位矩阵

单位矩阵 I I I 是一个对角矩阵,其对角线上所有元素都是1,其他元素都是0。对于单位矩阵 I I I,我们有: x T I x = x T x = ∑ i = 1 n x i 2 x^T I x = x^T x = \sum_{i=1}^n x_i^2 xTIx=xTx=i=1nxi2因为向量 x x x 的每个元素的平方都是非负的,并且至少有一个元素是非零的(因为 x x x 是非零向量),所以 ∑ i = 1 n x i 2 > 0 \sum_{i=1}^n x_i^2 > 0 i=1nxi2>0。因此,对于任何非零向量 x x x,都有 x T I x > 0 x^T I x > 0 xTIx>0,这说明单位矩阵是正定的。
将单位矩阵乘以一个正数,并加到一个对称矩阵上,可以使原矩阵的特征值增加,从而保证矩阵的正定性。

考虑单位矩阵 I I I I = ( 1 0 0 1 ) I = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} I=(1001)对于任意向量 x x x,例如: x = ( 1 1 ) x = \begin{pmatrix} 1 \\ 1 \end{pmatrix} x=(11)我们计算 x T I x x^T I x xTIx x T = ( 1 1 ) x^T = \begin{pmatrix} 1 & 1 \end{pmatrix} xT=(11) x T I = ( 1 1 ) ( 1 0 0 1 ) = ( 1 1 ) x^T I = \begin{pmatrix} 1 & 1 \end{pmatrix} \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} = \begin{pmatrix} 1 & 1 \end{pmatrix} xTI=(11)(1001)=(11) x T I x = ( 1 1 ) ( 1 1 ) = 1 ⋅ 1 + 1 ⋅ 1 = 2 x^T I x = \begin{pmatrix} 1 & 1 \end{pmatrix} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = 1 \cdot 1 + 1 \cdot 1 = 2 xTIx=(11)(11)=11+11=2因为对任意非零向量 x x x x T I x x^T I x xTIx 都大于 0,所以单位矩阵 I I I 是正定的。
考虑一个 2x2 的单位矩阵:
I = [ 1 0 0 1 ] I = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} I=[1001]如果将 0 和 1 的位置互换,得到的矩阵仍然是单位矩阵:
I ′ = [ 0 1 1 0 ] I' = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} I=[0110]
因为:

  1. I ′ I' I 仍然是一个方阵,且大小为 2x2。

  2. I ′ I' I 的主对角线上的元素是 1。

  3. I ′ I' I 的其它位置上的元素都是 0。
    因此,虽然元素的具体排列顺序发生了改变,但这并不影响矩阵是否满足单位矩阵的定义。因此, I ′ I' I 也被认为是一个单位矩阵。

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns# 生成一个随机的对称正定矩阵
def generate_spd_matrix(n):A = np.random.rand(n, n)A = np.dot(A, A.T)  # 生成对称矩阵A += n * np.eye(n)  # 保证正定性return A# 生成 5x5 的对称正定矩阵
n = 5
spd_matrix = generate_spd_matrix(n)# 获取矩阵中所有唯一的数值,并为每个数值分配一个唯一的颜色
unique_values = np.unique(spd_matrix)
num_unique = len(unique_values)
color_palette = sns.color_palette("viridis", num_unique)
color_map = {value: color_palette[i] for i, value in enumerate(unique_values)}# 根据数值映射颜色
colors_mapped = [[color_map[value] for value in row] for row in spd_matrix]# 绘制热图
plt.figure(figsize=(8, 6))
sns.heatmap(spd_matrix, annot=True, fmt=".2f", cmap=color_palette, cbar_kws={'label': 'Matrix Value'})
plt.title("Symmetric Positive Definite Matrix Heatmap")
plt.show()

点积

点积 :是内积的一种具体形式,专门应用于欧几里得空间。给定两个向量 a \mathbf{a} a b \mathbf{b} b,它们的点积定义为:
a ⋅ b = ∥ a ∥ ∥ b ∥ cos ⁡ θ \mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\| \|\mathbf{b}\| \cos \theta ab=a∥∥bcosθ
其中 ∥ a ∥ \|\mathbf{a}\| a ∥ b ∥ \|\mathbf{b}\| b 分别是向量 a \mathbf{a} a b \mathbf{b} b 的长度, θ \theta θ 是它们之间的夹角。

垂直向量:点积为零,余弦值为 0。
同方向向量:点积为正且最大,余弦值为 1。
反方向向量:点积为负且最大,余弦值为 -1。
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt# 定义向量
a = np.array([3, 4])
b = np.array([4, -3])  # 与 a 垂直
c = np.array([3, 4])  # 与 a 同方向
d = np.array([-3, -4])  # 与 a 反方向# 计算点积
dot_ab = np.dot(a, b)
dot_ac = np.dot(a, c)
dot_ad = np.dot(a, d)# 计算夹角的余弦值
cos_ab = dot_ab / (np.linalg.norm(a) * np.linalg.norm(b))
cos_ac = dot_ac / (np.linalg.norm(a) * np.linalg.norm(c))
cos_ad = dot_ad / (np.linalg.norm(a) * np.linalg.norm(d))# 绘图
fig, axs = plt.subplots(1, 3, figsize=(18, 6))# 情况 1: 垂直
axs[0].quiver(0, 0, a[0], a[1], angles='xy', scale_units='xy', scale=1, color='r', label='a')
axs[0].quiver(0, 0, b[0], b[1], angles='xy', scale_units='xy', scale=1, color='b', label='b (perpendicular)')
axs[0].set_xlim(-5, 5)
axs[0].set_ylim(-5, 5)
axs[0].set_aspect('equal')
axs[0].grid(True)
axs[0].legend()
axs[0].set_title(f'Perpendicular: a·b = {dot_ab}, cosθ = {cos_ab:.2f}')# 情况 2: 同方向
axs[1].quiver(0, 0, a[0], a[1], angles='xy', scale_units='xy', scale=1, color='r', label='a')
axs[1].quiver(0, 0, c[0], c[1], angles='xy', scale_units='xy', scale=1, color='g', label='c (same direction)')
axs[1].set_xlim(-5, 5)
axs[1].set_ylim(-5, 5)
axs[1].set_aspect('equal')
axs[1].grid(True)
axs[1].legend()
axs[1].set_title(f'Same direction: a·c = {dot_ac}, cosθ = {cos_ac:.2f}')# 情况 3: 反方向
axs[2].quiver(0, 0, a[0], a[1], angles='xy', scale_units='xy', scale=1, color='r', label='a')
axs[2].quiver(0, 0, d[0], d[1], angles='xy', scale_units='xy', scale=1, color='m', label='d (opposite direction)')
axs[2].set_xlim(-5, 5)
axs[2].set_ylim(-5, 5)
axs[2].set_aspect('equal')
axs[2].grid(True)
axs[2].legend()
axs[2].set_title(f'Opposite direction: a·d = {dot_ad}, cosθ = {cos_ad:.2f}')plt.show()

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

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

相关文章

真的不用太焦虑,普通人怎么选都是错

作为一个在职场摸爬滚打多年的过来人,我想跟大家分享一些我的感悟。 这些年看着身边的年轻人们,总是为工作的选择而焦虑不已:他们担心选错了行业,误入歧途;担心选错了公司,前途渺茫。然而,我想告…

STM32 运行atof函数进入hard fault中断

目前为了糊口,做了硬件工程师,因此博客也很久没更新了。目前也只能业余时间自己玩玩喜欢的东西。 最近在研究FOC时候,发现STM32在运行“atof”函数时候,导致程序进入了hard fault中断中。 事情的起因是这样的: 我已经通过Jlink的RTT功能,替代了单片机的串口日志输出。翻阅…

裁员裁到大动脉,是一种什么体验!

大家好啊,我是董董灿。 降本增效是每个当老板的人都喜欢挂在嘴边的口头禅,尤其是行业不景气,公司发展遇到瓶颈的时候。 大部分公司降本增效的手段其实非常相似,比较容易实施的手段也就那几种。 要么搞设备自动化和流程自动化&a…

Anthropic 发布新AI模型Claude 3.5 Sonnet

🦉 AI新闻 🚀 Anthropic 发布新AI模型Claude 3.5 Sonnet 摘要:Anthropic 发布了其最强 AI 模型 Claude 3.5 Sonnet。速度更快、处理细微差别和幽默的能力提升,且支持编写、编辑和执行代码。该模型通过公司网站、iPhone 应用及 A…

【Qt6.3 基础教程 11】 深入探索列表型控件:QListWidget和QComboBox

文章目录 前言QListWidget:便捷的项目列表主要特性示例:使用QListWidget QComboBox:下拉选择的高效实现主要特性示例:使用QComboBox 结合Model/View架构使用总结 前言 在任何现代用户界面中,列表是展示项目集合的重要…

笔记-python map函数

map()函数是Python内置的高阶函数,它接收一个函数f和一个list作为参数。通过将函数f依次应用于list的每个元素,map()函数会生成一个新的list并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9],如果我们想要计算list中每个元素…

数据库系统概念(第八周 第一堂)(规范化关系数据库设计)(强推学习!!!)

目录 前言 E-R模型质量低的深层原因 数据依赖 函数依赖 主属性/非主属性 逻辑蕴含与闭包 Armstrongs Axiom 求解F闭包算法 求解属性集闭包算法 属性集闭包的作用 候选码求解理论和算法 候选码求解理论 无关属性 检验方法 正则覆盖 关系模式的设计 关系…

【深度学习】GPT-2,Language Models are Unsupervised Multitask Learners,【语言建模】

论文:https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf 文章目录 摘要引言方法2.1 训练数据集2.2 输入表示2.3 模型3. 实验3.1 语言建模3.2 Children’s Book Test3.3 LAMBADA3.4 Winograd Sc…

自动驾驶学习-车载摄像头ISP(2)

背景 智能驾驶ISP(Image Signal Processor,图像信号处理器)在自动驾驶和辅助驾驶系统中扮演着至关重要的角色。 典型的ISP通常会对摄像头输出的RAW数据先做黑电平矫正(BLC)、坏点矫正(DPC)、数…

如何DIY出专属个性化的CSDN主页?一招教你搞定!

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 💯如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…

SD3发布,送你3个ComfyUI工作流

大家好,我是每天分享AI应用的萤火君! 这几天AI绘画界最轰动的消息莫过于Stable Diffusion 3(简称SD3)的发布。SD3是一个多模态的 Diffusion Transformer 模型,其在图像质量、排版、复杂提示理解和资源效率方面具有显著…

ADC常用的十大滤波算法(C语言)

一、限幅滤波法 1、方法&#xff1a; 根据经验判断两次采样允许的最大偏差值&#xff08;设为A&#xff09; 每次检测到新值时判断&#xff1a; a. 如果本次值与上次值之差<A&#xff0c;则本次值有效 b. 如果本次值与上次值之差>A&#xff0c;则本次值无效&#xf…

QT MQTT (二)编译与集成

一、QT MQTT 提供 MQTT 客户端服务的 Qt 专用库基于标准化发布 / 订阅协议&#xff0c;用于在设备和组件之间可靠地共享数据。MQTT 是为保证状态正确性、满足高安全标准和交换最小数据而设计的协议&#xff0c;因此被广泛应用于各种分布式系统和物联网解决方案中。 Qt开发MQT…

【Oracle篇】Oracle数据库坏块处理:rman修复坏块实践与案例分析(第七篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

Python 学习 第三册 第13章 动态规划

----用教授的方式学习 目录 13.1 又见斐波那契数列 13.2 动态规划与 0/1 背包问题 13.3 动态规划与分治算法 13.1 又见斐波那契数列 一个很直观的斐波那契数列的递归实现: def fib(n): """假设n是非负整数返回第n个斐波那契数""" …

Oracle中的游标用法总结

Oracle中的游标用法总结 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 什么是游标&#xff1f; 在Oracle数据库中&#xff0c;游标是一种用于处理查询结果…

git配置ssh key

一、生成ssh公钥和私钥对 打开终端&#xff0c;输入命令&#xff0c;-C 后是git邮箱&#xff0c;在 Enter file in which to save the key (/home/my/.ssh/id_rsa): 后可以输入公钥和私钥对保存路径及文件名&#xff0c;默认是 /home/my/.ssh/id_rsa&#xff0c;其它的全部按回…

从0开始C++(五):友元函数运算符重载

友元函数 介绍 C中的友元函数是一种特殊的函数&#xff0c;它可以访问和操作类的私有成员和保护成员。友元函数可以在类的内部或外部声明和定义&#xff0c;但在其声明和定义中需要使用关键字 friend 来标识。友元函数可以是全局函数&#xff0c;也可以是其他类的成员函数。 …

使用Sentinel进行服务调用的熔断和限流管理(SpringCloud2023实战)

你好&#xff0c;这里是codetrend专栏“SpringCloud2023实战”。 本文简单介绍SpringCloud2023中使用Sentinel进行限流管理。 前言 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#…

【AI原理解析】— 盘古大模型

目录 一、模型概述 二、技术原理 1. 深度学习框架 2. 数据与训练 3. 模型架构 4. 并行训练与优化 三、创新点 四、应用场景 五、挑战与机遇 一、模型概述 定义&#xff1a;盘古大模型是由华为公司开发的一款基于深度学习和自然语言处理技术的中文AI模型。目标&#x…