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

线性代数本质系列(二)矩阵乘法与复合线性变换,行列式,三维空间线性变换

本系列文章将从下面不同角度解析线性代数的本质,本文是本系列第二篇

向量究竟是什么?
向量的线性组合,基与线性相关
矩阵与线性相关
矩阵乘法与复合线性变换
三维空间中的线性变换
行列式

逆矩阵,列空间,秩与零空间
克莱姆法则
非方阵
点积与对偶性
叉积
以线性变换眼光看叉积
基变换
特征向量与特征值
抽象向量空间
快速计算二阶矩阵特征值
张量,协变与逆变和秩

文章目录

  • 矩阵乘法与复合线性变换
  • 三维空间中的线性变换
  • 行列式

矩阵乘法与复合线性变换

我们已经知道矩阵是一种线性变换,现在对基向量连续施加两种线性变换,例如,先旋转,再剪切,其实,这在整体上可以看作是一种新的变换,这个新的变换被称为前两种独立变换的“复合变换”。
在这里插入图片描述

这个复合变换的矩阵可以通过追踪基向量的坐标得到,如上图所示,变换后的 i ⃗ \vec{i} i 坐标 [ 1 1 ] \begin{bmatrix} 1\\ 1 \end{bmatrix} [11],变换后的 j ⃗ \vec{j} j 坐标 [ − 1 0 ] \begin{bmatrix} -1\\ 0 \end{bmatrix} [10],那么该复合变换矩阵就可以表示为: [ 1 − 1 1 0 ] \begin{bmatrix} 1 & -1\\ 1 & 0 \end{bmatrix} [1110],当我们求一个向量经过复合变换后的坐标时,可以通过下图右边公式那样直接使用复合变换矩阵,而不需要像下图左边那样对向量连续施加两次单独的变换。
Alt

更一般地,对于矩阵乘法,我们就有了新的认识:他的几何意义是先施加一个变换,再施加另一个变换,施加顺序从右到左,顺序不同得到的结果也不同。

在这里插入图片描述

推广到更一般地数学含义: g ( f ( x ) ) g( f( x)) g(f(x))

根据前面章节学习到的知识,要想求线性变换对向量的作用,首先要得到变换后的基向量的坐标,让我们来看一个例子,假设连续施加两个线性变换 M 1 M_{1} M1 M 2 M_{2} M2
在这里插入图片描述

要想跟踪 i ⃗ \vec{i} i 的去向,先看 M 1 M_{1} M1的第一列,这是经过 M 1 M_{1} M1变换后 i ⃗ \vec{i} i 首先到达的地方: [ e g ] \begin{bmatrix} e\\ g \end{bmatrix} [eg],然后新的 i ⃗ \vec{i} i 要经过 M 2 M_{2} M2的变换后到达最终目的地:
在这里插入图片描述

该结果作为复合矩阵的第一列, j ⃗ \vec{j} j 经过同样的变换过程到达最终目的地,结果为复合变换矩阵第二列,复合变换的最终结果为:
在这里插入图片描述

看,这不就是课堂上老师教的矩阵乘法计算规则嘛,只不过我们是从几何的角度推出来的。

大家可以从几何的角度来自行分析一下矩阵乘法的法则:

交换律: M 1 M 2 ≠ M 2 M 1 M_{1} M_{2} \neq M_{2} M_{1} M1M2=M2M1

结合率:(AB)C=A(BC)

三维空间中的线性变换

前面一直在讨论二维情况,也就是将二维向量映射成二维向量,其实,只要掌握了二维线性变换的核心本质,就能轻松的扩展到更高维的空间中。
二维线性变换

三维空间变换以三维向量为输入,以三维向量为输出,和二维向量一样,一个线性变换是在操纵三维空间中所有的点,变换后保持空间中网格线等距且原点不变。
在这里插入图片描述

与二维一样,三维线性变换也是由基向量的去向完全决定,只不过基向量由 i ⃗ \vec{i} i j ⃗ \vec{j} j 变成了 i ⃗ \vec{i} i j ⃗ \vec{j} j , k ⃗ \vec{k} k ,例如,我们得到变换后三个基向量的坐标,那么由三个新的基向量组成矩阵就是三维线性变换矩阵 [ 1 1 1 0 1 0 − 1 0 1 ] \begin{bmatrix} 1 & 1 & 1\\ 0 & 1 & 0\\ -1 & 0 & 1 \end{bmatrix} 101110101

在这里插入图片描述

要想计算一个向量经过上面的三维变换后的新坐标,同样可以参照二维空间的计算方式,结果向量是基向量的线性组合。

在这里插入图片描述
在这里插入图片描述

同理两个三维矩阵的相乘也可以合并成一个复合变换矩阵,三维变换在计算机图形学中有着广泛的应用。
在这里插入图片描述

三维矩阵的乘法同样遵循二维矩阵乘法的思路。

行列式

前面我们从几何的角度对线性变换有了很直观的认识,其中有的线性变换对空间向外拉伸,有的则是将空间向内挤压。
 向内挤压
向内挤压

  向外拉伸
向外拉伸

有一种方法对于理解这些线性变换很有用,那就是准确测量向内挤压了多少,向外拉伸了多少,更具体地讲就是计算出一个区域增大或减少的比例。

让我们来看一个例子,假设一个线性变换矩阵 [ 3 0 0 2 ] \begin{bmatrix} 3 & 0\\ 0 & 2 \end{bmatrix} [3002],变换前基向量形成的四边形面积为1。

在这里插入图片描述

变换后,如下图,基向量形成一个2*3的矩形,面积为6

在这里插入图片描述

所以我们说这个变换将基向量形成的方格拉伸了6倍,根据线性变换的性质,如下图,所有可形成的区域都被拉伸了同样的大小。

在这里插入图片描述

现在,我们要抛出一个重磅信息:这个面积的变化的比例值就是该线性变换矩阵的行列式,这就是行列式的几何意义。

在这里插入图片描述

如果行列式值大于1,则代表该线性变换矩阵将一个区域进行拉伸,大于0且小于1的数代表缩小,负数代表反方向缩放。

注意,如果一个线性变换矩阵的行列式为0,则代表该变换将一个区域压缩成了一条线或者是一个点,从几何意义上讲,也就是说该变换将空间压缩到了更小的维度上,这在我们后面判断线性方程组是否有解提供了重要依据。

在这里插入图片描述

同理,三维线性变换的行列式代表的则是体积的变换比例,如下图,一个以初始基向量形成的111的立方体经过线性变换后该体积变成了如下图的大小。
在这里插入图片描述

三维变换矩阵的行列式为0,代表空间被压缩成了一个面,或者一个点,如果行列式是负数,说明空间定向已经发生改变,不能用右手定则描述基向量之间的关系。

前面说了行列式的几何意义,那如何求一个矩阵的行列式呢?
在这里插入图片描述

上图是一个行列式的计算公式,那它的几何意义是什么呢?如下图,假设给定一个特殊矩阵 [ a 0 0 d ] \begin{bmatrix} a & 0\\ 0 & d \end{bmatrix} [a00d] i ⃗ \vec{i} i 被缩放了a倍, j ⃗ \vec{j} j 被缩放了d倍,变换前后面积缩放了ad倍,这正符合行列式计算公式的结果。

在这里插入图片描述

前面我们给出了一个特殊的例子,但推广到更一般的矩阵,也是满足上面公式的。
在这里插入图片描述

相关文章:

线性代数本质系列(二)矩阵乘法与复合线性变换,行列式,三维空间线性变换

本系列文章将从下面不同角度解析线性代数的本质,本文是本系列第二篇 向量究竟是什么? 向量的线性组合,基与线性相关 矩阵与线性相关 矩阵乘法与复合线性变换 三维空间中的线性变换 行列式 逆矩阵,列空间,秩与零空间 克…...

Linux-CentOS重要模块

软件包管理器:CentOS使用Yum(Yellowdog Updater, Modified)作为其包管理器。Yum提供了一种方便的方式来安装、更新和删除软件包,并自动解决依赖关系。 RPM:RPM(RPM Package Manager)是CentOS中…...

posix定时器的使用

POSIX定时器是基于POSIX标准定义的一组函数,用于实现在Linux系统中创建和管理定时器。POSIX定时器提供了一种相对较高的精度,可用于实现毫秒级别的定时功能。 POSIX定时器的主要函数包括: timer_create():用于创建一个定时器对象…...

安科瑞煤矿电力监控系统的研究与应用

摘要:作为一个巨大的能源消耗国家,我国每年对煤炭的市场需求巨大。煤炭作为我国点力气和供暖企业的重要原材料,煤矿的开采过程存在着难以消除的风险,我国的煤炭安全问题长期困扰着相关企业和监督部门,也受到社会的广泛…...

高教社杯数模竞赛特辑论文篇-2023年A题:基于机理分析法的定日镜场优化设计模型(附获奖论文及MATLAB代码实现)

目录 摘要 一、 问题重述 1 . 1 问题背景 1 . 2 问题要求 二、 问题分析...

缩点+图论路径网络流:1114T4

http://cplusoj.com/d/senior/p/SS231114D 重新梳理一下题目 我们先建图 x → y x\to y x→y,然后对点分类:原串出现点,原串未出现点。 假如我们对一个原串出现点进行了操作,那么它剩余所有出边我们立刻去操作必然没有影响。所…...

Go语言fyne开发桌面应用程序-环境安装

环境安装 参考https://developer.fyne.io/started/#prerequisites网站 之前的文章介绍了如何安装GO语言这里不在叙述 msys2 首先安装msys2,https://www.msys2.org/ 开始菜单打开MSYS2 执行 $ pacman -Syu$ pacman -S git mingw-w64-x86_64-toolchain注意&#…...

JavaWeb——CSS3的使用

目录 1. CSS概述 2. CSS引入方式 3. CSS颜色显示 4. CSS选择器 4.1. 元素(标签)选择器 4.2. id选择器 4.3. 类选择器 4.4. 三者优先级 5. 盒子模型 1. CSS概述 CSS,全称为“Cascading Style Sheets”,中文译为“层叠样式…...

AR导览小程序开发方案

一、背景介绍 随着科技的不断发展,虚拟现实(VR)和增强现实(AR)技术逐渐被应用于各个领域。其中,AR导览小程序作为一种新兴的导览方式,以其独特的视觉体验和互动性受到了广泛的关注。AR导览小程…...

继承、多态

复习 需求: 编写一个抽象类:职员Employee,其中定义showSalary(int s)抽象方法;编写Employee的子类,分别是销售员Sales和经理Manager,分别在子类中实现对父类抽象方法的重写,并编写测试类Test查看输出结果 package cn.…...

贪吃蛇小游戏代码

框架区 package 结果;import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.util.ArrayList; import java.util.List; import java.util.Random;import javax.s…...

Python数据容器(字典)

字典 1.字典的定义2.字典数据的获取3.字典的嵌套4.嵌套字典的内容获取5.字典的常用操作6.常用操作总结7.遍历字典8.练习 1.字典的定义 同样使用{},不过存储的元素是一个一个的:键值对,语法如下 # 定义字典字面量 {key:value,key:value,...,…...

餐饮展示小程序的作用是什么

餐饮是市场重要的组成部分,尤其是我国八大菜系,各类细分菜数量非常多,并分布在全国,各类大小品牌餐饮商家数量也非常庞大,每个城市的商业街都是一个接一个餐厅,酒类、酒店多样。 餐饮行业经营痛点比较明显…...

33、Flink 的Table API 和 SQL 中的时区

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...

Origin:科研绘图与学术图表绘制从入门到精通

文章目录 一、引言二、安装和启动Origin三、创建和保存图表四、深入学习Origin绘图功能五、应用Origin进行科研绘图和学术图表绘制六、总结与建议《Origin科研绘图与学术图表绘制从入门到精通》亮点内容简介作者简介目录获取方式 一、引言 Origin是一款功能强大的数据分析和科…...

腾讯云标准型SA4服务器AMD处理器性能测评

腾讯云服务器标准型SA4实例CPU采用AMD处理器,新一代腾讯云自研星星海双路服务器,搭配AMD EPYC Genoa处理器,内存采用最新 DDR5,默认网络优化,最高内网收发能力达4500万pps,最高内网带宽可支持100Gbps。阿腾…...

LeetCode 2656. K 个元素的最大和:一次遍历(附Python一行版代码)

【LetMeFly】2656.K 个元素的最大和:一次遍历(附Python一行版代码) 力扣题目链接:https://leetcode.cn/problems/maximum-sum-with-exactly-k-elements/ 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操…...

element-ui中Form表单使用自定义验证规则

data() {const validatePass (rule, value, callback) > {if (value.length < 3) {callback(new Error("密码不能小于3位"));} else {callback();}};return {rules: {password: [{ required: true, trigger: "blur", validator: validatePass },]}}…...

android源码添加adb host支持

本文开始参考在 android 上使用 adb client-CSDN博客&#xff0c;在shell中已经可以使用。但当我想在app中用 String command "/data/local/tmp/adb -s 307ef90dc8128844 shell ls";StringBuilder output new StringBuilder();try {Process process Runtime.getR…...

学习c#的第二天

目录 C# 基本语法 using 关键字 class 关键字 C# 中的注释 成员变量 成员函数 类的实例化 标识符 C# 关键字 C# 基本语法 C# 是一种面向对象的编程语言。在面向对象的程序设计方法中&#xff0c;程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型&…...

CodeWhisperer 使用经验分享

今天给大家分享一下 Amazon CodeWhisperer 编程工具&#xff08;免费哦&#xff09;&#xff0c;使用这个软件后我的编码质量提升不少&#xff0c;给大家分享一下我的经验。希望大家支持哦。 Amazon CodeWhisperer 是亚⻢逊出品的一款基于机器学习的 AI 编程助手&#xff0c;可…...

数据结构与算法之美学习笔记:18 | 散列表(上):Word文档中的单词拼写检查功能是如何实现的?

目录 前言散列思想散列函数散列冲突解答开篇 前言 本节课程思维导图&#xff1a; Word 的单词拼写检查功能&#xff0c;虽然很小但却非常实用。你有没有想过&#xff0c;这个功能是如何实现的呢&#xff1f;其实啊&#xff0c;一点儿都不难。只要你学完今天的内容&#xff0c;…...

解决java发邮件错误javax.net.ssl.SSLHandshakeException: No appropriate protocol

java发送邮件时报以下错误信息&#xff1a; javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher [com.bm6api.controller.v1.AppUserController] - sendLoginAuthCodeMail 发送登录验证码邮件 : {"code":200,"inf…...

杭电oj 2035 人见人爱A^B C语言

#include<stdio.h>void main() {int a, b, i,num;while (~scanf_s("%d%d", &a, &b) && (a ! 0 || b ! 0)){num a;for (i 1; i < b; i){num * a;num % 1000;}printf("%d\n", num);} }...

[量化投资-学习笔记017]Python+TDengine从零开始搭建量化分析平台-异常处理

一个完成的程序一定少不了对异常的处理&#xff0c;以及错误日志的输出。 在之前章节的程序中对这两部分没有进行说明,以下用两个单独的章节进行介绍。 [量化投资-学习笔记016]PythonTDengine从零开始搭建量化分析平台-日志输出 异常处理 Python 通常使用 try .. except 和防…...

Mysql中的索引与事务和B树的知识补充

索引与事务和B树的知识补充 一.索引1.概念2.作用3.使用场景4.使用 二.事务1.为什么使用事务2.事务的概念3.使用3.1脏读问题3.2不可重复读3.3 幻读问题3.4解决3.5 使用代码 三.B树的知识补充1.B树2.B树 一.索引 1.概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记…...

2024上海国际智能驾驶技术展览会(自动驾驶展)

2024上海国际智能驾驶技术展览会 2024 Shanghai International Autonomous driving Expo 时间&#xff1a;2024年3月26-28日 地点&#xff1a;上海跨国采购会展中心 随着科技的飞速发展&#xff0c;智能驾驶已经成为了汽车行业的重要趋势。在这个时代背景下&#xff0c;汽车不…...

嵌入式Linux开发,NFS文件系统挂载

在嵌入式linix的开发中&#xff0c;经常会需要在pc端和板端互相传输文件&#xff0c;优先可选择ftp传输&#xff0c;但是有些嵌入式板端不支持&#xff0c;只能使用nfs这种方式&#xff0c;即pc端作为服务端&#xff0c;板端作为客户端&#xff0c;将pc端的某个文件夹挂载到板端…...

什么是3D建模中的“高模”和“低模”?

3D建模中什么是高多边形和低多边形&#xff1f; 高多边形建模和低多边形建模之间的主要区别正如其名称所暗示的那样&#xff1a;您是否在模型中使用大量多边形或少量多边形。 然而&#xff0c;在决定每个模型的细节和多边形级别时&#xff0c;还需要考虑其他事项。最值得注意的…...

python数据结构与算法-04_队列

队列和栈 前面讲了线性和链式结构&#xff0c;如果你顺利掌握了&#xff0c;下边的队列和栈就小菜一碟了。因为我们会用前两章讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似&#xff0c;队列是先进先出结构(FIFO, first in first out)&#xff0c; 栈是…...