矩阵计算器 - 确定,反向和更多
计算矩阵决定数,反向数,转位数和乘法. 支持2x2和3x3矩阵. 这个免费的数学工具提供即时,准确的结果.
矩阵运算:加和减
一个矩阵是一个排列成行和列的矩形数组.其他矩阵有m个行和n个列.
增加和减去需要具有相同尺寸的矩阵. 添加或减去相应的元素:
如果 A = [[1, 2], [3, 4]] 和 B = [[5, 6], [7, 8]],那么:
- A + B = [[1+5, 2+6]], [3+7, 4+8]] = [[6, 8], [10, 12]]
- A - B = [[1-5, 2-6], [3-7, 4-8]] = [[-4, -4], [-4, -4]]
添加矩阵是交换式的 (A + B = B + A) 和关联式的 ((A + B) + C = A + (B + C)).
矩阵乘法
矩阵乘法比元素操作更复杂.要将A (mxn) 乘以B (nxp),内部维度必须匹配 (n),产生结果矩阵C (mxp).
每个元素C[i][j]=所有k的A[i][k]xB[k][j]的和.
一个例子:A = [[1, 2], [3, 4]] (2x2) × B = [[5, 6], [7, 8]] (2x2):
- C[0][0] = 1x5 + 2x7 = 19
- C[0][1] = 1x6 + 2x8 = 22
- C[1][0] = 3x5 + 4x7 = 43
- C[1][1] = 3x6 + 4x8 = 50
结果:C = [[19, 22], [43, 50]]
关键属性:矩阵乘法不是交换式 - AxB ≠ BxA 一般. 然而,它是关联式: (AxB) xC = Ax(BxC).
一个2x2矩阵的决定数和逆数
在确定因素一个2x2矩阵的A = [[a,b],[c,d]]是:det(A) =ad - bc
确定值表示矩阵是否可逆 (det ≠ 0) 并表示转换的缩放因子.
一个2x2矩阵的反向(只有当det ≠ 0时才存在):
A−1 = (1/det) x [[d, -b], [-c, a]]
一个例子:A = [[1, 2], [3, 4]]
det = 1x4 - 2x3 = 4 - 6 = -2
A−1 = (1/-2) x [[4, -2], [-3, 1]] = [[-2, 1], [1.5, -0.5]]
验证:A x A−1 = 识别矩阵 [[1,0],[0,1]]
矩阵的实际应用
矩阵对于许多现实应用来说至关重要:
- 计算机图形和游戏开发:每个3D旋转,缩放和转换都是矩阵乘法.一个4x4转换矩阵同时处理所有三种操作.
- 机器学习:神经网络的权重,输入数据和激活都是矩阵.训练一个神经网络基本上是执行数百万的矩阵乘法.
- 经济学 (输入-输出分析):莱昂蒂夫的输入-输出模型使用矩阵来建模经济部门之间的相互依赖.
- 物理:量子力学使用矩阵 (运算符) 来表示可观测量的量.工程中的应力和应变张量是矩阵量.
- 统计数据:协方差矩阵,主要成分分析 (PCA) 和回归计算都依赖于矩阵运算.
3x3矩阵决定因素和辅因子扩展
对于3x3矩阵,使用辅因子扩张(也称为拉普拉斯扩展).
| 第一个列 | 第2列 | 第3列 | |
|---|---|---|---|
| 一行 | a | b | c |
| 第二行 | d | e | f |
| 第三行 | g | h | i |
这个决定因素是:det = a(ei - fh) - b(di - fg) + c(dh - eg) 这样就没有问题了.
工作示例:设 A = [[2, 1, 3], [0, -1, 2], [4, 0, 1]]
- det = 2(-1x1 - 2x0) - 1(0x1 - 2x4) + 3(0x0 - (-1) x4)
- det = 2 ((-1 - 0) - 1 ((0 - 8) + 3 ((0 + 4)
- det = 2 ((-1) - 1 ((-8) + 3 ((4))
- det = -2 + 8 + 12 =18
对于较大的矩阵 (4x4,5x5等),辅因子扩展方法在计算上变得昂贵 (n!操作). 的分解 or 排序的减少在O (n3) 时间内计算决定因素.
自值和自向量
自己价值是线性代数中最重要的概念之一.对于一个正方形矩阵A,一个自值λ及其对应的自向量v满足以下要求:A·v = λ·v-- 矩阵通过简单地缩放它 (没有旋转) 来转换自向量.
为了找到2x2矩阵A = [[a,b],[c,d]的固有值,解出特性方程: det ((A - λI) = 0
这就得到: (a - λ) ((d - λ) - bc = 0 或:λ2 - (a+d) λ + (ad - bc) = 0
这个项 (a+d) 是标记的矩阵,和 (ad - bc) 是确定因素.
一个例子:A = [[4, 2], [1, 3]]
- 特性方程: λ2 - 7λ + 10 = 0
- 分因数: (λ - 5) ((λ - 2) = 0
- 自值: λ1 = 5, λ2 = 2
在实践中出现自身值的地方:
| 场地 | 应用情况 | 自己的价值代表什么 |
|---|---|---|
| 数据科学 (PCA) | 尺寸缩小 | 每个主要组成部分解释的差异 |
| 机械工程 | 振动分析 | 一个结构的自然频率 |
| 量子力学 | 可观察测量 | 可能的测量结果 |
| 在Google的PageRank | 网页排名 | 访问每个页面的稳定状态概率 |
| 种群生物学 | 莱斯利矩阵模型 | 人口增长率 |
| 控制系统 | 稳定性分析 | 系统稳定性 (负固有值=稳定) |
用矩阵解决线性方程系统
矩阵的最实用用途之一是解决线性方程系统.一个方程系统可以用矩阵形式写成一个字母其中A是系数矩阵,x是变量向量,b是常量向量.
一个例子:
- 2x+3y=8 这样
- 4x减去y=2
矩阵形式:A = [[2, 3], [4, -1]], x = [[x], [y]], b = [[8], [2]]
使用反向的解决方案:x = A−1 · b
- 这样一来,你就会得到一个很好的结果.
- A−1 = (1/-14) x [[-1, -3], [-4, 2]] = [[1/14, 3/14], [4/14, -2/14]]
- x = A−1 · b = [[1/14 x 8 + 3/14 x 2], [4/14 x 8 + (-2/14) x 2]] = [[1], [2]]
- 解:x=1, y=2
克拉默法则是另一种方法:对于每个变量,将其系数矩阵中的列替换为常量向量,并将结果的决定因数除以原始的决定因数.
- x = det ((8, 3), [2, -1]]) / det ((A) = (-8 - 6) / (-14) = -14 / -14 = 1
- y = det ((2, 8), [4, 2]]) / det ((A) = (4 - 32) / (-14) = -28 / -14 = 2
对于大型系统 (n > 3),高斯消除(行减小) 在计算上比矩阵反转或克拉默法则更有效,是计算机使用的标准算法.
特殊矩阵类型参考
不同的矩阵类型具有独特的属性,可以简化计算,并且在特定应用中经常出现:
| 矩阵类型 | 定义 | 主要属性 | 常见使用 |
|---|---|---|---|
| 个人身份 (I) | 在对角线上1s,其他地方0s | AI = IA = A 没有 | 在乘法中中性元素 |
| 截面 | 只有对角线上的非零 | 易于反转 (1/每个对角线条) | 缩放转换 |
| 对称的 | A = AT | 所有固有值都是真实的 | 同变矩阵,物理 |
| 在正交 | A−1 = AT | 保持长度和角度 | 3D图形中的旋转矩阵 |
| 上部三角形 | 在对角线 = 0 以下的所有条目 | det = 对角线输入的乘积 | 高斯消除的结果 |
| 下一个三角形 | 所有对角线以上的条目 = 0 | det = 对角线输入的乘积 | 科莱斯基分解 |
| 稀有 | 主要是零条目 | 特殊的存储/算法 | 网络图,FEM模拟 |
| 正确的确定的 | 所有固有值 > 0 | 代表一个真正的内在产品 | 优化 (赫森矩阵) |
| 随机的 | 列的总和为1,条目>=0 | 表示概率转换 | 马尔科夫链,PageRank |
了解矩阵类型有助于选择正确的算法.例如,如果您知道矩阵是对称正确的,Cholesky分解是解决线性系统的一般LU分解的两倍.
计算机图形中的矩阵转换
在3D计算机图形和游戏开发中,屏幕上的每个对象都使用矩阵运算来定位,旋转和缩放.标准方法使用4×4转换矩阵(同质坐标) 结合转换,旋转和缩放为单个矩阵乘法:
| 转变 | 2D矩阵 (3x3) | 影响 |
|---|---|---|
| 由 (tx, ty) 翻译 | [1, 0, tx], [0, 1, ty], [0, 0, 1]] | 将对象移动到新的位置 |
| 根据 (sx,sy) 进行缩放 | [sx, 0, 0], [0, sy, 0], [0, 0, 1] | 改变对象的大小 |
| 旋转为 θ | [cos θ, -sin θ, 0], [sin θ, cos θ, 0], [0, 0, 1]] | 在原点周围旋转 |
| 反射 (x轴) | [1, 0, 0], [0, -1, 0], [0, 0, 1]] | 横跨x轴的镜子 |
| 切割 (x方向) | [1, k, 0], [0, 1, 0], [0, 0, 1]] | 在水平方向上倾斜对象 |
现代GPU (图形处理单元) 本质上是大规模并行矩阵乘法机器.一个典型的视频游戏 需要每秒数百万次矩阵乘法 - - 转换顶点,计算照明,将3D场景投射到2D屏幕上.这也是为什么GPU对AI/ML训练如此有效的原因:神经网络基本上是大型矩阵运算,GPU架构被优化为正是这种类型的计算.
染管道:3D模型中的每个顶点都经过一系列的矩阵乘法:模型矩阵 (将对象定位在世界) -> 视图矩阵 (将摄像机定位) -> 投影矩阵 (将3D转换为2D屏幕坐标).这三个矩阵通常会预先乘以一个单一的矩阵.最值得信赖的项目矩阵为了效率.
逐步减少行 (高斯消除)
高斯消除是解决线性方程系统,计算决定数和找到矩阵反向的最广泛使用的算法. 目标是将矩阵转换为排行级别的形式(上三角形) 使用三个基本行运算:
- 交换两行
- 将一行乘以非零的标量数
- 将一个行的倍数加到另一个行
工作的例子 -- 解决:x + 2y + z = 9, 2x - y + 3z = 8, 3x + y - z = 2
增强矩阵:
| x | y | z | | | b | |
|---|---|---|---|---|---|
| R1 | 1 | 2 | 1 | | | 9 |
| R2 | 2 | −1 | 3 | | | 8 |
| R3 | 3 | 1 | −1 | | | 2 |
第一步:R2 <- R2 - 2xR1: [0, -5, 1] -10
第二步:R3 <- R3 - 3xR1: [0, -5, -4 ] -25
第三步:R3 <- R3 - R2: [0,0,-5] -15
现在以行级别形式. 后置换: z = -15/-5 = 3; y = (-10 - 1x3) /-5 = -13/-5 = 2.6; x = 9 - 2(2.6) - 3 = 0.8
解:x = 0.8,y = 2.6,z = 3. 通过替换回原始方程来验证.
高斯消除的时间复杂度为O ((n3) ,是大多数数线代数软件的基础,包括MATLAB,NumPy和LAPACK.对于非常大的稀疏系统 (数百万个变量), 联梯度等 代方法更有效.
机器学习和数据科学中的矩阵
现代机器学习建立在矩阵运算上.对于任何在人工智能,数据科学或深度学习领域工作的人来说,理解矩阵是必不可少的:
神经网络向前传递:神经网络的每个层执行一个矩阵乘法,然后执行一个激活函数.x(nx1),重量矩阵W(mxn) 和偏差向量b(mx1):输出 = 激活 (W·x + b)一个具有10个层的深度神经网络在每个推断中执行10个这样的矩阵乘法.
培训 (反向传播)通过链式规则计算梯度 - - 它是通过网络实现的一系列矩阵转换和乘法. 对于每个权重矩阵的损失梯度是计算更新权重的.
| ML 操作 | 使用的矩阵操作 | 典型尺寸 |
|---|---|---|
| 图像分类 (CNN) | 卷积 (滑动矩阵乘法) | 输入: 224x224x3; 过 器: 3x3x64 |
| 语言模型 (转换器) | 注意 = 软max ((QKT/√d) · V | Q,K,V: (seq_len x d_model) 这样一个模型. |
| 推 系统 | 矩阵分解 (SVD) | 用户×项目 (数百万×数百万,稀少) |
| PCA/维度缩小 | 协差矩阵的自身分解 | 功能 × 功能 |
| 线性回归 | β = (XTX) - 1XTy (正常方程) | 样本与特征 |
像GPT-4这样的大型语言模型包含数以亿计的参数, 组织成重量矩阵. 训练涉及对数以亿计元素的矩阵进行乘法--这就是为什么训练大型人工智能模型需要数千个GPU并行运行数周, 耗资超过1亿美元. 整个人工智能革命的数学核心是非常大,非常快速的矩阵乘法.
常见的矩阵错误以及如何避免它们
学生和实践者在处理矩阵时经常犯下以下错误:
| 一个错误 | 为什么这是错误的 | 正确的方法 |
|---|---|---|
| 假设AB=BA | 矩阵乘法不是交换式的 | 总是检查顺序;一般来说,AB ≠ BA |
| 添加不同尺寸的矩阵 | 需要相同的尺寸 | 首先检查尺寸:两者必须是mxn |
| 在逆转之前忘记检查det ≠ 0 | 单数矩阵没有逆数 | 总是先计算决定数 |
| 在乘法中混 行和列 | A ((mxn) x B ((nxp) = C ((mxp);内部尺寸必须一致 | 明确写出尺寸;检查内部匹配 |
| 错误分配: (A+B) 2 ≠ A2+2AB+B2 | 因为AB ≠ BA,二项式扩展不适用 | (A+B) 2 = A2 + AB + BA + B2 |
| 假设 (AB) -1 = A-1B-1 | 逆转反转顺序 | (AB) -1 = B-1A-1 (反向顺序) |
在处理矩阵时最重要的习惯:总是写下尺寸这会立即捕获尺寸不匹配的错误, 并在开始计算之前清晰显示预期结果的尺寸.
人们常问的问题
什么是标识矩阵?
标识矩阵是一个正方形矩阵,主要对角线上是1s,其他地方是0s.对于2x2的标识:[1,0],[0,1].将任何矩阵A乘以标识矩阵给出A--它等同于乘以1的矩阵.
你能把一个3x2矩阵乘以一个2x4矩阵吗?
是的 -- 内部维度匹配 (2). 结果是3x4矩阵 (外部维度). 规则:你可以乘以mxn矩阵乘以nxp矩阵; 结果是mxp. 如果内部维度不匹配,乘法是未定义的.
一个矩阵是单数的意思是什么?
一个奇数矩阵的决定数为0且没有逆数.在几何上,一个奇数变换"平坦化"空间 - 将二维平面减少为直线,或将三维空间减少为平面. 奇数矩阵在没有唯一解决方案的方程系统中出现 (要么没有解决方案,要么无限多).
一个矩阵的转位是什么?
一个矩阵A (写作AT) 的转位是通过翻转行和列来获得的.如果A=[1,2,3],[4,5,6],那么AT=[1,4],[2,5],[3,6].一个mxn矩阵转位时变成一个nxm矩阵.
矩阵运算:你可以计算什么
矩阵是一个排列成行和列的矩形数组.矩阵运算是线性代数,计算机图形,机器学习,工程和数据科学的基础.
| 运行情况 | 要求 | 结果尺寸 |
|---|---|---|
| 增加/减去 | 同样的尺寸 (mxn) | 没有 |
| 标量乘法 | 任何矩阵 | 与输入相同 |
| 矩阵乘法 | A是mxn,B是nxp | mxp 的 |
| 转载 | 任何mxn矩阵 | 没有 |
| 决定性因素 | 平方矩阵 (nxn) | 单个标量值 |
| 反向的 | 正方形,非单数 | 没有 |
矩阵乘法是没有交换性: AxB ≠ BxA 一般. 标识矩阵 (I) 在对角线上有1s,其他地方有0s;将任何矩阵乘以I返回原始矩阵.矩阵在3D图形中用于场景中的每个顶点的旋转,缩放和转换转换.
一个2x2矩阵的决定数是什么?
对于矩阵[a, b],[c, d],则确定量=ad - bc.如果确定量为0,则矩阵没有逆数 (它是单数).
一个矩阵的转位是什么?
转换换换行和列:行i变成列i.一个3x2矩阵在转换后变成2x3.
矩阵乘法用于什么?
线性转换 (图形中的旋转,剪切,尺度),解决方程系统,神经网络重量计算,马尔科夫链状态转换和统计中的协差计算.