GAMES101笔记 Lecture02 线性代数基础

news2025/1/4 17:23:56

目录

    • A Swift and Brutal Introduction to Linear Algebra
      • Garphics' Dependencies(图形学的依赖)
        • Basic mathematics(基础的数学)
        • Basic physics(基础的物理)
        • Misc(杂项)
        • And a bit of asethetics(以及一点美学)
      • Vectors(向量)
      • Vector Normalization(向量归一化)
      • Vector Addition(向量求和)
      • Vector Multiplication(向量乘法)
      • Matrices(矩阵)
      • 参考资源

A Swift and Brutal Introduction to Linear Algebra

Garphics’ Dependencies(图形学的依赖)

Basic mathematics(基础的数学)

  • Linear alrebra, calculus, statistics

Basic physics(基础的物理)

  • Optics, Mechanics

Misc(杂项)

  • Signal processing
  • Numerical analysis

And a bit of asethetics(以及一点美学)

Vectors(向量)

向量

  • 通常写成 a ⃗ \vec a a 或者加粗的a;
  • 或者使用起点或者重点来表示: A B ⃗ = B − A \vec{AB} = B - A AB =BA;
  • 向量最重要的两个属性:长度和方向;
  • 没有绝对的开始的位置;

Vector Normalization(向量归一化)

  • 向量的大小通常写为 ∣ ∣ a ⃗ ∣ ∣ || \vec{a} || ∣∣a ∣∣
  • 单位向量
    • 长度为1的向量
    • 计算一个向量的单位向量: a ^ = a ⃗ / ∣ ∣ a ⃗ ∣ ∣ \hat{a} = \vec{a} / ||\vec{a}|| a^=a /∣∣a ∣∣
    • 用于表示方向

Vector Addition(向量求和)

在这里插入图片描述

  • 几何意义:平行四边形法则 && 三角形法则
  • 代数意义:简单的坐标相加

Vector Multiplication(向量乘法)

  • Dot product(点乘)

    1. a ⃗ ⋅ b ⃗ = ∣ ∣ a ⃗ ∣ ∣ ∣ ∣ b ⃗ ∣ ∣ c o s θ \vec{a} · \vec{b} = || \vec{a} || || \vec{b} || cos \theta a b =∣∣a ∣∣∣∣b ∣∣cosθ
    2. c o s θ = a ⃗ ⋅ b ⃗ ∣ ∣ a ⃗ ∣ ∣ ∣ ∣ b ⃗ ∣ ∣ cos\theta = \frac{\vec{a} · \vec{b}}{|| \vec{a} || || \vec{b} ||} cosθ=∣∣a ∣∣∣∣b ∣∣a b
    3. 对于单位向量: c o s θ = a ^ ⋅ b ^ cos\theta = \hat{a} · \hat{b} cosθ=a^b^
    4. 性质:
      • a ⃗ ⋅ b ⃗ = b ⃗ ⋅ a ⃗ \vec{a} · \vec{b} = \vec{b} · \vec{a} a b =b a
      • a ⃗ ⋅ ( b ⃗ + c ⃗ ) = a ⃗ ⋅ b ⃗ + a ⃗ ⋅ c ⃗ \vec{a} · (\vec{b} + \vec{c}) = \vec{a} · \vec{b} + \vec{a} · \vec{c} a (b +c )=a b +a c
      • ( k a ⃗ ) ⋅ b ⃗ = a ⃗ ⋅ ( k b ⃗ ) = k ( a ⃗ ⋅ b ⃗ ) (k\vec{a}) · \vec{b} = \vec{a} · (k \vec{b}) = k(\vec{a} · \vec{b}) (ka )b =a (kb )=k(a b )
    5. 分别相乘,然后相加
      • In 2D:
        a ⃗ ⋅ b ⃗ = ( x a y a ) ⋅ ( x b y b ) = x a x b + y a y b \vec{a} \cdot \vec{b}=\left(\begin{array}{l} x_{a} \\ y_{a} \end{array}\right) \cdot\left(\begin{array}{l} x_{b} \\ y_{b} \end{array}\right)=x_{a} x_{b}+y_{a} y_{b} a b =(xaya)(xbyb)=xaxb+yayb
      • In 3D:
        a ⃗ ⋅ b ⃗ = ( x a y a z a ) ⋅ ( x b y b z b ) = x a x b + y a y b + z a z b \vec{a} \cdot \vec{b}=\left(\begin{array}{l} x_{a} \\ y_{a} \\ z_{a} \end{array}\right) \cdot\left(\begin{array}{l} x_{b} \\ y_{b} \\ z_{b} \end{array}\right)=x_{a} x_{b}+y_{a} y_{b} + z_{a} z_{b} a b = xayaza xbybzb =xaxb+yayb+zazb
      1. 作用
        • 计算两个向量的夹角
        • 计算一个向量到另一个向量的投影
        • 测量两个方向离的有多近
        • 分解一个向量,垂直与平行
        • 决定方向朝前or朝后
  • Cross product(叉乘)
    在这里插入图片描述

    1. 两个向量叉乘的结果与两个原始向量正交。
    2. 方向由右手定则决定。
    3. 在构建坐标系时非常有用。
    4. 性质:
      • x ⃗ × y ⃗ = + z ⃗ \vec{x} \times \vec{y} = + \vec{z} x ×y =+z
      • y ⃗ × x ⃗ = − z ⃗ \vec{y} \times \vec{x} = - \vec{z} y ×x =z
      • y ⃗ × z ⃗ = + x ⃗ \vec{y} \times \vec{z} = + \vec{x} y ×z =+x
      • z ⃗ × y ⃗ = − x ⃗ \vec{z} \times \vec{y} = -\vec{x} z ×y =x
      • z ⃗ × x ⃗ = + y ⃗ \vec{z} \times \vec{x} = +\vec{y} z ×x =+y
      • x ⃗ × z ⃗ = − y ⃗ \vec{x} \times \vec{z} = -\vec{y} x ×z =y
      • a ⃗ × b ⃗ = − b ⃗ × a ⃗ \vec{a} \times \vec{b} = -\vec{b} \times \vec{a} a ×b =b ×a
      • a ⃗ × a ⃗ = 0 ⃗ \vec{a} \times \vec{a} = \vec{0} a ×a =0
      • a ⃗ × ( b ⃗ + c ⃗ ) = a ⃗ × b ⃗ + a ⃗ × c ⃗ \vec{a} \times (\vec{b} + \vec{c}) = \vec{a} \times \vec{b} + \vec{a} \times \vec{c} a ×(b +c )=a ×b +a ×c
      • a ⃗ × ( k b ⃗ ) = k ( a ⃗ × b ⃗ ) \vec{a} \times (k \vec{b}) = k(\vec{a} \times \vec{b}) a ×(kb )=k(a ×b )
    5. 向量叉乘的公式:
      • a ⃗ × b ⃗ = ( y a z b − y b z a z a x b − x a z b x a y b − y a x b ) \vec{a} \times \vec{b}=\left(\begin{array}{l} y_{a} z_{b}-y_{b} z_{a} \\ z_{a} x_{b}-x_{a} z_{b} \\ x_{a} y_{b}-y_{a} x_{b} \end{array}\right) a ×b = yazbybzazaxbxazbxaybyaxb
      • 也可以写成矩阵乘法的形式:
        在这里插入图片描述
    6. 作用:
      • 判断左右
      • 判断在里面还是在外面
  • 定义坐标系

    1. 对于表示点、位置很重要
    2. 要求:单位向量、互相垂直(点乘为0,且叉乘结果为另外一轴)
    3. 可以将任意一个向量分解到三个轴上去,各个轴的投影可以利用点积计算。

Matrices(矩阵)

在图形学中,矩阵常用于表示变换:移动,旋转、缩放、错切等。

矩阵乘法不满足交换律—— A B ≠ B A AB \ne BA AB=BA

满足结合律和分配律:

  • ( A B ) C = A ( B C ) (AB)C = A(BC) (AB)C=A(BC)
  • A ( B + C ) = A B + A C A(B+C) = AB + AC A(B+C)=AB+AC
  • ( A + B ) C = A C + B C (A+B)C = AC + BC (A+B)C=AC+BC

矩阵的转置:
在这里插入图片描述

转置的性质:
( A B ) T = B T A T (AB)^{T} = B^{T} A^{T} (AB)T=BTAT

单位矩阵和逆矩阵:
在这里插入图片描述

参考资源

GAMES101 Lecture 02 Review of Linear Algebra

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

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

相关文章

记录好项目D7

记录好项目 你好呀,这里是我专门记录一下从某些地方收集起来的项目,对项目修改,进行添砖加瓦,变成自己的闪亮项目。修修补补也可以成为毕设哦 本次的项目是个酒店预订管理系统 技术栈:springbootjavamysqlmybatis …

从0到1学会在Linux中部署SpringBoot+Vue前后端分离项目

1.打包Vue前端项目 使用npm run build命令打包前端项目 前端项目会 打包到dist文件夹中 2.打包SpringBoot后端项目 点击生命周期的package命令,对后端项目进行打包 target目录下的renren-fast.jar就是刚刚打包的后端项目 后端打包项目有一个小技巧,就…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)一:项目规划及初始化

一、项目内容 使用vue3+Layui实现通用管理系统前端,使用vue3+layui搭建系统UI界面,使用nodejs搭建模拟web服务器,使用echarts实现系统可视化模块,可以此项目为基础进行扩展开发,快速搭建管理系统,具体内容如下:   1. 常见功能实现: 实现用户登录(用户名密码登录、手…

【c语言】 -- 详解数组篇

📕博主介绍:目前大一正在学习c语言,数据结构,计算机网络。 c语言学习,是为了更好的学习其他的编程语言,C语言是母体语言,是人机交互接近底层的桥梁。 本章来学习数据的存储。 让我们开启c语言学…

XSS测试-业务安全测试实操(11)

XSS测试 测试原理和方法 跨站脚本漏洞是Web应用程序在将数据输出到网页的时候存在问题,导致恶意攻击者可以往Web页面里插入恶意JavaScript、HTML代码,并将构造的恶意数据显示在页面的漏洞中。攻击者一般利用此漏洞窃取或操纵客户会话和 Cookie,用于模仿合法用户,从而使攻击…

CVE-2010-2883-PDF漏洞提权复现过程

第二步,打开Kali Linux渗透机使用命令msfconsole进入Metasploit渗透测试平台,使用模块adobe_cooltype_sing生成木马文件。 输入search adobe_cooltype_sing命令搜索Adobe渗透模块 与漏洞相关的模块有两个,编号为0的模块是使用本地的服务器挂…

项目实战:防刷

你好,我是田哥 最近在搞充电桩项目,用户使用短信验证码形式进行注册和登录,那么问题来了? 分布式微服务项目实战:充电桩项目 实战分布式事务【SeataSpring Cloud】 项目实战:自定义异常和统一参数验证&…

lazarus开发:快速读写excel文件的神奇控件——FPSpreadsheet

目录 1 简介 2 用wps制作一个简单的工资表 3 编译一下自带的演示程序 1 简介 FPSpreadsheet是一个功能强大的控件库,用于读取和写入电子表格文件。使用该控件库开发的软件,能够在不安装电子表格应用程序的情况下,快速读出、写入电子表格文…

详解Hystrix

目录 1.微服务中的容错 1.1.服务雪崩 1.2.解决办法 2.hystrix 2.1.概述 2.2.项目结构及依赖 2.3.代码示例 2.3.1.注册中心 2.3.2.服务调用者 2.3.3.服务提供者 2.4.服务降级 2.4.1.单点响应 2.4.2.默认响应 2.4.3.前置响应 2.5.服务熔断 2.5.1.概述 2.5.2.使用…

【C语言复习】第一篇、关于我的C语言的复习路线

目录 第一部分、前言 第二部分、学习视频 第三部分、我的建议 第一部分、前言 首先想谈一下为啥都读研究生的我还在学习C语言😂,说起来我认为挺搞笑的,一句话解释就是:本科上课的时候,耳朵打苍蝇去,哈哈。…

面向快速反应的工程团队--QRF团队模型

很多团队都纠结于产品业务需求和各种不断插入的中断请求而无法自拔,这篇文章介绍了QRF团队模型,将产品业务开发和紧急响应团队区分开,为重要而紧急的事情提供单独的处理通道,从而帮助团队能够聚焦在重要的事情上。原文&#xff1a…

Nucleo-F411RE (STM32F411)LL库体验 7 - 低功耗(睡眠、待机)

Nucleo-F411RE (STM32F411)LL库体验 7 - 低功耗(睡眠) 1、简述 F411有三种模式 Sleep mode、stop mode 、standby mode。 其中SleepMode 、Stop Mode 可选择WFI 以及WFE,两者的区别在于,前者任何中断都能…

编译原理笔记(哈工大编译原理)

文章目录 前言概论语言与文法基本概念字母表串字母表与串的联系 文法语言推导和规约句型与句子语言与字母表 文法的分类 前言 说实话,我不是很想上这门课,确实没什么大用,虽然我觉得这门课学一学也挺好,但是我觉得弄8个大实验就真…

socket地址的通配符地址、环回地址

今天在写ServerSocket的时候,遇到了socket地址的通配符地址、环回地址。 package com.thb;import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket;public class ServerSocketMain {public static void main(String[] args) {try…

UI Tool Kit 使用

Unity 2021 已经把UIBuilder 内置了,项目组也打算 后续工具采用 toolkit来写,这边也是找了一下教程熟悉了一下。 UI 工具包 - Unity 手册 首先 先创建一个EditorWindow 会生成相应的C#,UXML,USS代码 默认会把显示的MenuItem代码生成&#xf…

记录--设计一个可选择不连续的时间范围的日期选择器

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 npm包:sta-datepicker效果图 需求 普通的时间选择器要么只能单选,要么只能选范围,不可以随意选择若干个时间,同时大多数现成的时间选择器选择结束会收起…

EasyExcel实战与笔记

概述 Excel导入导出是业务开发中非常常见的需求。本文记录一下如何快速入门使用EasyExcel&#xff0c;深度实战&#xff0c;以及遇到的问题。 入门 使用EasyExcel导入如下依赖即可&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactI…

java-代码生成器——有了代码生成器两个小时的工作量2分钟完成了

代码生成器 &#x1f942;代码生成器&#x1f33b;1. 第一步引用相关依赖&#x1f357;2. 第二步编写代码 CodeGet.java&#x1f969;3. 第三步运行查看结果&#x1f356;4. 第四步总结一下 &#x1f942;代码生成器 只需要创建好表的结构&#xff0c;代码生成器通过简单的配置…

Linux知识点 -- 进程控制(二)

Linux知识点 – 进程控制&#xff08;二&#xff09; 文章目录 Linux知识点 -- 进程控制&#xff08;二&#xff09;一、进程程序替换1.概念2.替换原理3.进程替换的操作4.使用exec函数执行自己写的程序5.使用exec函数执行其他语言的程序 二、编写一个简易的shell 一、进程程序替…