正定矩阵(Positive Definite Matrix)

news2024/10/23 4:34:00

正定矩阵(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.coloradmin.cn/o/1844529.html

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

相关文章

聚合大模型场景助力产业升级,WAIC 2024 容联云论坛即将开幕

前 言 Introduction 2024世界人工智能大会暨人工智能全球治理高级别会议(简称“WAIC 2024”)即将拉开帷幕,在世界人工智能大会组委会办公室的指导下,容联云将于7月6日主办容联云生成式应用与大模型商业化实践论坛。本次论坛还将获…

Bureau of Contacts延迟高、卡顿、无法联机怎么办?

Bureau of Contacts是一款最多支持四个人联机玩的恐怖游戏,由MIROWIN开发并发行,6月20日在steam推出抢先体验版,相信喜欢恐怖游戏的玩家已经等不及了。玩家会扮演一名特工,接触并调查超自然现象,游戏分为调查和驱魔两个…

C语言练习02-数组

一、求最值 已知数组元素为{33,5,22,44,55}&#xff0c;找出数组中的最大值并打印在控制台 #include<stdio.h> #include<math.h>int main() {int arr[] {33,5,22,44,55};int max arr[0];int len sizeof(arr) / sizeof(int); //注意&#xff1a;sizeof(arr)计算…

新世纪助力无锡市第二人民医院通过ITSS认证

通过江苏新世纪信息科技有限公司的咨询辅导&#xff0c;无锡市第二人民医院通过合规性审查、复核、评定审核环节&#xff0c;顺利完成ITSS通用要求的认证。近日&#xff0c;评定结果在“ITSS中国电子工业标准化技术协会信息技术服务分会”网站&#xff08;https://www.itss.cn&…

【0基础学爬虫】爬虫基础之自动化工具 Appium 的使用

大数据时代&#xff0c;各行各业对数据采集的需求日益增多&#xff0c;网络爬虫的运用也更为广泛&#xff0c;越来越多的人开始学习网络爬虫这项技术&#xff0c;K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章&#xff0c;为实现从易到难全方位覆盖&#xff0c;特设【0基础学…

推荐系统三十六式学习笔记:原理篇.矩阵分解12|如果关注排序效果,那么这个模型可以帮到你

目录 矩阵分解的不足贝叶斯个性化排序AUC构造样本目标函数训练方法 总结 矩阵分解在推荐系统中的地位非常崇高。它既有协同过滤的血统&#xff0c;又有机器学习的基因&#xff0c;可以说是非常优秀了&#xff1b;但即便如此&#xff0c;传统的矩阵分解无论是在处理显式反馈&…

图解Sieve of Eratosthenes(埃拉托斯特尼筛法)算法求解素数个数

1.素数的定义 素数又称质数。质数是指在大于1的自然数中&#xff0c;除了1和它本身以外不再有其他因数的自然数。一个大于1的自然数&#xff0c;除了1和它自身外&#xff0c;不能被其他自然数整除的数叫做质数&#xff1b;否则称为合数&#xff08;规定1既不是质数也不是合数&…

(day1)数据类型详解及DML语句入门

一、数据类型 1、整型类型 &#xff08;1&#xff09;创建数据库 CREATE DATABASE ql_linux&#xff1b; CREATE SCHEMA IF NOT EXISTS ql_linux&#xff1b; //IF NOT EXISTS如果没有表就创建 SHOW DATABASE; //查看数据库 &#xff08;2&#xff09;创建表 C…

C语言变量、指针的内存关系

1. type p ? 表示从内存地址p开始&#xff0c;开辟一段内存&#xff0c;内存大小为类型type规定的字节数&#xff0c;然后把等号右边的值写入到这段内存中。 因此&#xff0c;这块内存起点位置是p&#xff0c;结束是ptype字节数-1。 2. type* p ?表示从内存地址p开始&…

算法:分治(归并)题目练习

目录 题目一&#xff1a;排序数组 题目二&#xff1a;数组中的逆序对 题目三&#xff1a;计算右侧小于当前元素的个数 题目四&#xff1a;翻转对 题目一&#xff1a;排序数组 给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 示例 1&#xff1a; 输入&#xf…

Tailwindcss 提取组件

背景 随着项目的发展&#xff0c;您不可避免地会发现自己需要重复使用常用样式&#xff0c;以便在许多不同的地方重新创建相同的组件。这在小组件&#xff08;如按钮、表单元素、徽章等&#xff09;中最为明显。在我的项目中是图表标题样式如下&#xff1a; <div class&qu…

14-Kafka-Day03

第 5 章 Kafka 消费者 5.1 Kafka 消费方式 5.2 Kafka 消费者工作流程 5.2.1 消费者总体工作流程 一个消费者组中的多个消费者&#xff0c;可以看作一个整体&#xff0c;一个组内的多个消费者是不可能去消费同一个分区的数据的&#xff0c;要不然就消费重复了。 5.2.2 消费者…

SpringSecurity6从入门到实战之登录后操作

SpringSecurity6从入门到实战之登录后操作 上次已经了解了如何进行自定义登录页面,这次主要是详细讲解登录成功,登录之后的跳转以及包括退出登录等一系列操作.让我们来看看SpringSecurity需要如何进行配置 登录之后的跳转 定义 Spring Security 配置类 Configuration EnableW…

数据治理的七大核心技术 全面了解数据治理必读篇

在当今的数字化时代&#xff0c;数据已成为企业最宝贵的资产之一&#xff0c;其价值不仅体现在数据量的巨大&#xff0c;更在于数据的深度和宽度。随着大数据、云计算、物联网&#xff08;IoT&#xff09;和人工智能&#xff08;AI&#xff09;等技术的不断进步&#xff0c;企业…

25考研线代攻略,老师及习题册推荐!

其实很多经验贴对大家有一定的误导 网上很多人说李永乐讲的好&#xff0c;确实好&#xff0c;但是没有说听李永乐的线代需要一定的基础 于是很多人去听完李永乐&#xff0c;就懵逼了&#xff0c;这讲的很乱啊&#xff0c;听的一头雾水。 其实&#xff0c;李永乐的基础班授课…

天才简史——Diederik P. Kingma与他的Adam优化器

一、了解Diederik P. Kingma 发生日期&#xff1a;2024年6月18日 前几日&#xff0c;与实验室同门一同前往七食堂吃饭。饭间&#xff0c;一位做随机优化的同门说他看过一篇被引18w的文章。随后&#xff0c;我表示不信&#xff0c;说你不会数错了吧&#xff0c;能有1.8w次被引都…

智慧城市低空+AI视频智能监控:构建新时代安全防线

随着科技的飞速发展&#xff0c;智能监控技术已经广泛应用于各个领域&#xff0c;从城市治理到工业生产&#xff0c;从公共安全到环境监测&#xff0c;都发挥着越来越重要的作用。而在低空领域&#xff0c;AI视频智能监控方案的建设更是成为了一个热点话题。 一、低空AI视频智…

Java异常和文件

一、异常 1.定义 异常&#xff1a;异常就是代表程序出现的问题 体系结构&#xff1a; 最上层的是 Throwable 类&#xff0c;下面有两个子类&#xff1a; ① Error&#xff1a;代表系统级别的问题&#xff08;属于严重问题&#xff0c;比如&#xff1a;内存溢出&#xff09;。…

VScode基本使用

VScode下载安装&#xff1a; Visual Studio Code - Code Editing. Redefined MinGW的下载安装&#xff1a; MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net x86是64位处理器架构&#xff0c;i686是32为处理器架构。 POSIX和Win32是两种不同的操…

java文件传输小工具 java17+springboot3+thymeleaf

背景 在和同事工作中经常需要传输文件&#xff0c;但是公网传输太慢&#xff0c;业务方不是计算机专业直接用命令行沟通麻烦。 本小工具通过页面可视化方便用户使用&#xff0c;端口9090&#xff0c;启动默认展示当前登陆本机用户的桌面。 代码开源&#xff1a; https://git…