【线性代数的本质】矩阵与线性变换
线性变化要满足两点性质:
- 直线(连续的点)在变换后还是直线。
- 原点不变。
假设有坐标轴(基底) i ^ \widehat{i} i 和 j ^ \widehat{j} j :
i ^ = [ 1 0 ] , j ^ = [ 0 1 ] \widehat{i}=\begin{bmatrix} 1 \\ 0 \end{bmatrix}, \widehat{j}=\begin{bmatrix} 0 \\ 1 \end{bmatrix} i =[10],j =[01]
若向量 v ⃗ = [ − 1 2 ] \vec{v}=\begin{bmatrix} -1 \\ 2 \end{bmatrix} v=[−12],则可以使用它们表示成:
v ⃗ = − 1 i ^ + 2 j ^ \vec{v}=-1\widehat{i}+2\widehat{j} v=−1i +2j

当空间进行一次线性变换后, i ^ \widehat{i} i 和 j ^ \widehat{j} j 都发生了变化,但 v ⃗ \vec{v} v与它们的关系却保持不变。假设这些向量经过变换变成了:
T r a n ( i ^ ) = [ 1 − 2 ] , T r a n ( j ^ ) = [ 3 0 ] T r a n ( v ⃗ ) = [ 5 2 ] Tran(\widehat{i})=\begin{bmatrix} 1 \\ -2 \end{bmatrix}, Tran(\widehat{j})=\begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ Tran(\vec{v})=\begin{bmatrix} 5 \\ 2 \end{bmatrix} Tran(i )=[1−2],Tran(j )=[30]Tran(v)=[52]
发现依然满足:
T r a n ( v ⃗ ) = − 1 T r a n ( i ^ ) + 2 T r a n ( j ^ ) = − 1 [ 1 − 2 ] + 2 [ 3 0 ] = [ − 1 ( 1 ) + 2 ( 3 ) − 1 ( − 2 ) + 2 ( 0 ) ] = [ 5 2 ] \begin{aligned} Tran(\vec{v})&= -1 Tran(\widehat{i})+2Tran(\widehat{j}) \\ &= -1 \begin{bmatrix} 1 \\ -2 \end{bmatrix} + 2 \begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix} -1(1) + 2(3) \\ -1(-2) + 2(0) \end{bmatrix} \\ &= \begin{bmatrix} 5 \\ 2 \end{bmatrix} \end{aligned} Tran(v)=−1Tran(i )+2Tran(j )=−1[1−2]+2[30]=[−1(1)+2(3)−1(−2)+2(0)]=[52]

实际上,将两个基底在线性变换后变成的两个列向量合在一起,就是一个表示该线性变换的矩阵;对原向量左乘该矩阵,就能得到线性变换后的向量:
T r a n ( v ⃗ ) = M ∗ v ⃗ = [ 1 3 − 2 0 ] [ − 1 2 ] = − 1 [ 1 − 2 ] + 2 [ 3 0 ] = [ − 1 ( 1 ) + 2 ( 3 ) − 1 ( − 2 ) + 2 ( 0 ) ] = [ 5 2 ] \begin{aligned} Tran(\vec{v})&= M*\vec{v} \\ &= \begin{bmatrix} 1 & 3 \\ -2 & 0 \end{bmatrix} \begin{bmatrix} -1 \\ 2 \end{bmatrix} \\ &= -1 \begin{bmatrix} 1 \\ -2 \end{bmatrix} + 2 \begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix} -1(1) + 2(3) \\ -1(-2) + 2(0) \end{bmatrix} \\ &= \begin{bmatrix} 5 \\ 2 \end{bmatrix} \end{aligned} Tran(v)=M∗v=[1−230][−12]=−1[1−2]+2[30]=[−1(1)+2(3)−1(−2)+2(0)]=[52]
把数字换成符号,可以得到一个等式:
[ x i x j y i y j ] [ x y ] = x [ x i y i ] + y [ x j y j ] = [ x i ∗ x + x j ∗ y y i ∗ x + y j ∗ y ] \begin{bmatrix} x_i & x_j \\ y_i & y_j \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = x \begin{bmatrix} x_i \\ y_i \end{bmatrix} + y \begin{bmatrix} x_j \\ y_j \end{bmatrix} = \begin{bmatrix} x_i * x + x_j * y \\ y_i * x + y_j * y \end{bmatrix} [xiyixjyj][xy]=x[xiyi]+y[xjyj]=[xi∗x+xj∗yyi∗x+yj∗y]
举个例子,如果要进行一次线性变换,使得二维空间被逆时针旋转90度,那么,可以知道:
T r a n ( i ^ ) = [ 0 1 ] , T r a n ( j ^ ) = [ − 1 0 ] Tran(\widehat{i})=\begin{bmatrix} 0 \\ 1 \end{bmatrix}, Tran(\widehat{j})=\begin{bmatrix} -1 \\ 0 \end{bmatrix} Tran(i )=[01],Tran(j )=[−10]
于是可以直接写出线性变换对应的矩阵:
[ 0 − 1 1 0 ] \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} [01−10]
将任意向量左乘该矩阵,就能使其旋转90度,如:
[ 0 − 1 1 0 ] [ − 1 2 ] = [ − 2 − 1 ] \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} -1 \\ 2 \end{bmatrix} = \begin{bmatrix} -2 \\ -1 \end{bmatrix} [01−10][−12]=[−2−1]
用这个视角来看,一个原地不动的线性变换对应的矩阵自然就是单位矩阵,因为:
T r a n ( i ^ ) = [ 1 0 ] , T r a n ( j ^ ) = [ 0 1 ] Tran(\widehat{i})=\begin{bmatrix} 1 \\ 0 \end{bmatrix}, Tran(\widehat{j})=\begin{bmatrix} 0 \\ 1 \end{bmatrix} Tran(i )=[10],Tran(j )=[01]
直接得到矩阵:
[ 1 0 0 1 ] \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} [1001]
相关文章:
【线性代数的本质】矩阵与线性变换
线性变化要满足两点性质: 直线(连续的点)在变换后还是直线。原点不变。 假设有坐标轴(基底) i ^ \widehat{i} i 和 j ^ \widehat{j} j : i ^ [ 1 0 ] , j ^ [ 0 1 ] \widehat{i}\begin{bmatrix} 1 \…...
CV02_超强数据集:MSCOCO数据集的简单介绍
1.1 简介 MSCOCO数据集,全称为Microsoft Common Objects in Context,是由微软公司在2014年推出并维护的一个大规模的图像数据集,旨在推动计算机视觉领域的研究,尤其是目标识别、目标检测、实例分割、图像描述生成等任务。该数据集…...
Linux--信号(万字详解!超完整!)
目录 0.预备知识 0.1.基本概念 0.2.信号的捕捉 0.3.理解信号的发送与保存 1.信号的产生(阶段一) 1.通过kill命令,向指定进程发送指定的信号 2.通过终端按键产生信号:ctrlc(信号2),ctrl\(…...
onnx模型转rknn到部署
简介 最近开始用3568的板子,之前是在用3399,cpu的话3399比3568强,但是3568有1T的npu算力,所以模型移植过来用npu使用,之前用ncnn感觉太慢了,rk的npu使用没有开源,所以没法兼容,只能跑…...
lua入门(1) - 基本语法
本文参考自: Lua 基本语法 | 菜鸟教程 (runoob.com) 需要更加详细了解的还请参看lua 上方链接 交互式编程 Lua 提供了交互式编程模式。我们可以在命令行中输入程序并立即查看效果。 Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用: 如下图: 按…...
Finding Global Homophily in Graph Neural Networks When Meeting Heterophily
本文发表于:ICML22 推荐指数: #paper/⭐⭐⭐ 问题背景: 异配图的邻接矩阵难以确定,以及异配图的计算复杂度开销大 可行的解决办法:高通滤波多跳邻居,GPRGNN(pagerank一类,各阶邻居的权重不同,ACM-GCN(高低通滤波,H2GCN(应该复杂度很大&…...
DisFormer:提高视觉动态预测的准确性和泛化能力
最新的研究进展已经显示出目标中心的表示方法在视觉动态预测任务中可以显著提升预测精度,并且增加模型的可解释性。这种表示方法通过将视觉场景分解为独立的对象,有助于模型更好地理解和预测场景中的变化。 尽管在静态图像的解耦表示学习方面已经取得了一…...
Android SurfaceFlinger——Surface和Layer介绍(十九)
按照前面系统开机动画的流程继续分析,在获取到显示屏信息后,下一步就是开始创建 Surface和设置 Layer 层级,这里就出现了两个新的概念——Surface 和 Layer。 一、基本概念 1、Surface介绍 在 Android 系统中,Surface 是一个非常核心的概念,它是用于显示图像的生产者-消…...
C++基础(七):类和对象(中-2)
上一篇博客学的默认成员函数是类和对象的最重要的内容,相信大家已经掌握了吧,这一篇博客接着继续剩下的内容,加油! 目录 一、const成员(理解) 1.0 引入 1.1 概念 1.2 总结 1.2.1 对象调用成员函数 …...
对秒杀的思考
一、秒杀的目的 特价商品,数量有限,先到先得,售完为止 二、优惠券的秒杀 和特价商品的秒杀是一样的,只不过秒杀的商品是优惠券 三、秒杀的需求 秒杀前:提前将秒杀商品,存放到Redis秒杀中:使…...
数据结构预科
在堆区申请两个长度为32的空间,实现两个字符串的比较【非库函数实现】 要求: 1> 定义函数,在对区申请空间,两个申请,主函数需要调用2次 2> 定义函数,实现字符串的输入,void input(char …...
想做亚马逊测评技术需要解决哪些问题,有哪些收益?
现在真正有亚马逊测评技术的人赚的盆满钵满,有些人看到别人赚取就自己盲目去做,买完了账号和设备就感觉自己懂了,却不知里面的水深着,花了钱却没有掌握真正的技术,号莫名其妙就封完了,而每一次大风控注定要…...
1117 数字之王
solution 判断现有数字是否全为个位数 全为个位数,找出出现次数最多的数字,并首行输出最多出现次数,第二行输出所有出现该次数的数值不全为个位数 若当前位数值为0,无需处理若当前位数值非0,则每位立方相乘࿰…...
关于ORACLE单例数据库中的logfile的切换、删除以及添加
一、有关logfile的状态解释 UNUSED: 尚未记录change的空白group(一般会出现在loggroup刚刚被添加,或者刚刚使用了reset logs打开数据库,或者使用clear logfile后) CURRENT: 当前正在被LGWR使用的gro…...
Linux高并发服务器开发(十三)Web服务器开发
文章目录 1 使用的知识点2 http请求get 和 post的区别 3 整体功能介绍4 基于epoll的web服务器开发流程5 服务器代码6 libevent版本的本地web服务器 1 使用的知识点 2 http请求 get 和 post的区别 http协议请求报文格式: 1 请求行 GET /test.txt HTTP/1.1 2 请求行 健值对 3 空…...
人工智能系列-NumPy(二)
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 链接数组 anp.array([[1,2],[3,4]]) print(第一个数组:) print(a) print(\n) bnp.array([[5,6],[7,8]]) print(第二个数组:) print(b) print(\n) print…...
[单master节点k8s部署]19.监控系统构建(四)kube-state-metrics
kube-state-metrics 是一个Kubernetes的附加组件,它通过监听 Kubernetes API 服务器来收集和生成关于 Kubernetes 对象(如部署、节点和Pod等)的状态的指标。这些指标可供 Prometheus 进行抓取和存储,从而使你能够监控和分析Kubern…...
字符串函数5-9题(30 天 Pandas 挑战)
字符串函数 1. 相关知识点1.5 字符串的长度条件判断1.6 apply映射操作1.7 python大小写转换1.8 正则表达式匹配2.9 包含字符串查询 2. 题目2.5 无效的推文2.6 计算特殊奖金2.7 修复表中的名字2.8 查找拥有有效邮箱的用户2.9 患某种疾病的患者 1. 相关知识点 1.5 字符串的长度条…...
【C语言题目】34.猜凶手
文章目录 作业标题作业内容2.解题思路3.具体代码 作业标题 猜凶手 作业内容 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。 以下为4个嫌疑犯的供词: A说:不是我。 B说:是C。 C说:是D。 D说ÿ…...
C++ 多进程多线程间通信
目录 一、进程间通信 1、管道(Pipe) 2、消息队列(Message Queue) 3、共享内存(Shared Memory) 4、信号量(Semaphore) 5、套接字(Socket) 6、信号&…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
前端调试HTTP状态码
1xx(信息类状态码) 这类状态码表示临时响应,需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分,客户端应继续发送剩余部分。 2xx(成功类状态码) 表示请求已成功被服务器接收、理解并处…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
深入理解 React 样式方案
React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...
