数学基础 -- 线性代数之正交矩阵
正交矩阵
正交矩阵是线性代数中的一个重要概念,具有许多优良的性质,在数值计算、线性变换、信号处理等领域有着广泛的应用。
1. 正交矩阵的定义
一个 n × n n \times n n×n 的方阵 Q Q Q 如果满足以下条件:
Q T Q = Q Q T = I Q^T Q = Q Q^T = I QTQ=QQT=I
其中, Q T Q^T QT 是矩阵 Q Q Q 的转置矩阵, I I I 是 n × n n \times n n×n 的单位矩阵,则称矩阵 Q Q Q 是正交矩阵。
换句话说,正交矩阵的行向量(或列向量)是标准正交基,即:
- 各行向量(或列向量)的长度为1(标准化)。
- 不同行向量(或列向量)之间是两两正交的,即它们的内积为零。
2. 正交矩阵的性质
2.1 保持内积和长度
正交矩阵在进行线性变换时,不改变向量的内积和长度。即向量 v \mathbf{v} v 通过正交矩阵 Q Q Q 变换后,变换后的向量 Q v Q\mathbf{v} Qv 的长度与原向量相同。
2.2 逆矩阵等于转置矩阵
正交矩阵的逆矩阵与它的转置矩阵相同,即:
Q − 1 = Q T Q^{-1} = Q^T Q−1=QT
2.3 保持正交性
正交矩阵乘以另一个正交矩阵,结果仍然是正交矩阵。如果 Q 1 Q_1 Q1 和 Q 2 Q_2 Q2 都是正交矩阵,那么 Q 1 Q 2 Q_1 Q_2 Q1Q2 也是正交矩阵。
2.4 行列式的绝对值为1
正交矩阵的行列式为 ± 1 \pm 1 ±1:
∣ det ( Q ) ∣ = 1 |\text{det}(Q)| = 1 ∣det(Q)∣=1
3. 正交矩阵的应用
3.1 旋转与反射变换
在几何中,正交矩阵常用于表示旋转和反射变换。例如,在二维空间中,一个旋转矩阵可以表示为:
Q = ( cos θ − sin θ sin θ cos θ ) Q = \begin{pmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} Q=(cosθsinθ−sinθcosθ)
3.2 QR分解
正交矩阵在QR分解中扮演重要角色。QR分解将矩阵 A A A 分解为一个正交矩阵 Q Q Q 和一个上三角矩阵 R R R 的乘积,即 A = Q R A = QR A=QR。
3.3 信号处理与数据压缩
在信号处理和数据压缩中,正交矩阵用于构造正交基,比如傅里叶变换矩阵和小波变换矩阵。
正交矩阵的例子
例子1:二维旋转矩阵
考虑一个二维旋转矩阵,它表示在平面上旋转一个向量的变换。假设旋转角度为 θ \theta θ,则旋转矩阵可以表示为:
Q = ( cos θ − sin θ sin θ cos θ ) Q = \begin{pmatrix} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{pmatrix} Q=(cosθsinθ−sinθcosθ)
正交性验证
我们验证这个矩阵是否为正交矩阵。正交矩阵的定义要求 Q T Q = I Q^T Q = I QTQ=I,我们计算 Q T Q^T QT 和 Q T Q Q^T Q QTQ:
首先,求 Q Q Q 的转置矩阵 Q T Q^T QT:
Q T = ( cos θ sin θ − sin θ cos θ ) Q^T = \begin{pmatrix} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{pmatrix} QT=(cosθ−sinθsinθcosθ)
接下来,计算 Q T Q Q^T Q QTQ:
Q T Q = ( cos 2 θ + sin 2 θ 0 0 cos 2 θ + sin 2 θ ) = ( 1 0 0 1 ) = I Q^T Q = \begin{pmatrix} \cos^2 \theta + \sin^2 \theta & 0 \\ 0 & \cos^2 \theta + \sin^2 \theta \end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} = I QTQ=(cos2θ+sin2θ00cos2θ+sin2θ)=(1001)=I
因此, Q Q Q 是一个正交矩阵。
性质
- 保持向量长度:向量经过矩阵 Q Q Q 的旋转变换后,长度不变。
- 逆矩阵为转置矩阵:由于 Q T Q = I Q^T Q = I QTQ=I,我们有 Q − 1 = Q T Q^{-1} = Q^T Q−1=QT。
例子2:三维反射矩阵
考虑一个三维反射矩阵,它表示相对于某一平面的反射。假设我们要相对于 x x x- y y y 平面进行反射,则反射矩阵可以表示为:
Q = ( 1 0 0 0 1 0 0 0 − 1 ) Q = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end{pmatrix} Q= 10001000−1
正交性验证
同样地,我们验证这个矩阵是否为正交矩阵。计算 Q T Q^T QT 和 Q T Q Q^T Q QTQ:
转置矩阵 Q T Q^T QT 为:
Q T = ( 1 0 0 0 1 0 0 0 − 1 ) Q^T = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end{pmatrix} QT= 10001000−1
计算 Q T Q Q^T Q QTQ:
Q T Q = ( 1 0 0 0 1 0 0 0 1 ) = I Q^T Q = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} = I QTQ= 100010001 =I
因此, Q Q Q 是一个正交矩阵。
性质
- 保持向量长度:向量经过矩阵 Q Q Q 的反射变换后,长度不变。
- 逆矩阵为转置矩阵: Q − 1 = Q T Q^{-1} = Q^T Q−1=QT。
QR分解的例子
例子:QR分解
我们选择一个简单的 2 × 2 2 \times 2 2×2 矩阵 A A A 进行QR分解。假设矩阵 A A A 为:
A = ( 1 1 1 − 1 ) A = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} A=(111−1)
步骤 1:构造矩阵 Q Q Q
通过 Gram-Schmidt 正交化过程构造正交矩阵 Q Q Q:
-
取矩阵 A A A 的第一列 a 1 \mathbf{a}_1 a1 作为向量 u 1 \mathbf{u}_1 u1:
u 1 = ( 1 1 ) \mathbf{u}_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} u1=(11)
归一化 u 1 \mathbf{u}_1 u1 得到 q 1 \mathbf{q}_1 q1:
q 1 = u 1 ∥ u 1 ∥ = 1 2 ( 1 1 ) = ( 1 2 1 2 ) \mathbf{q}_1 = \frac{\mathbf{u}_1}{\|\mathbf{u}_1\|} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{pmatrix} q1=∥u1∥u1=21(11)=(2121)
-
计算矩阵 A A A 的第二列 a 2 \mathbf{a}_2 a2 在 q 1 \mathbf{q}_1 q1 上的投影,并减去这部分,得到 u 2 \mathbf{u}_2 u2:
u 2 = a 2 − ( q 1 T a 2 ) q 1 = ( 1 − 1 ) \mathbf{u}_2 = \mathbf{a}_2 - (\mathbf{q}_1^T \mathbf{a}_2) \mathbf{q}_1 = \begin{pmatrix} 1 \\ -1 \end{pmatrix} u2=a2−(q1Ta2)q1=(1−1)
归一化 u 2 \mathbf{u}_2 u2 得到 q 2 \mathbf{q}_2 q2:
q 2 = u 2 ∥ u 2 ∥ = 1 2 ( 1 − 1 ) = ( 1 2 − 1 2 ) \mathbf{q}_2 = \frac{\mathbf{u}_2}{\|\mathbf{u}_2\|} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} \end{pmatrix} q2=∥u2∥u2=21(1−1)=(21−21)
最终得到正交矩阵 Q Q Q 为:
Q = ( 1 2 1 2 1 2 − 1 2 ) Q = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} Q=(212121−21)
步骤 2:计算矩阵 R R R
矩阵 R R R 是通过计算 Q T A Q^T A QTA 得到的:
R = Q T A = ( 2 0 0 2 ) R = Q^T A = \begin{pmatrix} \sqrt{2} & 0 \\ 0 & \sqrt{2} \end{pmatrix} R=QTA=(2002)
最终结果
通过QR分解,我们将矩阵 A A A 分解为正交矩阵 Q Q Q 和上三角矩阵 R R R 的乘积:
A = Q R = ( 1 2 1 2 1 2 − 1 2 ) ( 2 0 0 2 ) = ( 1 1 1 − 1 ) A = QR = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} \begin{pmatrix} \sqrt{2} & 0 \\ 0 & \sqrt{2} \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} A=QR=(212121−21)(2002)=(111−1)
验证分解结果正确,QR分解成功。
相关文章:
数学基础 -- 线性代数之正交矩阵
正交矩阵 正交矩阵是线性代数中的一个重要概念,具有许多优良的性质,在数值计算、线性变换、信号处理等领域有着广泛的应用。 1. 正交矩阵的定义 一个 n n n \times n nn 的方阵 Q Q Q 如果满足以下条件: Q T Q Q Q T I Q^T Q Q Q^T …...
PostgreSQL 17即将发布,新功能Top 3
按照计划,PostgreSQL 17 即将在 2024 年 9 月 26 日发布,目前已经发布了第一个 RC 版本,新版本的功能增强可以参考 Release Notes。 本文给大家分享其中 3 个重大的新增功能。 MERGE 语句增强 MERGE 语句是 PostgreSQL 15 增加的一个新功能…...

心觉:别再做单线程的打工人!换个思路突破
Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松搞定人生挑战,实现心中梦想! 挑战日更写作161/1000(完整记录在下面) 公门洞开纳百川 众心逐梦越千山 号召引领潜力绽 心觉潜意识无间 想让财富翻个2倍…...

深度学习-用神经网络NN实现足球大小球数据分析软件
文章目录 前言一、 数据收集1.1特征数据收集代码实例 二、数据预处理清洗数据特征工程: 三、特征提取四、模型构建五、模型训练与评估总结 前言 预测足球比赛走地大小球(即比赛过程中进球总数是否超过某个预设值)的深度学习模型是一个复杂但有…...

linux 9系统分区扩容
1.可以看到我的是9.2的系统,系统分区:/dev/mapper/rl-root 83G 8.0G 75G 10% / 2.接下来,我们新增一块新的硬盘,而不是直接对这个硬盘的基础上再扩容。 关机,加30G硬盘,再开机 fdisk -l fdisk /dev/…...

Solidity初体验
一、概念知识 什么是智能合约? 智能合约是仅在满足特定条件时才在区块链上部署和执行的功能,无需任何第三方参与。 由于智能合约本质上是不可变的和分布式的,因此它们在编写和部署后无法修改或更新。此外,分布式的意义在于任何…...

大模型笔记01--基于ollama和open-webui快速部署chatgpt
大模型笔记01--基于ollama和open-webui快速部署chatgpt 介绍部署&测试安装ollama运行open-webui测试 注意事项说明 介绍 近年来AI大模型得到快速发展,各种大模型如雨后春笋一样涌出,逐步融入各行各业。与之相关的各类开源大模型系统工具也得到了快速…...
html前段小知识点
1. 什么是HTML? 超文本标记语言是一种 用于创建网页的标准标记语言 HTML 文档包含了HTML 标签及文本内容 也叫文档1.什么是css? CSS (层叠样式表),是一种用来为结构化文档添加样式的计算机语言,CSS 文件扩展名为 .css。 可以设…...

AD7606工作原理以及FPGA控制验证(串行和并行模式)
文章目录 一、AD7606介绍二、AD7606采集原理2.1 AD7606功能框图2.2 AD7606管脚说明 三、AD7606并行模式时序分析以及实现3.1 并行模式时序图3.2 并行模式时序要求3.3 代码编写3.4 仿真观察 四、AD7606串行模式时序分析以及实现4.1 串行模式时序图4.2 串行模式时序要求4.3 代码编…...

如何查看Pod的Container资源占用情况
云原生学习路线导航页(持续更新中) 方法一:直接查看pod的资源占用 kubectl top pods ${pod-name} -n ${ns} 方法二:通过运行的进程,查看pod的某个容器资源占用 1.找到pod所在node容器号:kubectl descri…...

WordPress上可以内容替换的插件
插件下载地址:WordPress内容替换插件 – 果果开发 类型 替换的类型:文章、自定义文章类型、分类、标签、媒体库、页面、评论、数据库表,不同的类型可以替换不同的字段。 替换字段 替换的字段,哪些字段内容需要替换。除了数据库…...

C++ | Leetcode C++题解之第355题设计推特
题目: 题解: class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…...

构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类 引言 在计算机视觉领域中,CIFAR-10数据集是一个经典的基准数据集,广泛用于图像分类任务。本文将介绍如何使用PyTorch框架构建一个简单的卷积神经…...
flowable 根据xml 字符串生成流程图
//获取xml InputStream stream repositoryService.getProcessModel(processDefinitionId); String result IOUtils.toString(stream, StandardCharsets.UTF_8); // 创建 XMLInputFactory XMLInputFactory factory XMLInputFactory.newInstance(); // 从字符…...

AI建模——AI生成3D内容算法产品介绍与模型免费下载
说明: 记录AI文生3D模型、图生3D模型的相关产品;记录其性能、功能、收费与免费方法 0.AI建模产品 Rodin MeshAnything Meshy 生成效果比较: Rodin效果最好、Meshy其次 1.Rodin 官网:gHyperHuman 支持:文生模型、…...

在Go中迅速使用RabbitMQ
文章目录 1 认识1.1 MQ分类1.2 安装1.3 基本流程 2 [Work模型](https://www.rabbitmq.com/tutorials/tutorial-two-go#preparation)3 交换机3.1 fanout3.2 direct3.3 [topic](https://www.rabbitmq.com/tutorials/tutorial-five-go) 4 Golang创建交换机/队列/Publish/Consume/B…...

Windows JDK安装详细教程
一、关于JDK 1.1 简介 Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 JDK(Java Development Kit)是用于开发 Java 应用程序的工具包。它由以下几个主要…...

Ribbon负载均衡底层原理
springcloude服务实例与服务实例之间发送请求,首先根据服务名注册到nacos,然后发送请求,nacos可以根据服务名找到对应的服务实例。 SpringCloudRibbon的底层采用了一个拦截器,拦截了openfeign发出的请求,对地址做了修…...

【C语言可变参数函数的使用与原理分析】
文章目录 1 前言2 实例2.1实例程序2.2程序执行结果2.3 程序分析 3 补充4 总结 1 前言 在编程过程中,有时会遇到需要定义参数数量不固定的函数的情况。 C语言提供了一种灵活的解决方案:变参函数。这种函数能够根据实际调用时的需求,接受任意…...

【笔记】Java EE应用开发环境配置(JDK+Maven+Tomcat+MySQL+IDEA)
一、安装JDK17 1.下载JDK17 https://download.oracle.com/java/17/archive/jdk-17.0.7_windows-x64_bin.zip 2.配置环境变量 下载后,解压到本地(目录中最好不要有中文或特殊字符) 打开【控制面板】-【系统和安全】-【系统】-【高级系统…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...