线性代数篇

news2024/11/15 6:52:29

主线为花书第二章-线性代数,但其上面一些表述属实费解,于是参考B站3Blue1Brown线性代数和B站同济子豪兄的视频讲解。

alt

先放一句3B1B的话共勉,伙计们不要被数学公式吓到,慢慢钻研,慢慢推肯定能学懂。线性代数这一部分相信一般理工科的同志们肯定都学过,这里主要是稍微看看回忆下。

标量、向量、矩阵和张量

标量(scalar):一个单独的数,用斜体表示,通常被赋予小写的变量名称。

向量(vector):物理中的向量有长度和方向决定,长度和方向不变可以随意移动,它们表示的是同一个向量。计算机中的向量更多的是对数据的抽象,可以根据面积和价格定义一个房子 一列数。

通过次序中的索引,我们可以确定每个单独的数。用粗体的小写变量名称,比如

线性代数中的向量可以理解为一个空间中的箭头,这个箭头起点落在原点。如果空间中有许多的向量,可以点表示一个向量,即向量头的坐标。

向量的加法:可以理解为在坐标中两个向量的移动。对于二维向量来说,例如:

alt

数字和向量相乘:可以理解为向量的缩放。

alt

矩阵(matrix):一个二维数组,其中的每一个元素被两个索引(而非一个)所确定。粗体的大写变量名称,比如

张量(tensor):一个数组(一般超过两维的)中的元素分布在若干维坐标的规则网格中. 张量 中坐标为 的元素记作

直观理解:

alt alt

alt

向量与矩阵的操作

转置(transpose):是以对角线为轴的镜像

alt

矩阵相加:只要矩阵的形状一样,我们可以把两个矩阵相加。 两个矩阵相加是指对应位置的元素相加,比如 ,其中

标量与矩阵相乘或相加:将其与矩阵的每个元素相乘或相加,比如 ,其中

广播(broadcasting):在深度学习中,我们也使用一些不那么常规的符号。允许矩阵和向量相加,产生一个新矩阵: 其中 ,即向量 和矩阵 的每一行相加

## 例
import numpy as np
M = np.arange(9).reshape(3, 3)
C = np.arange(3).reshape(3, 1)
print("M:")
print(M)
print("C:")
print(C)
print("M+C:")
print(M+C)
---------------------------------------
M:
[[0 1 2]
 [3 4 5]
 [6 7 8]]
C:
[[0]
 [1]
 [2]]
M+C:
[[ 0  1  2]
 [ 4  5  6]
 [ 8  9 10]]

矩阵乘积(matrix product):设两个矩阵 的乘积是 ,为了使乘法可被定义,必须满足 . 的形状是 x .具体地,该乘法操作定义为

元素对应乘积(element-wise product)或Hadamard乘积(Hadamard product)是两个矩阵对应元素的乘积,记为

点积(dot-product):两个相同维数的向量 可看作矩阵乘积 ,即对应元素相乘相加,是一个标量。

我们可以把矩阵乘积 中计算 的步骤看作是 的第 行和 的第 列之间的点积。 alt

性质

  1. (分配律)
  2. (结合律)
  3. (一般情况下不满足交换律)

线性方程组: 如以下线性方程组

其中 都是已知的, 是要求解的未知向量。以上等式可以写为:

单位矩阵和逆矩阵

单位矩阵(identity matrix):任意向量和单位矩阵相乘,都不会改变。我们将保持n维向量不变的单位矩阵记作 (很多教材用 表示单位阵),单位矩阵的所有沿主对角线的元素都是1,而其他位置的所有元素都是0.

逆矩阵:记作 ,其定义的矩阵满足如下条件: 可以用以下步骤求解方程组:

如果逆矩阵存在,那么上式肯定对于每一个向量 恰好存在一个解。逆矩阵可能也不存在

然而,逆矩阵 主要是作为理论工具使用的,并不会在大多数软件应用程序中实际使用。这是因为逆矩阵 在数字计算机上只能表现出有限的精度,有效使用向量 的算法通常可以得到更精确的

线性相关

在我们一般教科书上线性相关定义为: 线性相关⇔至少有一个向量可以用其余向量线性表示。

对二维向量而言,两个数乘向量称为两个向量的线性组合
两个不共线的向量通过不同的线性组合可以得到二维平面中的所有向量。 再看线性相关定义,这样就可以直观理解了。

alt

当然两个共线的向量通过线程组合只能得到一个直线的所有向量。

alt

如果两个向量都是零向量那么它只能在原点。

放到三维,而如果三个任意数分别乘三个不在一个平面上的三维向量则可以表示三维空间中的所有向量。
即这三个三维向量进行线性组合就可以得到这个三维空间的任意向量。
当然如果有两个向量共面,两个任意数分别乘这两个三维向量,会得到过这两个向量与原点的一个平面。即这三个向量的线性组合只能得到一个面上的所有向量。

alt

张成空间

定义:向量 及 的的全部线性组合(Linear Combination, )构成的向量空间称为“张成(Span)的空间”。

  • 一般来说两个向量张成空间可以是直线、平面。
  • 三个向量张成空间可以是平面、空间。

如果多个向量,并且可以移除其中一个而不减小张成空间,那么它们是线性相关的,也可以说一个向量可以表示为其他向量的线性组合
如果所有的向量都给张成的空间增加了新的维度,它们就成为线性无关的

向量空间的一组基是张成该空间的一个线性无关向量集。

线性空间

alt

本文由 mdnice 多平台发布

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

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

相关文章

cannot redeclare block-scoped variable

使用 Vue3.0 的时在模块类中声明方法的时候抛出了如下的异常:cannot redeclare block-scoped variable解决办法检查是否集成了 Vetur 插件,若存在禁用或卸载即可,该插件Vue3.0 的时候会冲突;Vue3.0 集成如下两款即可:名称: TypeScript Vue Plugin (Volar)ID: Vue.vscode-typesc…

Qt 自定义控件 带UI 不带 UI

一般自定义控件原因 有时Qt 现有控件不能满足我们的开发需求,这时候就需要我们进行自定义控件的使用,自定义控件,这大大提高了设计UI的通用性,程序利用,封装; Part1 easy one 继续 Lab 自定义Label控件:文本太长省略…

机械设备管理系统如何帮助企业做好成本核算管理?

随着多元化市场经济的深入发展,机械设备制造企业面临的竞争压力也越来越大,企业要想在激烈的市场环境中生存下去,就得不断提高竞争力。企业提高自身竞争能力最为重要一个途径便是不断提高企业的成本核算及管控能力,降低企业经营成…

java使用导出百万级别数据

用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会常报OOM错误, 这时候调整JVM的配置参数也不是一个好对策(注:jdk在32位系统中支持的内存不能超过2个G,而在64位中没有限制&a…

栈、堆、全局区/静态存储区、常量区、代码段、到底是什么?

一、程序运行内存分布图 我们知道一个由我们编写好的程序,运行时,我们的程序中写的代码,定义的变量,写的函数、for 循环等等,这些运行时都分布在内存中的哪里吗? 一下是一个程序运行时 内存的各个区域的分…

C语言字符串指针(指向字符串的指针)详解

C语言中没有特定的字符串类型&#xff0c;我们通常是将字符串放在一个字符数组中&#xff0c;这里演示一下&#xff1a;#include<stdio.h> #include<string.h>intmain(){ char str[]"http://csdn.net"; int len strlen(str), i; //直接输出字符串 printf…

一套完全开源,支持多租户,界面配置单点的后端框架JVS,赶紧收藏

今天推荐的这个项目是「JVS数据全家桶中的 JVS微服务框架」—— 是一个免费开源的中后台模版&#xff0c;使用了最新的 vuespring cloud 主流技术开发&#xff0c;开箱即用的中后台前端解决方案&#xff0c;可以直接商用&#xff0c;并且这个脚手架上做了很多商业上的扩展&…

day19 二叉树 | 654、最大二叉树 617、合并二叉树 700、二叉搜索树中的搜索 98、验证二叉搜索树

题目 654、最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构…

数据中心转型利润中心:数据如何赋能零售行业营销升级?

通过大数据来提升营销效果已经是零售行业不同业态都绕不过去的话题。以往&#xff0c;市场团队在进行投放时需要依靠营销团队和销售团队的经验来判断&#xff0c;这样的营销策略较为粗放&#xff0c;对用户的感知也不精准&#xff0c;一般都是在海量投放后被动的等待营销反馈。…

C++代码优化(2):条款5~12

"然后自然老去吧&#xff0c;别再依依惜别了"条款5:了解C默默编写并调用了哪些函数(1)小试牛刀地回顾C编译器为类提供的默认函数很多人知道是有6个的。默认构造、拷贝构造、赋值重载、析构函数、重载取地址运算符&#xff0c;但是在C11更新后&#xff0c;又为类对象增…

软件测试项目实战,我们拿到项目第一步应该怎么做【附过程文档】

对于从事软件研发的组织来说&#xff0c;工作类型至少包括项目管理、产品设计、编码、测试、质量保证和软件配置管理&#xff0c;以及其它人员&#xff0c;如文档编制人员和美工人员/系统硬件管理人员等。根据职能需要&#xff0c;可以以半独立方式进行部门和项目的矩阵管理&am…

Let’s Encrypt共建安全的互联网

导读最近关于沃通和 StartCom 这两家 CA 公司的消息让人们再次关注到了网络隐私和安全的问题。随着 Mozilla、苹果和谷歌对这两家 CA 公司处罚落定&#xff0c;很多使用这两家 CA 所签发证书的网站纷纷寻求新的证书签发商。这里面固然有不少可信赖的 CA 公司可以提供服务&#…

UniRx之基本语法格式

前言 想要更好的去学习UniRx&#xff0c;我们最好是先理解UniRx 的语法格式。就像我们去学习英语或者汉语一样&#xff0c;理解了基本的语法规则后&#xff0c;再学其他的就信手拈来了。 语法示例 下面我们来看一个最简单的示例&#xff0c; Observable.EveryUpdate().Where…

Git安装,配置及Gitee项目代码pull到本地

一、Git安装从git官网下载&#xff1a;https://git-scm.com/downloads选择适合的版本进入下载&#xff0c;然后傻瓜式安装直到结束。检查安装是否成功&#xff1a;进入任意文件夹点击右键选择Git Bash Here进行基本配置输入如下命令&#xff1a;git --version就会显示当前安装的…

【Windows】ip地址修改器v5.0.5.4

简介 IP地址修改器&#xff0c;一款能够快速的切换IP地址&#xff0c;在几个不同的固定IP之间进行切换&#xff0c;手动输太麻烦&#xff0c;所以可以用到这款IP地址修改器&#xff01; 下载 ip地址修改器v5.0.5.4 软件介绍 程序主要原理还是利用了WMI的Win32_NetworkAda…

二叉搜索树,平衡二叉树,红黑树,B树,B+树

文章目录二叉树&#xff08;BT&#xff09;1. 满二叉树2. 完全二叉树二叉搜索树&#xff08;BST&#xff09;平衡二叉搜索树&#xff08;AVL&#xff09;1. 定义2. 如何保持平衡——旋转红黑树&#xff08;RBTree&#xff09;1.定义2.红黑规则3.插入规则B树1.定义2.在磁盘系统中…

云存储、云计算与分布式存储、分布式计算是一回事吗?

随着互联网的蓬勃兴起&#xff0c;大数据、人工智能、物联网、云计算与云存储等这些专业词汇在大众视野内出现的频率越来越高&#xff0c;再加上近几年分布式技术异军突起&#xff0c;更使得分布式存储、分布式计算等成为热词。然而&#xff0c;很多人对这些名词都一知半解&…

HTML5+CSS3(七)-全面详解(学习总结---从入门到深化)

目录 字体属性 color font-size font-weight font-style font-family 学习效果反馈 背景属性一 background-color属性 background-image属性 background-repeat属性 学习效果反馈 背景属性二 background-size属性 background-position属性 background-attachment属性…

Utools的安装与使用

Utools的安装与使用 新一代效率工具平台. 自由组合插件应用&#xff0c;打造专属你的趁手工具集&#xff0c;我们可以根据自己需求下载对应插件&#xff0c;然后通过Utools启动插件&#xff0c;不用向以前那样不同的插件需要找到对应插件地址。我们也可以通过设置全局快捷键快速…

ESP-IDF:字符串中字符转为链表结点入栈(使用STL stack),然后打印栈中内容

ESP-IDF:字符串中字符转为链表结点入栈(使用STL stack),然后打印栈中内容 /字符串中字符转为链表结点入栈(使用STL stack),然后打印栈中内容/ #include typedef struct LINKNODE20 { struct LINKNODE20 * next; }linknode20; typedef struct MYCHAR20 { linknode20 node; ch…