《工程数学》课件-第六章:矩阵详解_第1页
《工程数学》课件-第六章:矩阵详解_第2页
《工程数学》课件-第六章:矩阵详解_第3页
《工程数学》课件-第六章:矩阵详解_第4页
《工程数学》课件-第六章:矩阵详解_第5页
已阅读5页,还剩30页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工程数学:3D游戏开发数学基础第6章:矩阵详解第6章:矩阵详解目录01矩阵的行列式•定义与计算•重要性质•几何解释02逆矩阵•定义与计算•重要性质•几何解释03正交矩阵•定义与判定•几何意义•矩阵正交化044x4齐次矩阵•齐次坐标•平移矩阵•仿射变换05透视投影•原理与对比•投影矩阵推导第6章:矩阵详解6.1矩阵的行列式DeterminantofaMatrix第6章:矩阵详解什么是行列式?标量值定义仅适用于方形矩阵的特殊标量值,是矩阵映射到实数的函数。核心应用价值判断矩阵可逆性、解方程组;几何中表示面积/体积伸缩因子。常见表示符号记作|M|,或函数形式det(M)。严格适用前提非方形矩阵行列式未定义,这是学习时的关键点。Unity应用场景判断变换矩阵是否导致几何体“坍缩”。行列式为0时矩阵奇异,逆不存在(如缩放到0)。floatdet=matrix.determinant;if(Mathf.Approximately(det,0)){Debug.Log("矩阵奇异,无法求逆!");}第6章:矩阵详解2x2矩阵行列式的计算核心公式定义|M|=m₁₁·m₂₂-m₁₂·m₂₁行与列元素相乘再相减“对角线法则”记忆主对角线积减反对角线积左上×右下-右上×左下计算示例M=|21|/|-12|,|M|=(2×2)-(1×(-1))=5Unity应用场景Matrix4x4.determinant属性直接获取行列式,常用于变换矩阵分析。Matrix4x4m=newMatrix4x4();//构建2x2矩阵m.SetRow(0,newVector4(2,1,0,0));m.SetRow(1,newVector4(-1,2,0,0));floatdet=m.determinant;//结果为5第6章:矩阵详解3x3矩阵行列式的计算|m₁₁m₁₂m₁₃|=m₁₁m₂₂m₃₃+m₁₂m₂₃m₃₁+m₁₃m₂₁m₃₂|m₂₁m₂₂m₂₃|-m₁₃m₂₂m₃₁-m₁₂m₂₁m₃₃-m₁₁m₂₃m₃₂|m₃₁m₃₂m₃₃|对角线法则·记忆口诀将矩阵的前两列复制并补在原矩阵右侧,形成新表。沿主对角线三组相乘求和;沿反对角线三组相乘求和;最后“主和”减“反和”。Unity应用场景Unity的Matrix4x4可处理行列式计算,常用于光照、法线变换等。Matrix4x4m=newMatrix4x4();//构建3x3矩阵floatdet=m.determinant;//计算行列式第6章:矩阵详解3x3行列式计算示例题目:计算矩阵M的行列式M=[-4-33][02-2][14-1]计算过程(按第一行展开)|M|=(-4)[(2)(-1)-(-2)(4)]+(-3)[(-2)(1)-(0)(-1)]+3[(0)(4)-(2)(1)]=(-4)[-2+8]+(-3)[-2-0]+3[0-2]=(-4)(6)+(-3)(-2)+3(-2)=-24+6-6最终结果:|M|=-24第6章:矩阵详解3x3行列式与矢量三重积核心关系如果将一个3x3矩阵的行(Row)或者列(Column),分别解释为三维欧几里得空间中的三个矢量a,b,c,那么这个矩阵的行列式的值,在数值上严格等于这三个矢量的标量三重积(ScalarTripleProduct)。数学表达det(A)=(a×b)·c=|axayaz||bxbybz||cxcycz|💡几何意义:标量三重积的绝对值代表

三个矢量张成的平行六面体的“有向体积”。第6章:矩阵详解子矩阵行列式(Minor)与余子式(Cofactor)子矩阵行列式(Minor)▍定义从矩阵M中删除第i行和第j列后,剩余子矩阵的行列式。记作:M⁽ⁱʲ⁾余子式(Cofactor)▍定义与公式子式与一个符号因子的乘积。计算公式:C⁽ⁱʲ⁾=(-1)ⁱ⁺ʲ·M⁽ⁱʲ⁾符号棋盘符号因子(-1)ⁱ⁺ʲ呈现出类似棋盘的正负交替模式:+-+-+-第6章:矩阵详解通用n×n矩阵的行列式计算核心方法余子式展开法对于任意一个n阶方阵,行列式的值可以通过选择任意一行或一列进行展开计算。将该行/列中的每个元素分别与它的代数余子式相乘,最后将所有乘积求和。展开公式|M|=∑mᵢⱼ·C⁽ⁱʲ⁾按第i行展开的定义式:

mᵢⱼ代表矩阵中第i行第j列的元素;

C⁽ⁱʲ⁾代表该元素对应的代数余子式。计算技巧找“0”!找“0”!找“0”!在选择展开的行或列时,优先选择包含零元素最多的那一行或列。原理:任何数乘以零都等于零,包含零元素的项可以直接跳过计算,大幅减少计算量。第6章:矩阵详解行列式的重要性质(1)01/单位矩阵任何维度的单位矩阵I的行列式都为1,它是矩阵运算中的“乘法单位元”。|I|=102/矩阵乘积两个矩阵相乘后的行列式,等于它们各自行列式的乘积。这在简化复杂矩阵运算中非常关键。|AB|=|A||B|03/矩阵转置将矩阵的行和列互换(即转置)后,其行列式的值保持不变。这意味着行和列在行列式计算中地位对等。|Mᵀ|=|M|第6章:矩阵详解行列式的重要性质(2)04全零行/列如果矩阵的任意一行或一列全为0,则其行列式为0。几何意义:空间被压缩,体积为零。05交换行/列交换矩阵的任意两行(或两列),行列式变号。推论:若两行/列完全相同,行列式为0。06行/列倍加将某一行(或列)的任意倍数加到另一行(或列)上,行列式的值不变。应用:高斯消元法化简矩阵求行列式。第6章:矩阵详解行列式的几何解释核心作用衡量线性变换对空间的缩放与方向影响。二维:面积行列式绝对值为平行四边形面积。三维:体积行列式绝对值为平行六面体体积。符号:方向行列式符号代表空间手性是否翻转。Unity应用场景缩放矩阵行列式即缩放因子乘积(如0.5缩放→体积1/8)。//缩放矩阵行列式(体积比)Matrix4x4m=Scale(newVector3(2,2,2));Debug.Log(m.determinant);//输出:8第6章:矩阵详解6.2逆矩阵INVERSEMATRIX第6章:矩阵详解什么是逆矩阵?定义Definition对于方形矩阵M,若存在M⁻¹使乘积为单位矩阵I,则M⁻¹为逆矩阵。M×M⁻¹=I相关概念Concepts●可逆矩阵(非奇异)

存在逆矩阵,运算中“可除”。●不可逆矩阵(奇异)

无逆矩阵,行/列线性相关。判定方法Criterion核心方法:计算行列式:✔可逆⇔|M|≠0✘不可逆⇔|M|=0仅方阵有行列式与逆矩阵Unity应用场景核心应用:坐标空间变换(世界→局部)。利用逆矩阵实现变换的“撤销”,如将世界坐标点转换为物体局部坐标。//世界转局部矩阵(即逆矩阵)Matrix4x4w2l=transform.worldToLocalMatrix;Vector3localP=w2l.MultiplyPoint(worldP);第6章:矩阵详解通过经典伴随矩阵求逆STEP01计算余子式矩阵根据矩阵元素的位置,计算每一个元素所对应的代数余子式,形成余子式矩阵。STEP02转置得到伴随矩阵将余子式矩阵进行转置操作,即行与列互换,最终得到经典伴随矩阵(adjM)。STEP03除以原矩阵行列式将得到的经典伴随矩阵,除以原矩阵M的行列式值|M|,即可求得原矩阵的逆矩阵。核心求逆公式M⁻¹=(adjM)/|M|第6章:矩阵详解逆矩阵计算示例已知条件(Given)待求逆矩阵M:M=[-4-33][02-2][14-1]•行列式:|M|=-24•伴随矩阵adjM已求出(略)计算过程(Calculation)公式:M⁻¹=(1/|M|)×adj(M)代入:M⁻¹=(-1/24)×adj(M)结果:[-1/4-3/80][1/12-1/241/3][1/12-13/241/3]Unity应用场景Unity封装了矩阵操作,但实现自定义相机投影/特效时,需手动构建并求逆://手动构建矩阵Matrix4x4m=newMatrix4x4(newVector4(-4,0,1,0),newVector4(-3,2,4,0),newVector4(3,-2,-1,0),newVector4(0,0,0,1));Matrix4x4inv=m.inverse;//求逆第6章:矩阵详解逆矩阵的重要性质01对合性(M⁻¹)⁻¹=M矩阵的逆的逆等于其本身02单位矩阵I⁻¹=I单位矩阵的逆是自身03转置与逆(Mᵀ)⁻¹=(M⁻¹)ᵀ转置的逆等于逆的转置04乘积的逆(AB)⁻¹=B⁻¹A⁻¹★提示:矩阵相乘顺序需严格颠倒05行列式的逆|M⁻¹|=1/|M|逆矩阵行列式等于原行列式倒数Unity应用场景:矩阵逆变换在相机空间转换中的应用角色移动时需将世界方向转换到相机局部空间,即乘以相机视图矩阵的逆矩阵,实现视角跟随与运动计算。Matrix4x4invView=Camera.main.worldToCameraMatrix.inverse;//视图矩阵的逆第6章:矩阵详解逆矩阵的几何解释核心作用/CoreConcept撤销变换(UndoTransformation)直观理解如果矩阵M代表空间中的一个变换,那么它的逆矩阵M⁻¹就代表将变换“原路返回”的反向变换。01.正向变换任意向量v经过矩阵M的变换,变成了一个新的向量vM。02.逆向变换将变换后的向量vM,再次应用矩阵M的逆矩阵M⁻¹进行变换。03.回归原点两次变换相互抵消,向量成功回到了变换前的初始状态v。代数验证

AlgebraProof(vM)M⁻¹=v(MM⁻¹)=vI=v结合律·························逆矩阵定义·····················单位矩阵性质第6章:矩阵详解6.3正交矩阵OrthogonalMatrix若AᵀA=AAᵀ=I,则矩阵A为正交矩阵,且A⁻¹=Aᵀ第6章:矩阵详解什么是正交矩阵?数学定义方形矩阵M正交⇿转置=逆矩阵。这是判定的根本依据。判定公式Mᵀ=M⁻¹Mᵀ:转置|M⁻¹:逆矩阵等价定义MMᵀ=MᵀM=II:同阶单位矩阵应用价值数值计算中,正交矩阵求逆仅需转置,避免了复杂计算与误差,提升效率与稳定性。Unity应用场景:骨骼动画正交化骨骼变换矩阵需正交(仅含旋转平移),防止蒙皮拉伸。浮点误差导致不正交时,需手动正交化。//格拉姆-施密特正交化简化Vector3x=m.GetColumn(0).normalized;Vector3y=Cross(m.c2,x).normalized;m.SetColumns(x,y,Cross(x,y));第6章:矩阵详解如何判断一个矩阵是否正交?核心判定条件一个矩阵是正交的,当且仅当它的行向量(或列向量)构成一组标准正交基。01.单位长度(UnitVector)矩阵中每一行(或列)向量的模长均为1。

即该行(或列)所有元素的平方和等于1。02.相互垂直(MutuallyPerpendicular)矩阵中任意两个不同的行(或列)向量的点积为0。

几何意义上,向量之间的夹角为90°。3×3矩阵验证示例:设r₁,r₂,r₃为矩阵的行向量若满足rᵢ·rᵢ=1(任意行自身点积等于1,单位长度)且rᵢ·rⱼ=0(i≠j)(不同行点积为0,相互垂直),则该矩阵是正交矩阵。第6章:矩阵详解矩阵的正交化方法为何需要正交化?在计算机图形学、物理模拟等场景中,矩阵可能因浮点数精度累积误差或不良输入数据,导致其逐渐偏离严格的正交性,影响计算准确性。核心目标寻找一个尽可能接近原始矩阵的正交矩阵,以恢复或保持向量间的垂直关系,消除计算偏差。标准算法格拉姆-施密特(Gram-Schmidt)正交化核心逻辑:“投影-消除”依次处理矩阵的每个基向量,计算其在所有已处理好的正交向量上的投影,并将其从当前向量中减去,最终得到一组相互垂直的新向量。📐三维空间计算步骤示例:r₁'=r₁|r₂'=r₂-(r₂·r₁')/(r₁'·r₁')·r₁'|r₃'=r₃-(r₃·r₁')/(r₁'·r₁')·r₁'-(r₃·r₂')/(r₂'·r₂')·r₂'|最后对r₁',r₂',r₃'进行归一化处理。第6章:矩阵详解Unity应用场景在Unity中,旋转矩阵和正交矩阵密切相关。Transform.rotation本质上是正交矩阵(旋转不改变向量长度与垂直关系),可利用此特性验证正交性。//获取物体旋转矩阵并验证正交性Matrix4x4rotMat=Matrix4x4.Rotate(transform.rotation);Matrix4x4trans=rotMat.transpose;//转置Matrix4x4inv=rotMat.inverse;//逆矩阵if(trans==inv)Debug.Log("旋转矩阵是正交矩阵");第6章:矩阵详解6.44x4齐次矩阵为什么我们需要4x4矩阵?因为3x3矩阵有一个致命的缺陷——它无法表示平移。第6章:矩阵详解什么是齐次坐标?核心定义三维坐标(x,y,z)增加w分量,扩展为四维坐标(x,y,z,w),构建齐次坐标系统。与三维空间映射•投影:w≠0时,对应三维点(x/w,y/w,z/w)

•标准:物理点(x,y,z)表示为(x,y,z,1)特殊情况:w=0表示无限远点,常用来描述方向矢量。Unity应用场景Unity中物体变换通过4x4localToWorldMatrix表示,结合线性变换(旋转/缩放)与平移。//获取世界变换矩阵Matrix4x4m=transform.localToWorldMatrix;Vector3pos=m.GetColumn(3);//提取平移第6章:矩阵详解使用4x4矩阵实现平移核心痛点:3x3矩阵的局限3x3矩阵仅支持旋转/缩放,无法表示平移,限制空间操作灵活性。解决方案:引入4x4齐次矩阵引入齐次坐标(w=1)构造4x4矩阵,整合平移信息实现统一运算。▎平移矩阵数学形式T=[1000][0100][0010][ΔxΔyΔz1]▎坐标变换计算过程[xyz1]×T=[x+Δxy+Δyz+Δz1]输入➔平移➔输出新坐标▎Unity应用场景:组合变换矩阵通过矩阵乘法构建“缩放→旋转→平移”的组合变换矩阵,实现物体复杂位姿调整。Matrix4x4S=Matrix4x4.Scale(newVector3(2,2,2));Matrix4x4R=Matrix4x4.Rotate(Quaternion.Euler(0,90,0));Matrix4x4T=Matrix4x4.Translate(newVector3(5,0,0));Matrix4x4TRS=T*R*S;//注意乘法顺序:TRS第6章:矩阵详解w分量的作用:选择性平移点(Point)当w=1时,

乘以包含平移的4x4矩阵,

点会发生位置的移动。矢量(Vector)当w=0时,

乘以包含平移的4x4矩阵,

矢量不会发生平移。[x,y,z,0]·T=[x,y,z,0]核心结论w分量就像一个“开关”,

决定了几何变换是否包含平移。

完美区分了代表“位置”的点

与代表“方向”的矢量。第6章:矩阵详解构建一般仿射变换矩阵仿射变换AffineTransformation是线性变换(如旋转、缩放、剪切等)与平移变换的复合运算,解决了线性变换无法表达“平移”的局限性。01.平移(Translation)首先将变换的几何中心,沿向量移动到坐标系的原点(Origin),为线性变换做准备。02.线性变换(Linear)以原点为中心,执行旋转(Rotation)、缩放(Scaling)或剪切(Shear)等标准线性变换操作。03.逆平移(Inverse)最后将变换中心沿相反向量移回原始位置,完成整个仿射变换过程。仿射变换矩阵公式A=T·R·T⁻¹核心应用场景是计算机图形学的基础,可用于实现绕任意点旋转、沿任意方向缩放、三维空间投影等复杂几何变换。第6章:矩阵详解6.5透视投影PerspectiveProjection第6章:矩阵详解两种投影方式对比正交投影(OrthographicProjection)•投影线平行无汇聚,物体大小与距离无关,反映真实比例。透视投影(PerspectiveProjection)•投影线汇聚于投影中心,模拟人眼,远处物体缩小更具真实感。Unity应用场景:自定义投影矩阵Unity相机核心是生成透视矩阵。通过`CjectionMatrix`可自定义鱼眼、广角等投影效果。Cameracam=GetComponent<Camera>();//获取/设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论