【MATLAB】线性代数矩阵基本运算(转置,乘法,求逆)

您所在的位置:网站首页 怎么用matlab计算矩阵乘法 【MATLAB】线性代数矩阵基本运算(转置,乘法,求逆)

【MATLAB】线性代数矩阵基本运算(转置,乘法,求逆)

2023-12-23 02:40| 来源: 网络整理| 查看: 265

文章目录 创建矩阵向量转置矩阵乘法单位矩阵矩阵求逆

创建矩阵

MATLAB 提供了许多函数,用于创建各种类型的矩阵。例如,您可以使用基于帕斯卡三角形的项创建一个对称矩阵:

A = pascal(3) A = 1 1 1 1 2 3 1 3 6

您也可以创建一个非对称幻方矩阵,它的行总和与列总和相等:

B = magic(3) B = 8 1 6 3 5 7 4 9 2

另一个示例是由随机整数构成的 3×2 矩形矩阵:在这种情况下,randi 的第一个输入描述整数可能值的范围,后面两个输入描述行和列的数量。

C = randi(10,3,2) C = 9 10 10 7 2 1

列向量为 m×1 矩阵,行向量为 1×n 矩阵,标量为 1×1 矩阵。

向量转置

示例矩阵 A = pascal(3) 是对称的,因此 A’ 等于 A。然而,B = magic(3) 不是对称的,因此 B’ 的元素是 B 的元素沿主对角线反转之后的结果:

B = magic(3) B = 8 1 6 3 5 7 4 9 2 X = B' X = 8 3 4 1 5 9 6 7 2

对于复数向量或矩阵 z,参量 z’ 不仅可转置该向量或矩阵,而且可将每个复数元素转换为其复共轭数。也就是说,每个复数元素的虚部的正负号将会发生更改。以如下复矩阵为例:

z = [1+2i 7-3i 3+4i; 6-2i 9i 4+7i] z = 1.0000 + 2.0000i 7.0000 - 3.0000i 3.0000 + 4.0000i 6.0000 - 2.0000i 0.0000 + 9.0000i 4.0000 + 7.0000i z 的复共轭转置为: z' ans = 1.0000 - 2.0000i 6.0000 + 2.0000i 7.0000 + 3.0000i 0.0000 - 9.0000i 3.0000 - 4.0000i 4.0000 - 7.0000i

非共轭复数转置(其中每个元素的复数部分保留其符号)表示为 z.’:

z.' ans = 1.0000 + 2.0000i 6.0000 - 2.0000i 7.0000 - 3.0000i 0.0000 + 9.0000i 3.0000 + 4.0000i 4.0000 + 7.0000i 矩阵乘法

如果 A 为 m×p 且 B 为 p×n,则二者的乘积 C 为 m×n。该乘积实际上可以使用 MATLAB for 循环、colon 表示法和向量点积进行定义:

A = pascal(3) B = magic(3) m = 3; n = 3; for i = 1:m for j = 1:n C(i,j) = A(i,:)*B(:,j); end end C A = 1 1 1 1 2 3 1 3 6 B = 8 1 6 3 5 7 4 9 2 C = 15 15 15 26 38 26 41 70 39 单位矩阵

函数eye(m,n)返回 m×n 矩形单位矩阵, 函数eye(n) 返回 n×n 单位方阵。

矩阵求逆

如果矩阵 A 为非奇异方阵(非零行列式),则方程 AX = I 和 XA = I 具有相同的解 X。此解称为 A 的逆矩阵,inv 函数和表达式 A^-1 均可对矩阵求逆。

A = pascal(3) A = 1 1 1 1 2 3 1 3 6 X = inv(A) X = 3.0000 -3.0000 1.0000 -3.0000 5.0000 -2.0000 1.0000 -2.0000 1.0000 A*X ans = 1.0000 0 0 0.0000 1.0000 -0.0000 -0.0000 0.0000 1.0000

通过 det 计算的行列式表示由矩阵描述的线性变换的缩放因子。当行列式正好为零时,矩阵为奇异矩阵,因此不存在逆矩阵。

d = det(A) d = 1

求解线性方程组 Ax = b 时,常常会误用 inv。从执行时间和数值精度方面而言,求解此方程的最佳方法是使用矩阵反斜杠运算符,即 x = A\b。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3