r语言中正定矩阵由于误差不正定_矩阵分解方式

2023-11-04 22:50

本文主要是介绍r语言中正定矩阵由于误差不正定_矩阵分解方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义

共轭转置 Conjugate transpose

如果我们有一个复数矩阵A:

它的转置

共轭转置

:

共轭转置也经常记为:

(这个写法跟下面的 Hermitian 定义有关),

Hermitian

Hermitian matrix 埃尔米特矩阵: 埃尔米特矩阵中每一个第i行第j列的元素都与第j行第i列的元素的复共轭。 也就是这个矩阵等于它的共轭转置。

复数我们知道

, 共轭我们也清楚

如果

是实数矩阵,并且是 Hermitian, 那么
, 这就是一个对称矩阵。一般来说,实对称矩阵我们一般就说它是实对称矩阵,不过我们知道,它也是 Hermitian。

如果我们有一个复数矩阵A,那么它需要等于它的共轭转置, 比如:

其实 Hermitian 也暗示了我们这个矩阵需要是方阵,至少我们转置之后的维度要跟原来的相等嘛。

正定 positive definite

一个 n × n 的实对称矩阵 M 是正定的,当且仅当对于所有的非零实系数向量z,都有

。其中
表示 z 的转置。

首先 实对称矩阵 M 并不一定正定的, 比如 M = -I :

对于复数,一个 n×n 的埃尔米特矩阵 M是正定的当且仅当对于每个非零的复向量z,都有

其中
表示z的共轭转置。由于 M是埃尔米特矩阵,经计算可知,对于任意的复向量z,
必然是实数,从而可以与0比较大小。因此这个定义是自洽的。

Hermitian 也当然不一定正定,我们可以有一些判定方法:

  • 矩阵M的所有的特征值
    都是正的
  • ...

正交矩阵 orthogonal matrix

  • 作为一个线性映射(变换矩阵),正交矩阵保持距离不变,所以它是一个保距映射,具体例子为旋转与镜射。
  • 行列式值为+1的正交矩阵,称为特殊正交矩阵(special orthogonal group),它是一个旋转矩阵。
  • 行列式值为-1的正交矩阵,称为瑕旋转矩阵。瑕旋转是旋转加上镜射。镜射也是一种瑕旋转。
  • 所有 n × n 的正交矩阵形成一个群 O(n),称为正交群。亦即,正交矩阵与正交矩阵的乘积也是一个正交矩阵。
  • 所有特殊正交矩阵形成一个子群SO(n),称为特殊正交群。亦即,旋转矩阵与旋转矩阵的乘积也是一个旋转矩阵。

酉矩阵 unitary matrix

酉矩阵/幺正矩阵:

就是 U 和其 共轭转置

乘积为 单位矩阵。它是 正交矩阵 在复数上的推广。
酉(汉语拼音:yǒu)为地支的第十位,其前为申、其后为戌。酉月为农历八月,酉时为二十四小时制的17:00至19:00,在方向上指正西方。五行里酉代表金,阴阳学说里酉为阴。

说实话,这个字之前还没注意过它怎么念。unitary 作为 unit 的形容词,单位的、一元的,鉴于单位矩阵这个已经被 take 了,被翻成 幺正矩阵 也和不错,也大概有一元那么个意思。翻成酉矩阵大概也是文化人才能做到吧。

酉矩阵有很多很好的性质:

  • , 酉矩阵必定可逆,且逆矩阵等于其共轭转置:
  • , 酉矩阵 U 的所有特征值
    ,其绝对值都是等于 1 的复数:
  • , 酉矩阵 U 行列式的绝对值也是 1
  • , 酉矩阵 U 不会改变两个复向量
    的点积
  • ...

正规矩阵 normal matrix

正规矩阵(英语:normal matrix)A 是与自己的共轭转置满足交换律的复系数方块矩阵,也就是说,A 满足

是 A 的共轭转置。

如果 A是实系数矩阵,则

,从而条件简化为
.

正规矩阵的概念十分重要,因为它们正是能使谱定理成立的对象:矩阵 A 正规当且仅当它可以被成

的形式。其中的
为对角矩阵,U 为酉矩阵。

总而言之,就是 正规矩阵 一定可以 特征分解/频谱分解/谱定理。

类比

不同种类的正规矩阵可以与各种复数建立对应的类比关系。比如:

  • 可逆矩阵类似于非零的复数。
  • 矩阵的共轭转置类似于复数的共轭
  • 酉矩阵类似于模等于1的复数。
  • 埃尔米特矩阵类似于实数。
  • 埃尔米特矩阵中的正定矩阵类似于正实数。
  • ....

分解

A = PLU

  • 适用:方阵
  • 分解: A = PLU, L 是 下三角阵, U 是 上三角阵,而 P 则是 permutation 行变换,单位矩阵变换可得, 如果没有行变换,A 就 直接分解成 LU. PLU 分解源自高斯消元法。

7e937bc4dd9655956e5476656708643a.png

所有的方阵都可以写成 PLU 分解的形式。

Cholesky 分解

  • 适用:方阵、hermitian、正定 positive definite
  • 分解:

7aa63b8c3d41b4aef581c772628c507c.png

A 是正定的 Hermitian阵, L 是下三角矩阵,

是 L 的共轭转置, 是一个上三角.

QR分解

  • 适用于: 列向量线性无关的矩阵 m x n, m ≥ n
  • 分解:A = QR, Q 是 m x m 的 酉矩阵, 又叫做幺正矩阵(unitary matrix), R 是一个上三角矩阵

对于方阵的 QR 分解我比较熟悉

455f6ef6d5f59c3d8984bcb1d978d618.png

如果A不是方阵的话,那么三角矩阵只会占据一部分,下面会都是0, 所以经常也这样写 QR 分解:

where R1 is an n×n upper triangular matrix, 0 is an (m − n)×n zero matrix, Q1 is m×n, Q2 is m×(m − n), and Q1 and Q2 both have orthogonal columns.

计算 QR 分解 我们可以用 Gram–Schmidt 或者 Householder reflections.

特征分解/频谱分解 Eigendecomposition / spectral decomposition.

炫云:线性代数22——特征值和特征向量​zhuanlan.zhihu.com
ddf44a69b6d92701cd6277485baac81d.png
  • 适用于: 具有线性独立特征向量(不一定是不同特征值)的方阵 A
  • 分解:

fe74dc2a9419bbcd8a43dd804f0a6b9d.png

Q 是 n x n 的矩阵, 第 i 列是 A 的 特征向量

是对角阵,其中第 i个 对角元素
, 是跟 特征向量
对应的 特征值
. 这里需要注意只有可对角化矩阵才可以作特征分解。比如
不能被对角化,也就不能特征分解。

一般来说,特征向量

一般被单位化(但这不是必须的)。未被单位化的特征向量组
也可以作为 Q 的列向量。这一事实可以这样理解: Q 中向量的长度都被
抵消了。

这里我们虽然用了 Q 这个字母,但是我们并没有说它是一个正交阵,因为之前写特征分解的时候也提到过:

对于任意矩阵,其对应于不同特征值的特征向量线性无关,但不一定正交,而对于实对称矩阵,其对应于不同特征值的特征向量是相互正交的。

特征分解很容易推导:

理论基础

由代数基本定理(Fundamental theorem of algebra)我们知道

有 N 个解。这些解的解集也就是特征值的集合,有时也称为“谱”(Spectrum)。
代数基本定理: 任何一个非零的一元n次复系数多项式,都正好有n个复数根(重根视为多个根)。

因式分解:

其中:

对每一个特征值

,我们都有下式成立:

对每一个特征方程,都会有

个线性无关的解。这
个向量与一个特征值
相对应。这里,整数
称为特征值
的几何重数(geometric multiplicity),而
称为代数重数(algebraic multiplicity)。这里需要注意的是几何重数与代数重数可以相等,但也可以不相等。一种最简单的情况是
特征向量的极大线性无关向量组中向量的个数可以由所有特征值的几何重数之和来确定。

这也是之前我们强调适用条件是 “具有线性独立特征向量(不一定是不同特征值)的方阵 A”,也就是看 n x n 的方阵 A 是否可以特征分解主要是看几何重数之和是否为 n 了。

实对称矩阵

对于任意的 n x n 实对称矩阵都有 n 个线性无关的特征向量,并且这些特征向量都可以正交单位化而得到一组正交且模为 1 的向量。所以:

其中 Q 为正交矩阵,

为对角矩阵。

fe74dc2a9419bbcd8a43dd804f0a6b9d.png

正规矩阵

一个复正规矩阵具有一组正交特征向量基,故正规矩阵可以被分解成

其中 U 是 酉矩阵。

99782c68420d993eedef047369180b29.png
特征分解对于理解线性常微分方程或线性差分方程组的解很有用。 例如,差分方程
初始条件开始
,相当于
,其中V和D是由A的特征向量和特征值形成的矩阵。 由于D是对角线,D 的 t 次幂
只是涉及将对角线上的每个元素的 t 次幂 。 这与 A 的 t的次幂相比 ,更容易实现和理解,因为A通常不是对角线。

这里就直接点出了一个 特征分解的应用场景。 解 线性常微分方程 或 线性差分方程组。

奇异值分解

  • 适用于: m x n 矩阵A
  • 分解:
    , U 和 V 都是 酉矩阵/幺正矩阵, 也就是满足
    ,
    是对角阵,对角上的元素称为A的奇异值 ,U 和 V 并不一定是唯一的。

74702f94865e9a24c1218a674bafdc18.png

这篇关于r语言中正定矩阵由于误差不正定_矩阵分解方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

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 +

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

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

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX