当前位置: 首页 > news >正文

数学基础 -- 线性代数之正交矩阵

正交矩阵

正交矩阵是线性代数中的一个重要概念,具有许多优良的性质,在数值计算、线性变换、信号处理等领域有着广泛的应用。

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 Q1=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 Q1=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= 100010001

正交性验证

同样地,我们验证这个矩阵是否为正交矩阵。计算 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= 100010001

计算 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 Q1=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=(1111)

步骤 1:构造矩阵 Q Q Q

通过 Gram-Schmidt 正交化过程构造正交矩阵 Q Q Q

  1. 取矩阵 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=u1u1=2 1(11)=(2 12 1)

  2. 计算矩阵 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=(11)

    归一化 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=u2u2=2 1(11)=(2 12 1)

最终得到正交矩阵 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=(2 12 12 12 1)

步骤 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=(2 002 )

最终结果

通过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=(2 12 12 12 1)(2 002 )=(1111)

验证分解结果正确,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题设计推特

题目&#xff1a; 题解&#xff1a; class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…...

构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类

深度学习实践&#xff1a;构建并训练卷积神经网络&#xff08;CNN&#xff09;对CIFAR-10数据集进行分类 引言 在计算机视觉领域中&#xff0c;CIFAR-10数据集是一个经典的基准数据集&#xff0c;广泛用于图像分类任务。本文将介绍如何使用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内容算法产品介绍与模型免费下载

说明&#xff1a; 记录AI文生3D模型、图生3D模型的相关产品&#xff1b;记录其性能、功能、收费与免费方法 0.AI建模产品 Rodin MeshAnything Meshy 生成效果比较&#xff1a; Rodin效果最好、Meshy其次 1.Rodin 官网&#xff1a;gHyperHuman 支持&#xff1a;文生模型、…...

在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是一种广泛使用的计算机编程语言&#xff0c;拥有跨平台、面向对象、泛型编程的特性&#xff0c;广泛应用于企业级Web应用开发和移动应用开发。 JDK&#xff08;Java Development Kit&#xff09;是用于开发 Java 应用程序的工具包。它由以下几个主要…...

Ribbon负载均衡底层原理

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

【C语言可变参数函数的使用与原理分析】

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

【笔记】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.配置环境变量 下载后&#xff0c;解压到本地&#xff08;目录中最好不要有中文或特殊字符&#xff09; 打开【控制面板】-【系统和安全】-【系统】-【高级系统…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...