椭圆的标准方程与协方差矩阵的特征值和特征向量的关系

本文主要是介绍椭圆的标准方程与协方差矩阵的特征值和特征向量的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

椭圆的标准方程与协方差矩阵的特征值和特征向量的关系

flyfish

  • 单位圆 :单位圆表示在标准正交基下的分布。

  • 椭圆 :通过协方差矩阵的特征向量和特征值变换得到的椭圆,表示数据在新的坐标系下的分布。

  • 特征向量 :红色箭头表示特征向量方向,即椭圆的主要轴方向。

  • 特征值 :红色箭头的长度表示特征值大小,即椭圆沿主要轴的伸缩程度。

import numpy as np
import matplotlib.pyplot as plt# 示例协方差矩阵
covariance_matrix = np.array([[4, 2], [2, 3]])# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eigh(covariance_matrix)# 生成单位圆
theta = np.linspace(0, 2 * np.pi, 100)
circle = np.array([np.cos(theta), np.sin(theta)])# 变换单位圆以得到椭圆
ellipsoid = eigenvectors @ np.diag(np.sqrt(eigenvalues)) @ circle# 绘制单位圆和椭圆
plt.plot(circle[0], circle[1], label='Unit Circle')
plt.plot(ellipsoid[0], ellipsoid[1], label='Ellipse')# 绘制特征向量
mean = np.array([0, 0])
for i in range(len(eigenvalues)):eigval = np.sqrt(eigenvalues[i])eigvec = eigenvectors[:, i]start, end = mean, mean + eigval * eigvec * 2  # 伸长因子plt.annotate('', xy=end, xytext=start, arrowprops=dict(facecolor='red', width=2.0))# 设置图表
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Unit Circle and Transformed Ellipse')
plt.legend()
plt.grid()
plt.axis('equal')
plt.show()

在这里插入图片描述

椭圆方程的推导

  1. 协方差矩阵的定义
    对于一个随机向量 x = ( x y ) \mathbf{x} = \begin{pmatrix} x \\ y \end{pmatrix} x=(xy),协方差矩阵 Σ \Sigma Σ 表示其分布的协方差信息: Σ = ( σ x x σ x y σ y x σ y y ) \Sigma = \begin{pmatrix} \sigma_{xx} & \sigma_{xy} \\ \sigma_{yx} & \sigma_{yy} \end{pmatrix} Σ=(σxxσyxσxyσyy)
    其中, σ x x \sigma_{xx} σxx σ y y \sigma_{yy} σyy x x x y y y 的方差 σ x y = σ y x \sigma_{xy} = \sigma_{yx} σxy=σyx x x x y y y 的协方差。

  2. 特征值和特征向量
    通过求解特征方程 det ⁡ ( Σ − λ I ) = 0 \det(\Sigma - \lambda I) = 0 det(ΣλI)=0,可以得到协方差矩阵的特征值 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2,以及对应的特征向量 v 1 \mathbf{v}_1 v1$ 和 v 2 \mathbf{v}_2 v2

  3. 椭圆方程
    椭圆在二维空间中的一般方程为: x T Σ − 1 x = 1 \mathbf{x}^T \Sigma^{-1} \mathbf{x} = 1 xTΣ1x=1
    其中, x = ( x y ) \mathbf{x} = \begin{pmatrix} x \\ y \end{pmatrix} x=(xy) Σ − 1 \Sigma^{-1} Σ1 是协方差矩阵的逆矩阵。

几何意义

  • 特征向量 :表示椭圆的主要轴方向。

  • 特征值 :表示椭圆沿特征向量方向的伸缩因子。

椭圆方程的几何解释

考虑一个标准单位圆的方程:
z T z = 1 \mathbf{z}^T \mathbf{z} = 1 zTz=1
其中, z \mathbf{z} z 是在标准正交基下的坐标向量。通过线性变换 x = L z \mathbf{x} = L \mathbf{z} x=Lz,其中 L L L 是由协方差矩阵的特征值和特征向量构成的变换矩阵,可以将单位圆变换成椭圆: x = L z \mathbf{x} = L \mathbf{z} x=Lz

变换后的方程为:
x T ( L − 1 ) T L − 1 x = 1 \mathbf{x}^T (L^{-1})^T L^{-1} \mathbf{x} = 1 xT(L1)TL1x=1
由于 Σ = L L T \Sigma = L L^T Σ=LLT,得到: x T Σ − 1 x = 1 \mathbf{x}^T \Sigma^{-1} \mathbf{x} = 1 xTΣ1x=1

这篇关于椭圆的标准方程与协方差矩阵的特征值和特征向量的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077301

相关文章

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

hdu 6198 dfs枚举找规律+矩阵乘法

number number number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description We define a sequence  F : ⋅   F0=0,F1=1 ; ⋅   Fn=Fn

C 标准库 - `<float.h>`

C 标准库 - <float.h> 概述 <float.h> 是 C 标准库中的一个头文件,它定义了与浮点数类型相关的宏。这些宏提供了关于浮点数的属性信息,如精度、最小和最大值、以及舍入误差等。这个头文件对于需要精确控制浮点数行为的程序非常有用,尤其是在数值计算和科学计算领域。 主要宏 <float.h> 中定义了许多宏,下面列举了一些主要的宏: FLT_RADIX:定义了浮点数的基数。

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

《C++标准库》读书笔记/第一天(C++新特性(1))

C++11新特性(1) 以auto完成类型自动推导 auto i=42; //以auto声明的变量,其类型会根据其初值被自动推倒出来,因此一定需要一个初始化操作; static auto a=0.19;//可以用额外限定符修饰 vector<string> v;  auto pos=v.begin();//如果类型很长或类型表达式复杂 auto很有用; auto l=[] (int

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理