Unity Shader学习日记 part 2 线性代数--矩阵

矩阵的基础概念这里就不用说了。

先来看看矩阵的乘法

矩阵乘法

对于矩阵A*矩阵B有这样的要求

1.左边矩阵的(A)列数等于右边矩阵的(B)的行数

2.相乘的的结果是一个左边矩阵的(A)行数*右边矩阵(B)的列数的矩阵

3.相乘的时候,用左边矩阵(A)的每一行乘以右边矩阵(B)的每一列,然后相加

例子:

注意:

矩阵的相乘不满足交换律,A*B不等于B*A

矩阵的相乘满足结合律,A*(B*C)=(A*B)*C

特殊的矩阵

1.方块矩阵

方块矩阵:又称方阵,指行和列数量相等的矩阵,如3*3,4*4

2.对角矩阵

对角矩阵:只有主对角线上有值的方阵,其余地方为0。

主对角线:从左上角到右下角的对角线。

3.单位矩阵

单位矩阵:主对角线的值为1的对角矩阵

性质:任何矩阵M和单位矩阵I相乘的结果都是矩阵本身M(需要满足相乘规则)

4.数量矩阵

数量矩阵:主对角线的值是同一个值的对角矩阵

5.转置矩阵

转置矩阵:将矩阵的行和列互换后的矩阵(在右上角加T表示)

性质:

1.矩阵转置的转置等于原矩阵

2.矩阵串接的转置等于反向串接各矩阵的转置

6.逆矩阵

逆矩阵:逆矩阵是什么不重要,重要的是怎么求逆矩阵。逆矩阵通常在右上角加-1表示。需要注意的是并不是所有矩阵都有逆矩阵,有逆矩阵的矩阵,成为可逆的或非奇异的。没有逆矩阵的矩阵成为不可逆的或奇异的。

逆矩阵的求解

1.确定矩阵是否为方阵

2.求矩阵的行列式,行列式为0的矩阵不可逆(没有逆矩阵)

3.求矩阵的代数余子式矩阵

4.求标准伴随矩阵(代数余子式矩阵的转置)

5.逆矩阵(标准伴随矩阵/行列式)

1.行列式求解

口诀:左上左下画对角线,线上数字相互乘法,数量不够对面取,朝下相加,朝上相减

2.代数余子式的求解

计算规则:Cij=-1的i*j次幂乘以除去i行j列的剩下的矩阵

例子:

逆矩阵的性质

1.逆矩阵的逆矩阵等于原矩阵

2矩阵乘以自己的逆矩阵等于单位矩阵

3.单位矩阵的逆矩阵是它本身

4.转置矩阵的逆矩阵是逆矩阵的转置

5.矩阵串接相乘的逆矩阵等于反向串接各矩阵的逆矩阵相乘

6.逆矩阵可以计算矩阵变换的反向变换

7.正交矩阵

正交矩阵:如果一个方阵和他的转置矩阵相乘等于单位矩阵的话,则这个方阵就是正交矩阵。

而在学习逆矩阵的时候,逆矩阵有一个性质:矩阵和他的逆矩阵乘积等于单位矩阵

这就意味着,如果一个矩阵是正交矩阵,那么他的逆矩阵就是他的转置矩阵,同样的,他的转置矩阵也是他的逆矩阵

向量的点乘:A(x1,y1,z1) B(x2,y2,z2) A*B=x1*x2+y1*y2+z1*z2.

对于向量的点乘而言,如果点乘结果为0,那么这两个向量相互垂直,点乘实际上求的是一个向量在另一个向量上的投影。

如果向量和自己的点乘结果为1,那么这个向量是单位向量

回到正交矩阵。对于正交矩阵而言,矩阵正交,那么他的转置矩阵也是正交的

正交矩阵的性质:

1.正交矩阵的每一行(列)都是单位向量

2.正交矩阵的每一行(列),相互垂直

矩阵正交判断:

1.

2.对于n维向量(v1,v2,v3,...)而言,向量的模长|v|=(v1^2+v2^2+v3^2+.....+vn^2)=1

同时,矩阵的每一行(列)相互垂直

8.行矩阵与列矩阵

行矩阵:只有一行的矩阵

列矩阵:只有一列的矩阵

需要注意的是,在Unity中的使用规则:

在标准的线性代数中,矩阵与向量的相乘是按列相乘的,为了与标准数学和线性代数统一,也使用了按列计算的规则。说人话就是,在矩阵和向量的相乘中,把向量转为列矩阵进行计算

同样的也可以使用行矩阵,所以为了保持结果一致,有这样的规则

列:CBAv=C(B(Av)) == 行: vA(t)B(t)C(t)=(((vA(t))B(t))C(t) 使用转置矩阵

矩阵的作用主要是变换,之后会了解到。

那么矩阵的基础就先到这
相关推荐
大丈夫立于天地间25 分钟前
ISIS基础知识
网络·网络协议·学习·智能路由器·信息与通信
Thomas_YXQ1 小时前
Unity3D项目开发中的资源加密详解
游戏·3d·unity·unity3d·游戏开发
Chambor_mak1 小时前
stm32单片机个人学习笔记14(USART串口数据包)
stm32·单片机·学习
PaLu-LI2 小时前
ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果
c++·人工智能·opencv·学习·ubuntu·计算机视觉
yuanbenshidiaos2 小时前
【大数据】机器学习----------计算机学习理论
大数据·学习·机器学习
汤姆和佩琦2 小时前
2025-1-20-sklearn学习(42) 使用scikit-learn计算 钿车罗帕,相逢处,自有暗尘随马。
人工智能·python·学习·机器学习·scikit-learn·sklearn
Tech智汇站3 小时前
Quick Startup,快捷处理自启程序的工具,加快电脑开机速度!
经验分享·科技·学习·学习方法·改行学it
qq_312738453 小时前
jvm学习总结
jvm·学习
BlackPercy4 小时前
【线性代数】基础版本的高斯消元法
线性代数·julia
执念斩长河4 小时前
Go反射学习笔记
笔记·学习·golang