当前位置: 首页 > java >正文

GAMES101 lec2-数学基础1(线性代数)

一些依赖的内容

  • 基本数学:
    • 线性代数,微积分,统计学
  • 基本物理:
    • 光学,力学
  • 其他
    • 信号处理
    • 数值分析

线性代数

一个旋转的例子

vector 向量

  • AB⃗=B−A\vec{AB} = B - AAB=BA
  • 两个核心属性:方向+长度
模长 / 单位向量
  • ∣∣a⃗∣∣||\vec{a}||∣∣a∣∣
  • 单位向量 a^=a⃗/∣∣a⃗∣∣\hat a = \vec a / ||\vec a||a^=a/∣∣a∣∣
向量求和
  • 平行四边形法则/三角形法则
坐标系下的向量代数表示
  • 默认的向量是列向量
向量的点乘
  • 定义:a⃗∗b⃗=∣∣a⃗∣∣ ∣∣b⃗∣∣cos⁡θ\vec a * \vec b = ||\vec a|| \, ||\vec b|| \cos \thetaab=∣∣a∣∣∣∣b∣∣cosθ
  • 点乘与方向:点乘 与 cos⁡θ\cos \thetacosθ 之间互相计算的方法
  • 计算方法a⃗∗b⃗=xaxb+yayb\vec a * \vec b = x_a x_b + y_a y_bab=xaxb+yayb
  • 用于计算一个向量投影到另一个向量: ∣∣b⃗⊥∣∣=∣∣b⃗∣∣∗cos⁡θ||\vec b_{\perp}|| = ||\vec b|| * \cos \theta∣∣b∣∣=∣∣b∣∣cosθ
  • 向量点乘告诉前与后的信息:(相同方向/相反方向)
    >0, <0, 是不是垂直,是不是接近
向量的叉乘
  • ∣∣a⃗×b⃗∣∣=∣∣a⃗∣∣ ∣∣b⃗∣∣ sin⁡θ||\vec a \times \vec b|| = ||\vec a|| \, ||\vec b|| \, \sin \theta∣∣a×b∣∣=∣∣a∣∣∣∣b∣∣sinθ

  • 右手螺旋法则(求出方向)

  • 不满足交换律:(加上负号)a×b=−b×aa \times b = - b \times aa×b=b×a

  • 三维坐标系,叉乘的应用

  • 叉乘性质

    • 自身 a⃗×a⃗=0⃗\vec a \times \vec a = \vec 0a×a=0
    • 反交换律
    • 结合律 + 分配律
  • 代数计算方法(表示成矩阵形式 重要)

    • 在这里插入图片描述
  • 应用:判定向量的左右/内外 -> 判断点是否在三角形内部

    • 在这里插入图片描述

    • sign(AB⃗×AP⃗)==sign(BC⃗×BP⃗)==sign(CA⃗×CP⃗)sign(\vec{AB} \times \vec{AP}) == sign(\vec{BC} \times \vec{BP}) == sign(\vec{CA} \times \vec{CP})sign(AB×AP)==sign(BC×BP)==sign(CA×CP),如果这个等式成立,那么就表示点在三角形内部

    • AB - BC - CA,是一种轮换对称性,可以理解为 ABCABC 的循环选取

坐标系
  • u v w 三维直角坐标系
    • 方便分解,方便计算

Matrix 矩阵

  • 在图形学里,常常用矩阵来做基本变换
矩阵的乘积 (m∗n)∗(n∗p)(m*n) * (n*p)(mn)(np)
  • 矩阵乘积不存在交换律

  • 结合律 (AB)C=A(BC)(AB)C=A(BC)(AB)C=A(BC)

  • 矩阵(x∗m)(x*m)(xm) 左乘 向量(m∗1)(m*1)(m1)

  • 乘积的转置(AB)T=BTAT(A B)^T = B^TA^T(AB)T=BTAT

  • 单位矩阵

  • 逆矩阵

  • 点乘叉乘 - 矩阵乘法

    • 在这里插入图片描述
http://www.xdnf.cn/news/15402.html

相关文章:

  • 为何说分布式 AI 推理已成为下一代计算方式
  • 特殊的整数-水仙花数
  • 【c++】c++11新特性(右值引用和移动语义)
  • Java报表导出框架
  • 详解BIO,NIO,AIO
  • 【git fetch submodule报错】Errors during submodule fetch 如何解决?
  • 【Java EE】多线程-初阶 认识线程(Thread)
  • urlencode、html实体编码、unicode
  • 进程---基础知识+命令+函数(fork+getpid+exit+wait+exec)
  • ACL流量控制实验
  • 12.如何判断字符串是否为空?
  • 记字节前端面试一道简单的算法题
  • 游戏玩法的专利博弈
  • 大话数据结构之 <链表>(C语言)
  • 使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
  • 【DOCKER】-4 dockerfile镜像管理
  • Python数据容器-通用功能
  • grpo nl2sql qwen3 模型强化学习训练有效果的成立条件有哪些
  • java--ThreadLocal创建以及get源码解析
  • 131. Java 泛型 - 目标类型与泛型推断
  • RNN(循环神经网络)
  • js与vue基础学习
  • Cesium源码打包
  • 从数据库到播放器:Java视频续播功能完整实现解析
  • Netty编程模型介绍
  • 聚宽sql数据库传递
  • 【WPF】WPF 自定义控件 实战详解,含命令实现
  • Node.js + Express的数据库AB View切换方案设计
  • 渗透笔记1-4
  • vim扩展