线性代数本质系列(一)向量,线性组合,线性相关,矩阵
本系列文章将从下面不同角度解析线性代数的本质,本文是本系列第一篇
向量究竟是什么?
向量的线性组合,基与线性相关
矩阵与线性相关
矩阵乘法与线性变换
三维空间中的线性变换
行列式
逆矩阵,列空间,秩与零空间
克莱姆法则
非方阵
点积与对偶性
叉积
以线性变换眼光看叉积
基变换
特征向量与特征值
抽象向量空间
快速计算二阶矩阵特征值
张量,协变与逆变和秩
文章目录
- 前言
- 向量究竟是什么?
- 向量的线性组合,基于线性相关
- 矩阵与线性相关
前言
天道中丁元英说过一句话:佛说,看山是山,看水是水,普通大众寄情山水之间时,如神一般的丁元英却早已看透文化属性;今天我们不研究这么高深的哲学,回到线性代数,向量,矩阵对于我来讲只不过是一堆数字,但切换到神的视角,他们却是几何与变换,瞬间让线性代数变得更加立体生动,今天我们就从几何的角度去探索线性代数的本质。
向量究竟是什么?
通过“究竟”一词可见,对于向量的含义,存在不同的解释,目前,主要有三种解释:
⑴从物理学家的角度看:向量是指向空间的箭头,它有两个属性:长度和方向,无论怎么移动他都是同一个向量。
⑵从计算机角度看:向量是有序的数字列表,例如对于房价预测而言,房子的面积,房间数就可以看作是一个向量: [ 80 4 ] \begin{bmatrix}80\\4\end{bmatrix} [804]
⑶从数学家的角度看:向量可以是任何东西,只要具有向量和向量加法,标量和向量乘法这两种运算规律的事务都可以看作是向量
v ⃗ + w ⃗ \vec{v} +\vec{w} v+w
2 v ⃗ 2\vec{v} 2v
例如:
[ − 4 10 ] + [ 20 1 ] = [ 16 11 ] \begin{equation*} \begin{bmatrix} -4\\ 10 \end{bmatrix} +\begin{bmatrix} 20\\ 1 \end{bmatrix} =\begin{bmatrix} 16\\ 11 \end{bmatrix} \end{equation*} [−410]+[201]=[1611]
2 ∗ [ 80 4 ] = [ 160 8 ] \begin{equation*} 2*\begin{bmatrix} 80\\ 4 \end{bmatrix} =\begin{bmatrix} 160\\ 8 \end{bmatrix} \end{equation*} 2∗[804]=[1608]
由于数学家的角度过于抽象,这就出现了开头讲的,换个角度看问题,从几何角度看待线性代数,对于向量而言,就是在特定坐标系下,以原点为起点,指向某个方向的箭头:
现在已经有了使用几何方式表达向量的方法,下面让我们从几何角度重新审视向量的两种运算:
对于 v ⃗ + w ⃗ \vec{v} +\vec{w} v+w而言,移动w到v的末尾,连接v的头和w的尾就是结果向量。
对于 2 v ⃗ 2\vec{v} 2v而言,向量的方向不变,长度变为原来的两倍,如果标量是小数,则是缩小向量的长度,如果是负数,则是反方向缩放向量的长度。
向量的线性组合,基于线性相关
基向量:
“单位“是数学中必不可少的概念,缺少单位,数字变得毫无意义,同样,对于使用几何表示向量而言,也有存在单位的概念,这就是“基向量”,它代表指向x,y轴,长度为1的向量,我们分别用 i ⃗ \vec{i} i, j ⃗ \vec{j} j表示。
有了基的概念后,向量的表示可以转换成以基为参照,例如向量 [ 3 − 2 ] \begin{bmatrix} 3\\ -2 \end{bmatrix} [3−2],则可以表示成: 3 ∗ i ⃗ + 2 ∗ j ⃗ 3*\vec{i} +2*\vec{j} 3∗i+2∗j
这里需要注意,前面我们选择指向x,y轴,且长度为1的向量作为基向量,但也可以选择不同的基,不同的基代表不同的坐标系,则对于一个向量而言,它代表不同的几何意义,例如,选择下面的v和w向量作为基向量时,向量 [ 1.5 − 0.62 ] \begin{bmatrix} 1.5\\ -0.62 \end{bmatrix} [1.5−0.62]代表的几何形状与 i ⃗ \vec{i} i, j ⃗ \vec{j} j为基向量时的形状是不一样的。
向量线性组合:
无论选择什么样的基向量,向量都可以写成更一般的形式: a v ⃗ + b w ⃗ a\vec{v} +b\vec{w} av+bw我们称为向量的线性组合,a,b是标量,也称为缩放因子,v和w是向量,选择不同的缩放因子,向量的线性组合可以表示整个向量空间,也就是生成的向量可以到达平面中所有点。
但如果两个向量恰好共线时,则向量组合后的结果向量只能落在该直线上,我们称共线的两个向量是线性相关的,否则是线性无关。
更特殊地,当这两个向量都是0向量时,则向量组合后的结果向量只能落在原点上。
概括一下,所有可以被给定向量,用线性组合来表示的那些向量的集合,被称为给定向量张成的空间,两个不共线的向量,在二维空间中,其线性组合所张成的空间是整个二维空间;而在三维空间中,其张成的空间是三维空间中的一个面。
在三维空间中,三个向量的线性组合,如果其中一个向量在另两个向量张成的平面内,我们称该向量与其他两个向量线性相关,这三个向量的线性组合仍然是一个平面,只有三个向量互不线性相关时,那么这三个向量的线性组合才能张成整个三维空间。
矩阵与线性相关
矩阵:
先说结论:前面讲的向量可以视为一种带箭头的几何结构,那么矩阵就可以视为一种对几何的变换。
在线性代数中,变换是一种函数,将输入映射成输出,输入是向量,输出也是向量,同理,当输入是矩阵时,可以把矩阵分解成多个向量,那么输出也就是矩阵,变换有很多种,线性代数中只讨论线性变换,线性变换要求,任意直线变换后仍然是直线,且原点位置变换后保持不变,从几何角度看,线性变换就是拉伸,缩放,旋转。
下图变换后,直线变弯曲了,所以是非线性变换
下图变换后,原点位置变了,所以属于非线性变换
那我们如何求一个向量经过变换后的向量坐标呢?假设现有一个向量,在原始坐标系下可以表示成: v ⃗ = ( − 1 ) i ⃗ + 2 ∗ j ⃗ \vec{v} =( -1)\vec{i} +2*\vec{j} v=(−1)i+2∗j 。
现在对向量v施加一个线性变换,根据线性变换的特性,变换后,网格仍然平行且间隔均等,假设两个基向量变换后的坐标如下图所示,向量v与两个基向量经过相同的变换变成新的基向量,那么,向量v经过变换后的向量仍然可以表示成:
v ⃗ t r a n s f o r m e d = ( − 1 ) i ⃗ t r a n s f o r m e d + 2 ∗ j t r a n s f o r m e d \begin{equation*} \vec{v}{}_{transformed} =( -1)\vec{i}{}_{transformed} +2*j{}_{transformed} \end{equation*} vtransformed=(−1)itransformed+2∗jtransformed
只不过基向量变成了变换后的基向量。
如上图
i ⃗ t r a n s f o r m e d = [ 1 − 2 ] \vec{i}{}_{transformed} =\begin{bmatrix} 1\\ -2 \end{bmatrix} itransformed=[1−2], j ⃗ t r a n s f o r m e d = [ 3 0 ] \vec{j}{}_{transformed} =\begin{bmatrix} 3\\ 0 \end{bmatrix} jtransformed=[30]
变换后的v就等于: v ⃗ = ( − 1 ) [ 1 − 2 ] + 2 ∗ [ 3 0 ] = [ 5 2 ] \vec{v} =( -1)\begin{bmatrix} 1\\ -2 \end{bmatrix} +2*\begin{bmatrix} 3\\ 0 \end{bmatrix} =\begin{bmatrix} 5\\ 2 \end{bmatrix} v=(−1)[1−2]+2∗[30]=[52]
也就是说,如果我们知道两个基向量变换后的向量,那么求任何一个向量经过变换后的向量的过程可以用下图所表示:
更进一步的,我们将两个基向量变换后的坐标向量用矩阵的形式组织起来,这个矩阵就是线性变换矩阵T。
对于任意一个向量A,例如, [ 7 2 ] \begin{bmatrix} 7\\ 2 \end{bmatrix} [72],求该线性变换T对该向量的作用时,只需要用矩阵与向量相乘即可: A t r a n s f o r m e d = [ 3 2 − 2 1 ] [ 7 2 ] = 7 [ 3 − 2 ] + 2 [ 2 1 ] A_{transformed} =\begin{bmatrix} 3 & 2\\ -2 & 1 \end{bmatrix}\begin{bmatrix} 7\\ 2 \end{bmatrix} =7\begin{bmatrix} 3\\ -2 \end{bmatrix} +2\begin{bmatrix} 2\\ 1 \end{bmatrix} Atransformed=[3−221][72]=7[3−2]+2[21]。
如果换个视角,反过来看,如果给出一个矩阵乘法: [ 3 2 − 2 1 ] [ 7 2 ] \begin{bmatrix} 3 & 2\\ -2 & 1 \end{bmatrix}\begin{bmatrix} 7\\ 2 \end{bmatrix} [3−221][72],我们可以把矩阵第一列 [ 3 − 2 ] \begin{bmatrix} 3\\ -2 \end{bmatrix} [3−2]当作新的基向量 i ⃗ \vec{i} i,把矩阵的第二列 [ 2 1 ] \begin{bmatrix} 2\\ 1 \end{bmatrix} [21]当作新的基向量 j ⃗ \vec{j} j,根据向量的几何表示,向量 [ 7 2 ] \begin{bmatrix} 7\\ 2 \end{bmatrix} [72]用新的基向量表成: i ⃗ \vec{i} i向正方向放大7倍, j ⃗ \vec{j} j向正方向放大2倍,将变换后的向量相加就形成了结果向量。
再举个例子,看看逆时针旋转90度的变换矩阵是什么, i ⃗ \vec{i} i由 [ 1 0 ] \begin{bmatrix} 1\\ 0 \end{bmatrix} [10]变成 [ 0 1 ] \begin{bmatrix} 0\\ 1 \end{bmatrix} [01], j ⃗ \vec{j} j由 [ 0 1 ] \begin{bmatrix} 0\\ 1 \end{bmatrix} [01]变成 [ − 1 0 ] \begin{bmatrix} -1\\ 0 \end{bmatrix} [−10],所以该变换矩阵为: [ 0 − 1 1 0 ] \begin{bmatrix} 0 & -1\\ 1 & 0 \end{bmatrix} [01−10]。
到此,就已经证明了我们在开头所说的:矩阵是一种线性变换。
相关文章:

线性代数本质系列(一)向量,线性组合,线性相关,矩阵
本系列文章将从下面不同角度解析线性代数的本质,本文是本系列第一篇 向量究竟是什么? 向量的线性组合,基与线性相关 矩阵与线性相关 矩阵乘法与线性变换 三维空间中的线性变换 行列式 逆矩阵,列空间,秩与零空间 克莱姆…...
python语法之注释
注释可用于解释Python代码。 注释可用于使代码更易读。 注释可用于在测试代码时阻止执行。 (1)创建注释 注释以#开头,Python会忽略它们: #This is a comment print("Hello, World!") 注释可以放在一行…...

React【异步逻辑createAsyncThunk(一)、createAsyncThunk(二)、性能优化、createSelector】(十二)
文章目录 异步逻辑 createAsyncThunk(一) createAsyncThunk(二) 性能优化 createSelector 异步逻辑 //Product.js const onAdd () > {const name nameRef.current.value// 触发添加商品的事件dispatch(addProduct({name…...

Halcon WPF 开发学习笔记(3):WPF+Halcon初步开发
文章目录 前言在MainWindow.xaml里面导入Halcon命名空间WPF简单调用Halcon创建矩形简单调用导出脚本函数 正确显示匹配效果 前言 本章会简单讲解如何调用Halcon组件和接口,因为我们是进行混合开发模式。即核心脚本在平台调试,辅助脚本C#直接调用。 在M…...

P6入门:项目初始化9-项目详情之资源 Resource
前言 使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等&…...

Python高级语法----使用Python进行模式匹配与元组解包
文章目录 1. 模式匹配的新特性2. 高级元组解包技巧3. 数据类的匹配与应用1. 模式匹配的新特性 Python自3.10版本起引入了结构化模式匹配的新特性,这是一种强大的工具,允许开发者用更清晰、更直观的方式处理数据结构。模式匹配类似于其他编程语言中的switch-case语句,但它更…...
MySQL安装配置与使用教程(2023.11.13 MySQL8.0.35)
CONTENTS 1. MySQL的安装与配置2. MySQL常用操作教程 1. MySQL的安装与配置 MySQL Windows Installer 下载地址:MySQL Installer。 我们下载最新版本(目前是8.0.35)的安装包,注意要选择更大的那个,名字为 mysql-inst…...
【阿里云数据采集】采集标准Docker容器日志:部署阿里云Logtail容器以及创建Logtail配置,用于采集标准Docker容器日志
文章目录 引言I 预备知识1.1 Logtail1.2 安装Logtail1.3 创建用户自定义标识机器组1.4 设置logtail容器组件重启策略II 采集服务器日志2.1 采集同一账号下同地域服务器的日志2.2 不同账号下同地域服务器的日志2.3 创建Logtail配置III 查询语法3.1 具体查询语法3.2 查询示例3.3 …...

Django中如何创建表关系,请求生命周期流程图
Django中ORM创建表关系 如何创建表关系(一对一 , 一对多 , 多对多) 图书表,出版社表,作者表,作者详情表 换位思考法判断表关系 图书表和出版社表 >>> 一对多 >>> 图书表是多,出…...
MongoDB副本集配置和创建
副本集有三类角色:master(primary),slave(secondary),仲裁服务器。 primary是主,只有primary能写入,secondary无法插入数据,且需要声明是slave才能查看数据 一般生产搞三个服务器做一个master和两个slave&a…...

使用 `open-uri.with_proxy` 方法打开网页
Ruby 爬虫程序如下: require open-uri require nokogiri# 定义代理信息 proxy_host jshk.com.cn# 定义要爬取的网页 URL url http://www.example.com# 使用代理信息打开网页 open-uri.with_proxy(proxy_host, proxy_port) do |proxy|# 使用 Nokogiri 库解析网页内…...

数据库表的设计——范式
目录 1. 设计数据表需要注意的点 2. 范式 2.1 范式简介 2.2 范式有哪些? 2.3 第一范式(1NF) 2.4 第二范式(2NF) 2.5 第三范式(3NF) 2.6 小结 1. 设计数据表需要注意的点 (1)首先要考虑设计这张表的用途,这张表都要存放什…...

Brute Force
Brute Force "Brute Force"(暴力破解)指的是一种通过尝试所有可能的组合来获取访问、解密或破解信息的攻击方法。这种攻击方法通常是基于暴力和不断尝试的,不依赖漏洞或弱点。通常用于破解密码、破坏系统或获取未经授权的访问权限…...

HTML简单介绍
且视他人之疑目如盏盏鬼火,大胆地去你的夜路。 目录 1.网页 2.Web标准 3.HTML 3.1HTML结构 3.2HTML标签编辑 4.标签介绍 4.1排版标签 4.2文本格式化标签 4.3媒体标签 4.3.1图片标签 4.3.2 音频标签 4.3.3视频标签 5.相对路径 6.链接标签 6.1target属…...

【Java笔试强训】Day10(CM62 井字棋、HJ87 密码强度等级)
CM62 井字棋 链接:井字棋 题目: 给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及…...

C语言求数组中出现次数最多的元素
一、前言 遇到一个需求,需要求数组中出现次数最多的元素,查找了一些资料,结合自己的思路,编写了程序并验证。 只考虑元素为非负整数的数组,如果有出现次数相同的元素,则返回较小元素。 二、编程思路 以数…...

【Python Opencv】Opencv画图形
文章目录 前言一、画图形1.1 画线1.2 画矩形1.3 画圆1.4 画椭圆1.5 添加文本 总结 前言 在计算机视觉和图像处理中,OpenCV不仅可以处理图像和视频,还提供了一组功能强大的工具,用于在图像上绘制各种形状和图形。这些功能使得我们能够在图像上…...
了解防抖和节流:提升前端交互体验的实用策略
了解防抖和节流:提升前端交互体验的实用策略 前言什么是防抖?什么是节流?应用实例防抖实例节流实例 前言 本文将重点介绍前端性能优化方法之一的防抖和节流。首先解释了它们的概念和原理,然后探讨了它们在前端开发中的应用场景&a…...

SQL学习之增删改查
文章目录 数据库数据类型建表create table插入数据insert into查询数据select from修改数据update set删除数据delete from备份ctas结果插入iis截断表 truncate table修改表结构alter table添加注释 注:本文的SQL语法是基于Oracle数据库操作的,但是基本的…...

Ansible角色定制实例
目录 角色定制:roles 角色定制实例:利用角色部署wordpress 1.在roles目录下生成对应的目录结构 2.定义配置文件 ①nginx ②php ③mysql ④定义剧本文件 ⑤启动服务 角色定制:roles 对于普通的剧本(playbook)有…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...