线性代数本质系列(一)向量,线性组合,线性相关,矩阵

news2024/11/16 20:03:28

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

向量究竟是什么?
向量的线性组合,基与线性相关
矩阵与线性相关

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

文章目录

  • 前言
  • 向量究竟是什么?
  • 向量的线性组合,基于线性相关
  • 矩阵与线性相关

前言

天道中丁元英说过一句话:佛说,看山是山,看水是水,普通大众寄情山水之间时,如神一般的丁元英却早已看透文化属性;今天我们不研究这么高深的哲学,回到线性代数,向量,矩阵对于我来讲只不过是一堆数字,但切换到神的视角,他们却是几何与变换,瞬间让线性代数变得更加立体生动,今天我们就从几何的角度去探索线性代数的本质。

向量究竟是什么?

通过“究竟”一词可见,对于向量的含义,存在不同的解释,目前,主要有三种解释:

⑴从物理学家的角度看:向量是指向空间的箭头,它有两个属性:长度和方向,无论怎么移动他都是同一个向量。
三维空间中的向量

⑵从计算机角度看:向量是有序的数字列表,例如对于房价预测而言,房子的面积,房间数就可以看作是一个向量: [ 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} [32],则可以表示成: 3 ∗ i ⃗ + 2 ∗ j ⃗ 3*\vec{i} +2*\vec{j} 3i +2j
在这里插入图片描述

这里需要注意,前面我们选择指向x,y轴,且长度为1的向量作为基向量,但也可以选择不同的基,不同的基代表不同的坐标系,则对于一个向量而言,它代表不同的几何意义,例如,选择下面的v和w向量作为基向量时,向量 [ 1.5 − 0.62 ] \begin{bmatrix} 1.5\\ -0.62 \end{bmatrix} [1.50.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 +2j
在这里插入图片描述

现在对向量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*} v transformed=(1)i transformed+2jtransformed
只不过基向量变成了变换后的基向量。
在这里插入图片描述

如上图
i ⃗ t r a n s f o r m e d = [ 1 − 2 ] \vec{i}{}_{transformed} =\begin{bmatrix} 1\\ -2 \end{bmatrix} i transformed=[12], j ⃗ t r a n s f o r m e d = [ 3 0 ] \vec{j}{}_{transformed} =\begin{bmatrix} 3\\ 0 \end{bmatrix} j transformed=[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)[12]+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=[3221][72]=7[32]+2[21]

如果换个视角,反过来看,如果给出一个矩阵乘法: [ 3 2 − 2 1 ] [ 7 2 ] \begin{bmatrix} 3 & 2\\ -2 & 1 \end{bmatrix}\begin{bmatrix} 7\\ 2 \end{bmatrix} [3221][72],我们可以把矩阵第一列 [ 3 − 2 ] \begin{bmatrix} 3\\ -2 \end{bmatrix} [32]当作新的基向量 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} [0110]

到此,就已经证明了我们在开头所说的:矩阵是一种线性变换。

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

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

相关文章

MySQL的SQL预编译及防SQL注入

文章目录 1 SQL语句的执行处理1.1 即时SQL1.2 预处理SQL1.2.1 预编译SQL的实现步骤1.2.2 预编译SQL的C使用举例1.2.3 MYSQL_BIND()函数中的参数类型: 2 SQL注入2.1 什么是SQL注入2.2 如何防止SQL注入 1 SQL语句的执行处理 SQL的执行可大致分为下面两种模式&#xf…

Linux环境实现mysql所在服务器定时同步数据文件到备份服务器(异地容灾备份场景)

目录 概述 1、建立ssh连接 1.1、操作mysql所在服务器 1.2、操作备份文件服务器 2、创建脚本实现备份以及传输 3、配置定时任务 概述 应对异地容灾备份场景,mysql所在服务器和本分服务器需要建立ssh连接,每天mysql服务器通过定时任务执行脚本&…

微信小程序授权登陆 getUserProfile

目录 前言 步骤: 示例代码: 获取用户信息的接口变化历史: 注意事项: 前言 在微信小程序中,你可以使用 getUserProfile 接口来获取用户的个人信息,并进行授权登录。以下是使用 getUserProfile 的步骤: 小程序发了…

ChatGPT 4 OpenAI 数据分析动态可视化案例

数据分析可视化是一种将原始数据转化为图形或图像的方法,使得数据更易理解和解读。这种方法能够帮助我们更清楚地看到数据中的模式、趋势和关联性,从而更好地理解数据,并据此做出决策。 数据分析可视化的一些常见形式包括: 1. 折线图:常用于展示数据随时间的变化趋势。 …

MATLAB | 官方举办的动图绘制大赛 | 第一周赛情回顾

嘿真的又是很久没见了,最近确实有点非常很特别小忙,今天带来一下MATHWORKS官方举办的迷你黑客大赛第三期(MATLAB Flipbook Mini Hack)的最新进展!!目前比赛已经刚好进行了一周,前两届都要求提交280个字符内的代码来生成…

一个关于jdbc操作mysql和java基础练手的通讯录管理系统小项目

首先 : 整个项目的项目结构为 : 1.第一步先导入数据库的驱动,我的mysql数据库是8.0以上版本,然后导入的驱动就是8.0.16版本的jar包; 1.JdbcBase : JDBC基础操作封装成了JdbcBase类,在里面先静态定义了数据库连接对象和DQL查询结果&#x…

C++阶段复习‘‘‘‘总结?【4w字。。。】

文章目录 前言类和对象C类定义和对象定义类成员函数C 类访问修饰符公有(public)成员私有(private)成员受保护(protected)成员 继承中的特点类的构造函数和析构函数 友元函数内联函数this指针指向类的指针类…

蓝桥杯 冒泡排序

冒泡排序的思想 冒泡排序的思想是每次将最大的一下一下移动到最右边,然后将最右边这个确定下来。 再来确定第二大的,再确定第三大的… 对于数组a[n],具体来说,每次确定操作就是从左往右扫描,如果a[i]>a[i1],我们将…

Prim算法(C++)

目录 介绍: 代码: 结果: 介绍: Prim算法是一种用于解决最小生成树问题的贪心算法。该算法的主要思想是从一个顶点开始,不断向图中添加边,直到构成一棵包含所有顶点的生成树,使得树的边权之…

VSCode 好用的插件分享

文章目录 Introlistcode runner 【在文本编辑器中编辑好各类语言的源代码,然后一键运行】gitlens - 【git提交信息即时查看,类似IDEA中的 show annotation】还有更多,会日常补充。 Intro 大四毕业前,我只有一台dell latitude 455…

Vue 小黑记事本组件板

渲染功能: 1.提供数据: 提供在公共的父组件 App.vue 2.通过父传子,将数据传递给TodoMain 3.利用 v-for渲染 添加功能: 1.收集表单数据 v-model 2.监听事件(回车点击都要添加) 3.子传父,讲…

Vue3 + Three.js + gltf-pipeline大型园区场景渲染与3D业务

在非使用unity作为3D渲染方案的前提下,对与目前web开发者比较友好的除了canvas场景需要的2D babylon.js,fabric.js, Three.js是目前针对于jsWeb用户最直接且比较友好的3D引擎方案了。 准备工作: 1.明确需要用的场景方案都有那些,模…

创建maven的 java web项目

创建maven的 java web项目 创建出来的项目样子 再添加java和resources文件夹 一定要如图有文件夹下有图标才代表被IDEA识别,不让是不行的 没有的话在File——ProjectStructure中进行设置

EasyDarwin开源流媒体服务器

文章目录 前言一、EasyDarwin 简介二、EasyDarwin 主要功能特点三、安装部署四、推拉流测试1、进入控制页面2、推流测试3、拉流测试 前言 本文介绍一个十分实用的高性能开源 RTSP 流媒体服务器:EasyDarwin。 一、EasyDarwin 简介 EasyDarwin 是基于 go 语言研发&a…

域名反查Api接口——让您轻松查询域名相关信息

在互联网发展的今天,域名作为网站的唯一标识符,已经成为了企业和个人网络营销中不可或缺的一部分。为了方便用户查询所需的域名信息,API接口应运而生。本文将介绍如何使用挖数据平台《域名反查Api接口——让您轻松查询域名相关信息》进行域名…

【Java笔试强训】Day10(CM62 井字棋、HJ87 密码强度等级)

CM62 井字棋 链接:井字棋 题目: 给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及…

Ps:通过显示大小了解图像的打印尺寸

在 Photoshop 中,如果想了解文档窗口中的图像打印出来之后的实质大小,只要知道两个数值即可。 第一个数值是图像分辨率(也称“文档分辨率”)的大小,可在Ps菜单:图像/图像大小 Image Size对话框中查询或设置…

linux 安装 mini conda,linux下安装 Miniconda

下载地址 https://docs.conda.io/projects/miniconda/en/latest/index.html 安装conda mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/mini…

第1关:构造函数与析构函数的实现

题目&#xff1a;根据.h写出.cpp 考点&#xff1a; 1.链表的默认构造&#xff0c; 拷贝构造&#xff0c;传参构造以及析构函数等。 代码&#xff1a; /********** BEGIN **********/ #include <cstdlib> #include <cstring> #include "LinkedList.h&…

Java 设计模式——组合模式

目录 1.概述2.结构3.实现3.1.抽象构件3.2.容器构件3.3.叶子节点3.4.测试 4.分类5.使用场景6.优点 1.概述 &#xff08;1&#xff09;大家对于上面这个图片肯定非常熟悉&#xff0c;上图我们可以看做是一个文件系统&#xff0c;对于这样的结构我们称之为树形结构。在树形结构中可…