MIT线性代数笔记-第31讲-线性变换及对应矩阵

news2024/11/28 12:37:53

目录

  • 31.线性变换及对应矩阵
    • 打赏

31.线性变换及对应矩阵

线性变换相当于是矩阵的抽象表示,每个线性变换都对应着一个矩阵

例: 考虑一个变换 T T T,使得平面上的一个向量投影为平面上的另一个向量,即 T : R 2 → R 2 T:R^2 \to R^2 T:R2R2,如图:
在这里插入图片描述

​   图中有两个任意向量 v ⃗ , w ⃗ \vec{v} , \vec{w} v ,w 和一条直线,作 v ⃗ , w ⃗ \vec{v} , \vec{w} v ,w 在直线上的投影,分别记作 T ( v ⃗ ) , T ( w ⃗ ) T(\vec{v}) , T(\vec{w}) T(v ),T(w ),可以将 T T T视为一个函数或一 个映射,即输入一个向量,输出一个新向量,这就是一个变换

​   想让这种变换成为线性变换,需要满足两个式子: { T ( v ⃗ + w ⃗ ) = T ( v ⃗ + w ⃗ ) T ( c v ⃗ ) = c T ( v ⃗ ) \left \{ \begin{matrix} T(\vec{v} + \vec{w}) = T(\vec{v} + \vec{w}) \\ T(c \vec{v}) = c T(\vec{v}) \end{matrix} \right. {T(v +w )=T(v +w )T(cv )=cT(v ),即满足加法不变性和数乘不变性

​   这两个式子也可以结合为 T ( c v ⃗ + d w ⃗ ) = c T ( v ⃗ ) + d T ( w ⃗ ) T(c \vec{v} + d \vec{w}) = c T(\vec{v}) + d T(\vec{w}) T(cv +dw )=cT(v )+dT(w )

​   可以验证,此处的投影变换是一种线性变换

判断某个变换是否为线性变换并不困难,只需要判断是否满足加法不变性和数乘不变性即可

反例1: 平移整个平面,即平面中的每个向量 v ⃗ \vec{v} v 都加上一个固定的 v ⃗ 0 \vec{v}_0 v 0,设这个简单的变换为 T 0 T_0 T0,它并不是线性变换,比如考虑数乘, T 0 ( 2 v ⃗ ) = 2 v ⃗ + v ⃗ 0 ≠ 2 T 0 ( v ⃗ ) = 2 ( v ⃗ + v ⃗ 0 ) T_0(2 \vec{v}) = 2 \vec{v} + \vec{v}_0 \ne 2 T_0(\vec{v}) = 2(\vec{v} + \vec{v}_0) T0(2v )=2v +v 0=2T0(v )=2(v +v 0),不满足数乘不变性

​     还可以考虑对 0 ⃗ \vec{0} 0 的变换,如果是线性变换则需满足 T 0 ( 0 ⃗ ) = 0 ⃗ T_0(\vec{0}) = \vec{0} T0(0 )=0 ,因为对于任意变换 T T T,在数乘不变性的式子中取 v ⃗ = 0 ⃗ \vec{v} = \vec{0} v =0 c c c取任意非零数,则有 T ( c 0 ⃗ ) = T ( 0 ⃗ ) = c T ( 0 ⃗ ) T(c \vec{0}) = T(\vec{0}) = cT(\vec{0}) T(c0 )=T(0 )=cT(0 ),从而得到 T ( 0 ⃗ ) = 0 ⃗ T(\vec{0}) = \vec{0} T(0 )=0 ,而此处 T 0 ( 0 ⃗ ) = v ⃗ 0 ≠ 0 ⃗ T_0(\vec{0}) = \vec{v}_0 \ne \vec{0} T0(0 )=v 0=0 ,所以不是线性变换

反例2: 求模长,求出一个三维向量的模长,即把一个三维空间内的向量映射到一个一维空间中(或者说是一个实数),也就是 T : R 3 → R 1 T:R^3 \to R^1 T:R3R1,即 T ( v ⃗ ) = ∣ v ⃗ ∣ T(\vec{v}) = |\vec{v}| T(v )=v ,这满足 T ( 0 ⃗ ) = 0 ⃗ T(\vec{0}) = \vec{0} T(0 )=0 ,但是对于数乘不变性来说,当 c < 0 c < 0 c<0 v ⃗ ≠ 0 ⃗ \vec{v} \ne \vec{0} v =0 时, c ∣ v ⃗ ∣ c|\vec{v}| cv = − ∣ c v ⃗ ∣ = -|c\vec{v}| =cv ,所以这不是一个线性变换

正例1: 将一个二维向量逆时针旋转 4 5 ∘ 45^\circ 45,容易发现这满足数乘不变性,想象任意一个图形,把它旋转 4 5 ∘ 45^\circ 45相当于图形上的 所有点都旋转了 4 5 ∘ 45^\circ 45,所以这个变换也满足加法不变性

正例2: 左乘一个矩阵 A A A,即 T ( v ⃗ ) = A v ⃗ T(\vec{v}) = A \vec{v} T(v )=Av ,容易证明 { A ( v ⃗ + w ⃗ ) = A v ⃗ + A w ⃗ A ( c v ⃗ ) = c A v ⃗ \left \{ \begin{matrix} A(\vec{v} + \vec{w}) = A \vec{v} + A \vec{w} \\ A(c \vec{v}) = c A \vec{v} \end{matrix} \right. {A(v +w )=Av +Aw A(cv )=cAv ,所以 A A A相当于把空间中的所有向量都进行了一个变换,也就是把这个空间进行了一次变换,当 A A A为投影矩阵时,变换就是投影,当 A A A为旋转矩阵时,变换就是旋转

​     如 A = [ 1 0 0 − 1 ] A = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} A=[1001],用它乘上一个二维向量,它可以让这个向量 x x x方向上的分量不变, y y y方向上的分量变为相反数

对于任意一个线性变换 T T T,找到它对应的矩阵 A A A,对于一个确定的向量 v ⃗ 1 \vec{v}_1 v 1 ,有 T ( v ⃗ 1 ) = A v ⃗ 1 T(\vec{v}_1) = A \vec{v}_1 T(v 1)=Av 1,由结果可以看到这个变换对 v ⃗ 1 \vec{v}_1 v 1的影响,再引入一个与 v ⃗ 1 \vec{v}_1 v 1线性无关的向量 v ⃗ 2 \vec{v}_2 v 2,同样可以看到该变换对 v ⃗ 2 \vec{v}_2 v 2的影响,由于二者线性无关,所以总结两个影响就可得到该变换对二者线性组合后得到的所有向量的影响,即对以二者为基的空间的影响

所以想要知道一个变换对某个空间的影响,需要知道该变换对该空间的一组基的影响,即输入一组基就可以知道该变换对输入空间的影响

表示为代数可以这么理解:设空间中的某一向量 v ⃗ = c 1 v ⃗ 1 + ⋯ + c n v ⃗ n \vec{v} = c_1 \vec{v}_1 + \cdots + c_n \vec{v}_n v =c1v 1++cnv n,则有 T ( v ⃗ ) = c 1 T ( v ⃗ 1 ) + ⋯ + c n T ( v ⃗ n ) T(\vec{v}) = c_1 T(\vec{v}_1) + \cdots + c_n T(\vec{v}_n) T(v )=c1T(v 1)++cnT(v n)

想要找到一个线性变换对应的矩阵首先可以得到这个矩阵的行数和列数,当 T : R n → R m T:R^n \to R^m T:RnRm时,矩阵为 m m m n n n

坐标系建立在基的基础之上,一旦确定了一组基,坐标值也就随之确定,因为空间中的任意向量都可以表示为基中元素的线性组合,而坐标值就是基中元素前的系数 c 1 , c 2 , ⋯   , c n c_1 , c_2 , \cdots , c_n c1,c2,,cn,不过一般情况下我们使用的是由单位矩阵各列组成的基,所以对于坐标的理解会稍有不同

由上面的描述可知表示向量一定需要用到基,所以想要找到一个线性变换对应的矩阵需要确定两组基,比如对于变换 T : R n → R m T:R^n \to R^m T:RnRm,需要确定 R n R^n Rn的一组基 v ⃗ 1 , v ⃗ 2 , ⋯   , v ⃗ n \vec{v}_1 , \vec{v}_2 , \cdots , \vec{v}_n v 1,v 2,,v n R m R^m Rm的一组基 w ⃗ 1 , w ⃗ 2 , ⋯   , w ⃗ m \vec{w}_1 , \vec{w}_2 , \cdots , \vec{w}_m w 1,w 2,,w m,它们也分别是输入空间和输出空间的基,这样,一个以第一个基为坐标系的向量进行线性变换后即可得到以第二个基为坐标系的向量,也就是说,输入向量的坐标在线性变换后可以得到输出向量的坐标,但是这两个坐标是基于不同的基的

例: 一个投影矩阵把二维空间中的向量投影到该空间的一条直线上,先为输入空间找一组基,基的第一个元素在该直线上,基的第二个元素垂直于该直线,分别记作 v ⃗ 1 , v ⃗ 2 \vec{v}_1 , \vec{v}_2 v 1,v 2,则输入向量 v ⃗ = c 1 v ⃗ 1 + c 2 v ⃗ 2 \vec{v} = c_1 \vec{v}_1 + c_2 \vec{v}_2 v =c1v 1+c2v 2,我们把它也视为输出空间的基,即 w ⃗ 1 = v ⃗ 1 , w ⃗ 2 = v ⃗ 2 \vec{w}_1 = \vec{v}_1 , \vec{w}_2 = \vec{v}_2 w 1=v 1,w 2=v 2

​   有 T ( v ⃗ 1 ) = v ⃗ 1 , T ( v ⃗ 2 ) = 0 ⃗ T(\vec{v}_1) = \vec{v}_1 , T(\vec{v}_2) = \vec{0} T(v 1)=v 1,T(v 2)=0 ,所以 T ( v ⃗ ) = c 1 v ⃗ 1 + 0 v ⃗ 2 T(\vec{v}) = c_1 \vec{v}_1 + 0 \vec{v}_2 T(v )=c1v 1+0v 2,即 A [ c 1 c 2 ] = [ c 1 0 ] A \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} = \begin{bmatrix} c_1 \\ 0 \end{bmatrix} A[c1c2]=[c10],因而这个投影对应矩阵 A = [ 1 0 0 0 ] A = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} A=[1000]

​   可以发现 A A A为一个对角阵,并且 v ⃗ 1 , v ⃗ 2 \vec{v}_1 , \vec{v}_2 v 1,v 2刚好是 A A A的两个特征向量, A A A主对角线上的元素刚好是它的特征值

​   推广至所有 T : R n → R n T:R^n \to R^n T:RnRn可得:当要求输入空间的基和输出空间一致时,若以满足 T ( v ⃗ ′ ) = λ v ⃗ ′ T(\vec{v}^{'}) = \lambda \vec{v}^{'} T(v )=λv 的向量 v ⃗ ′ \vec{v}^{'} v 为基(当然它们要是线性无关的,并且 T T T对应的 A A A得要有 n n n个线性无关的特征向量), A A A就会成为一个特征值矩阵,并且这个特征值是该线性变换所有符合要求的 A A A的特征值,同时这组基的元素也都是这些 A A A的特征向量,也就是说这些 A A A互为相似矩阵

​   顺便一提,在物理上很经常使用特征向量作为一组基建立坐标系

如果确定了输入空间和输出空间的基,则有 v ⃗ 1 = [ 1 0 ⋮ 0 ] , v ⃗ 2 = [ 0 1 ⋮ 0 ] , ⋯   , v ⃗ n = [ 0 0 ⋮ 1 ] \vec{v}_1 = \begin{bmatrix} 1 \\ 0 \\ \vdots \\ 0 \end{bmatrix} , \vec{v}_2 = \begin{bmatrix} 0 \\ 1 \\ \vdots \\ 0 \end{bmatrix} , \cdots , \vec{v}_n = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 1 \end{bmatrix} v 1= 100 ,v 2= 010 ,,v n= 001

因为线性转化是知道的,所以 v ⃗ i \vec{v}_i v i的输出向量是知道的,所以用输出空间的基得到 v ⃗ i \vec{v}_i v i的输出向量的线性组合方式是知道的

而这个线性组合方式 T ( v ⃗ i ) = A v ⃗ i = [ a 1 , i a 2 , i ⋮ a m , i ] T(\vec{v}_i) = A \vec{v}_i = \begin{bmatrix} a_{1 , i} \\ a_{2 , i} \\ \vdots \\ a_{m , i} \end{bmatrix} T(v i)=Av i= a1,ia2,iam,i ,这样就可以求出 A A A

其实求导也是一种线性变换

例: T = d d x T = \dfrac{d}{dx} T=dxd,输入向量 v ⃗ = c 1 + c 2 x + c 3 x 2 \vec{v} = c_1 + c_2 x + c_3 x^2 v =c1+c2x+c3x2,基为 { 1 , x , x 2 } \{ 1 , x , x^2 \} {1,x,x2},则输出向量 w ⃗ = c 2 + 2 c 3 x \vec{w} = c_2 + 2 c_3 x w =c2+2c3x,基为 { 1 , x } \{ 1 , x \} {1,x}

​   可以得到此处 A = [ 0 1 0 0 0 2 ] A = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 2 \end{bmatrix} A=[001002]

正是因为求导是线性运算,所以只需要掌握一些求导法则,通过它们的线性组合就可以得到导数

由于矩阵和线性变换的对应关系,矩阵的逆即为线性变换的逆操作,矩阵的乘积即为线性变换的叠加


打赏

制作不易,若有帮助,欢迎打赏!
赞赏码

支付宝付款码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1341454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spark精讲】一文讲透Spark RDD

MapReduce的缺陷 MR虽然在编程接口的种类和丰富程度上已经比较完善了&#xff0c;但这些系统普遍都缺乏操作分布式内存的接口抽象&#xff0c;导致很多应用在性能上非常低效 。 这些应用的共同特点是需要在多个并行操 作之间重用工作数据集 &#xff0c;典型的场景就是机器学习…

Mybatis行为配置之Ⅰ—缓存

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL 文章目录 专栏精选摘要引言正文缓存配置项说明cacheEnabledlocal…

SASS循环

<template><div><button class"btn type-1">默认按钮</button><button class"type-2">主要按钮</button><button class"type-3">成功按钮</button><button class"type-4">信息…

VSCode 如何安装插件的历史版本

背景 在日常开发过程中&#xff0c;我们可能会遇到新版VSCode插件存在问题&#xff0c;无法正常工作的情况。这种情况下&#xff0c;一种可行的解决方案就是安装插件的历史版本。VSCode 插件默认安装的都是插件最新的版本&#xff0c;例如下面 vscode-styled-compoents 插件 本…

C语言之进制转换

C语言之进制转换 一、引言二、十进制与二进制、八进制、十六进制三、二进制与八进制、十六进制四、八进制与十六进制 一、引言 在C语言中&#xff0c;经常使用的整数的进制有十进制、二进制、十六进制&#xff08;在C语言中以0x或0X为前缀&#xff09;、八进制&#xff08;在C…

3D游戏角色建模纹理贴图处理

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 在本文中&#xff0c;我们将介绍 3D 纹理的基础知识&#xff0c;并讨…

使用Microsoft托管密钥的Azure信息保护云退出

由于各种原因&#xff0c;一些组织需要一个明确定义的流程来停止使用 Azure 信息保护以及对云服务的任何依赖&#xff0c;而不会在采用之前失去对其数据的访问权限 - 以便在出现需要时做好准备。 Azure 信息保护 (AIP) 为使用自带密钥 (BYOK) 的客户和使用 Microsoft 托管密钥…

uniapp:全局消息是推送,实现app在线更新,WebSocket,apk上传

全局消息是推送&#xff0c;实现app在线更新&#xff0c;WebSocket 1.在main.js中定义全局的WebSocket2.java后端建立和发送WebSocket3.通知所有用户更新 背景&#xff1a; 开发人员开发后app后打包成.apk文件&#xff0c;上传后通知厂区在线用户更新app。 那么没在线的怎么办&…

爬虫工作量由小到大的思维转变---<第三十三章 Scrapy Redis 23年8月5日后会遇到的bug)>

前言: 收到回复评论说,按照我之前文章写的: 爬虫工作量由小到大的思维转变---&#xff1c;第三十一章 Scrapy Redis 初启动/conn说明书)&#xff1e;-CSDN博客 在启动scrapy-redis后,往redis丢入url网址的时候遇到: TypeError: ExecutionEngine.crawl() got an unexpected …

ASM GaN: 行业硅基氮化镓射频和功率设备标准模型—第一部分:直流、CV和射频模型

来源&#xff1a;ASM GaN: Industry Standard Model for GaN RF and Power Devices—Part 1: DC, CV, and RF Model (IEEE TRANSACTIONS ON ELECTRON DEVICES) 19年 摘要 本文介绍了GaN&#xff08;氮化镓&#xff09;HEMT&#xff08;高电子迁移率晶体管&#xff09;的先进S…

边缘检测——PidiNet网络训练自己数据集并优化推理测试(详细图文教程)

PiDiNet 是一种用于边缘检测的算法&#xff0c;它提出了一种简单、轻量级但有效的架构。PiDiNet 采用了新 颖的像素差卷积&#xff0c;将传统的边缘检测算子集成到现代 CNN 中流行的卷积运算中&#xff0c;以增强任务性能。 在 BSDS500、NYUD 和 Multicue 上进行了大量的实验…

第四课:早期的编程方式、编程语言发展史、编程基础-语句和函数、算法入门、数据结构、阿兰图灵及软件工程

第四课&#xff1a;早期的编程方式、编程语言发展史、编程基础-语句和函数、算法入门、数据结构、阿兰图灵及软件工程 第十章&#xff1a;早期的编程方式1、早期&#xff0c;程序如何进入计算机2、早期计算机的编程3、现代计算机基础结构——冯诺依曼计算机 第十一章&#xff1…

公司创建百度百科需要哪些内容?

一个公司或是一个品牌想要让自己更有身份&#xff0c;更有知名度&#xff0c;更有含金量&#xff0c;百度百科词条是必不可少的。通过百度百科展示公司的详细信息&#xff0c;有助于增强用户对公司的信任感&#xff0c;提高企业形象。通过百度百科展示公司的发展历程、领导团队…

[BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务

1.问题描述 使用yarn调度任务时&#xff0c;在CapacityScheduler页面上单击叶队列&#xff08;或子队列&#xff09;时&#xff0c;不会显示应用程序任务信息&#xff0c;root队列可以显示任务。此外&#xff0c;FairScheduler页面是正常的。 No matching records found2.原…

web自动化(4)——POM设计重构

1. 什么是POM Page Object Model 是ui自动化测试中常见的封装方式。 原理&#xff1a;将页面封装为PO对象&#xff0c;然后通过面向对象的方式实现UI自动化 2. 封装原则 PO无需包含全部UI元素PO应当验证元素PO不应该包含断言PO不应该暴露元素 3. 怎么进行POM封装 面向对象…

<JavaEE> TCP 的通信机制(五) -- 延时应答、捎带应答、面向字节流

目录 TCP的通信机制的核心特性 七、延时应答 1&#xff09;什么是延时应答&#xff1f; 2&#xff09;延时应答的作用 八、捎带应答 1&#xff09;什么是捎带应答&#xff1f; 2&#xff09;捎带应答的作用 九、面向字节流 1&#xff09;沾包问题 2&#xff09;“沾包…

用ChatGPT挑选钻石!著名珠宝商推出-珠宝GPT

根据Salesforce最新发布的第五版《互联网购物报告》显示&#xff0c;ChatGPT等生成式AI的出现、快速发展&#xff0c;对零售行业和购物者产生了较大影响。可有效简化业务流程实现降本增效&#xff0c;并改善购物体验。 著名珠宝商James Allen为了积极拥抱生成式AI全面提升销售…

Redis 是如何执行的?

文章目录 命令执行流程步骤一&#xff1a;用户输入一条命令步骤二&#xff1a;客户端先将命令转换成 Redis 协议&#xff0c;然后再通过 socket 连接发送给服务器端步骤三&#xff1a;服务器端接收到命令步骤四&#xff1a;执行前准备步骤五&#xff1a;执行最终命令&#xff0…

HTML5+CSS3+JS小实例:网站实现一键切换暗色主题

实例:网站实现一键切换暗色主题 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge&…

V-rep(CoppeliaSim)添加相机,与python联合仿真,并使用python读取V-rep中的RGB图与深度图

目录 前言在V-rep中构建场景建立python与V-rep通信 前言 本文主要介绍了如何使用python与V-rep联合仿真&#xff0c;并用OpenCV可视化V-rep中视觉传感器所能看到的 RGB图和深度图&#xff0c;效果图如下。 在V-rep中构建场景 本文使用的V-rep版本是3.5&#xff1a; 打开V-…