
- 别 称
- 矩阵式、纵横阵
- 表达式
- Amn
- 提出者
- 凯利
- 奠基人
- 凯利
- 拼 音
- ju zhen
- 应用学科
- 线性代数
- 中文名
- 矩阵
- 适用领域范围
- 天体物理、电路学、力学、计算机科学等
- 解 释
- 指纵横排列的二维数据表格
- 外文名
- Matrix
- 提出时间
- 19世纪
-
Matlab 基础知识——矩阵操作及运算(矩阵、数组区别)
2018-08-16 18:14:13看论文时,经常看到矩阵,但在记忆里又看到数组。那么问题来了,矩阵和数组分别是什么?二者有什么区别?看论文时,经常看到矩阵,但在记忆里又看到数组。那么问题来了,矩阵和数组分别是什么?二者有什么区别? 在...看论文时,经常看到矩阵,但在记忆里又看到数组。那么问题来了,矩阵和数组分别是什么?二者有什么区别?看论文时,经常看到矩阵,但在记忆里又看到数组。那么问题来了,矩阵和数组分别是什么?二者有什么区别?
在数学上,定义m×n个数
(i=1, 2…, m ; j=1, 2,… n)排成的m行n列的数表示为m行n列的矩阵,并且用大写加粗黑色字母表示。
只有一行的矩阵:
,也称之为行向量;
只有一列的矩阵,也称之为列向量。
矩阵最早来自于方程组的系数即常数所构成的方阵,这一个概念有19世纪英国数学家凯利首先提出。
数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称之为数组。
在Matlab中,一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可以分为数值数组、字符数组、单元数组、结构数组等各种类别。
看完上面的内容,矩阵和数组的区别似乎懂了一点。矩阵和数组在Matlab中存在很多方面的区别:
(1)矩阵是数学的概念,而数组是计算机程序设计领域的概念;
(2)作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则。而数组运算是Matlab软件定义的规则,其目的是为了使数据管理方便,操作简单,命令形式自然,执行计算有效。
二者联系主要体现在:在Matlab中,矩阵是以数组的形式存在的。因此,一维数组相当于向量;二维数组相当于矩阵。所以矩阵是数组的子集。
对矩阵的基本操作,主要有矩阵的构建、矩阵维度和矩阵大小的改变、矩阵的索引、矩阵的属性信息的获取、矩阵结构的改变等。对于这些操作,Matlab中都有固定的指令或者相应的库函数与之相对应。在程序用到的时候,每次都要上网查,网上的很散。这里,我对我经常用的做了总结。以后用到可以查阅。
1、矩阵下表引用
表达式(Matlab程序)
函数功能
1
A(1)
将二维矩阵A重组为一维数组,返回数组中第一个元素
2
A(: , j)
返回二维矩阵A中第 j 列 列向量
3
A( i , :)
返回二维矩阵A中第 i 行 行向量
4
A(: , j : k)
返回二维矩阵A中第 j 列到第 k列 列向量组成的子矩阵
5
A( i : k , :)
返回二维矩阵A中第 i 行到第 k行 行向量组成的子矩阵
6
A( i : k , j : m)
返回二维矩阵A中第 i 行到第 k 行 行向量
和第 j 列到第 m 列 列向量的交集组成的子矩阵
7
A(:)
将二维矩阵A中得每列合并成一个列向量
8
A( j : k)
返回一个行向量,其元素为A(:)中的第 j 个元素到第 k 个元素
9
A([ j1 j2…])
返回一个行向量,其元素为A(:)中的第 j1,j2…个元素
10
A(: , [ j1 j2 …])
返回矩阵A的第 j1 列、第 j2 列等的列向量
11
A([ i1 i2 …] : ,)
返回矩阵A的第 i1 行、第 i2 行等的行向量
12
A([ i1 i2 …] , [ j1 j2 …])
返回矩阵A的第 j1列、第 j2 列等和矩阵A的第 i1 行、第 i2 行等的元素
下面将常用的几个举例说明:
例如:A=[1 2 3 4 5;
12 12 14 56 657;
23 46 34 67 56 ];
(1)将二维矩阵A转化成一维矩阵(列向量):Matlab 默认将其转化成列向量,需要行向量转置即可。
Matlab程序: A(:) %将二维矩阵其转化成列向量
(2)读取矩阵取前N行或N列的方法
Matlab程序:
A(1:2,:) %读取矩阵A前2行
A(:,1:3) %读取矩阵A前3列
(3)求矩阵中每行或每列的最大值和最小值
① 找矩阵A每列的最大值:[max_A,index]=max(A,[],1);
其中,max_A是最大的数值,index是最大的数值所处的位置
② 找矩阵A每行的最大值:[max_A,index]=max(A,[],2);
其中,max_A是最大的数值,index是最大的数值所处的位置
同理可求出每行,每列的最小值。
③ 找矩阵A每列的最小值:[min_A,index]=min(A,[],1);
其中,min_A是最小的数值,index是最小的数值所处的位置
④ 找矩阵A每行的最小值:[min_A,index]=min(A,[],2);
其中,min_A是最小的数值,index是最小的数值所处的位置
2、矩阵合并
已知矩阵:
A=[1 2 3 4 5;
12 12 14 56 657;
23 46 34 67 56];
B=[1 1 1 1 1;
2 2 2 2 2;
3 3 3 3 3];
(1)矩阵A,B左右合并:horzcat(A,B); %矩阵A,B左右合并
(2)矩阵A,B上下合并:vertcat(A,B); %矩阵A,B上下合并
3、矩阵运算(加、减、乘、除、点乘、点除等)
(1)A+B; 表示矩阵A和矩阵B相加(各个元素对应相加);
(2)A-B; 表示矩阵A和矩阵B相减(各个元素对应相减);
(3)A*B; 表示矩阵A和矩阵B相乘;
(4)A.*B; 表示矩阵A和矩阵B对应元素相乘(点乘);
(5)A/B; 表示矩阵A与矩阵B相除法;
(6)A./B; 表示矩阵A和矩阵B对应元素相除(点除);
(7)A^B; 表示矩阵A的B次幂;
(8)A.^B; 表示矩阵A的每个元素的B次幂。
Matlab平台提供了大量的运算函数,很强势。下面列举了常用的函数
函数
运算法则
1
exp(x)
求以e为底数的x次幂
2
log(x)
求以e为底数对x值取对数
3
Log10(x)
求以10为底数x值取对数
4
sqrt(x)
求x的平方根
5
sin(x)
正弦函数
6
cos(x)
余弦函数
7
tan(x)
正切函数
8
asin(x)
反正弦函数
9
acos(x)
反余弦函数
10
atan(x)
反正切函数
11
mode(a,b)
a与b相除取余数
12
min(a,b)
返回a, b中较小的数值
13
max(a,b)
返回a, b中较大的数值
14
mean(x)
求x的列平均数(列平均)
15
median(x)
求x的列中位数(列中位数)
16
sum(x)
x中各个列之间的元素求和
17
rank(x)
X矩阵的秩
参考资料
[1] https://blog.csdn.net/yundanfengqing_nuc/article/details/49246477
[2] http://blog.sina.com.cn/s/blog_70c7b3780100ru11.html
[3] https://blog.csdn.net/carrie8899/article/details/8500088
如果觉得内容还不错的话,欢迎点赞、转发、收藏,还可以关注微信公众号、CSDN博客、知乎。
1. 微信公众号:
2. CSDN博客:https://xiongyiming.blog.csdn.net/
3. 知乎:https://www.zhihu.com/people/xiongyiming
-
求解逆矩阵的常用三种方法
2018-08-08 11:15:271.待定系数法 矩阵A= 1,2 -1,-3 假设所求的逆矩阵为 a,b c,d ...伴随矩阵是矩阵元素所对应的代数余子式,所构成的矩阵,转置后得到的新矩阵。 我们先求出伴随矩阵A*= -3,-2 1,1 接下来...1.待定系数法
矩阵A=
1, 2
-1,-3
假设所求的逆矩阵为
a,b
c,d
则
从而可以得出方程组
a + 2c = 1
b + 2d = 0
-a - 3c = 0
-b - 3d = 1
解得
a=3; b=2; c= -1; d= -12.伴随矩阵求逆矩阵
伴随矩阵是矩阵元素所对应的代数余子式,所构成的矩阵,转置后得到的新矩阵。
我们先求出伴随矩阵A*=
-3, -2
1 , 1
接下来,求出矩阵A的行列式|A|
=1*(-3) - (-1)* 2
= -3 + 2
= -1
从而逆矩阵A⁻¹=A*/|A| = A*/(-1)= -A*=
3, 2
-1,-13.初等变换求逆矩阵
(下面我们介绍如何通过初等(行)变换来求逆矩阵)
首先,写出增广矩阵A|E,即矩阵A右侧放置一个同阶的单位矩阵,得到一个新矩阵。
1 2 1 0
-1 -3 0 1
然后进行初等行变换。依次进行
第1行加到第2行,得到
1 2 1 0
0 -1 1 1
第2行×2加到第1行,得到
1 0 3 2
0 -1 1 1
第2行×(-1),得到
1 0 3 2
0 1 -1 -1
转载自:https://jingyan.baidu.com/article/1709ad8095e1924634c4f03a.html
-
MATLAB01:基本的数学运算与矩阵运算
2019-11-12 17:22:52MATLAB01:基本的数学运算与矩阵运算MATLAB基本语法变量变量名保留变量不适合做变量名变量不应当覆盖内置函数MATLAB的调用优先级变量类型数字型变量的显示格式MATLAB命令行使用MATLAB进行数字运算使用MATLAB计算数学...pdf版本笔记的下载地址: MATLAB01_基本的数学运算与矩阵运算(访问密码:3834)
MATLAB01:基本的数学运算与矩阵运算
学习一门技术最好的方式就是阅读官方文档,可以查看MATLAB官方文档
MATLAB基本语法
变量
- MATLAB中的变量不需要声明.
- 使用
=
为变量赋值
变量名
- 与大多数编程语言相同,MATLAB中的变量名是大小写敏感的.
- 变量名只能由[
0~9
,a~z
,A~z
,_
]组成,且变量名不能以数字开头.
保留变量不适合做变量名
MATLAB中有一些变量有其具体意义,不适合用作变量名.
变量 意义 ans
上一句的运算的结果 i
和j
复数算子 Inf
无穷 eps
浮点相对精度,即1.0到下一个浮点数之间的距离(值为2.2204e-16) NaN
非数字 pi
圆周率 除此以外,使用
iskeyword
命令可以查看MATLAB语言所有的关键字,这些关键字也不允许被用作变量名.变量名不应当覆盖内置函数名
在MATLAB中,变量的调用优先级(calling priority)高于函数,因此变量名不应该覆盖内置函数.
cos='This string.'; cos(8) % 对字符串进行索引取值,得到'r'
若某函数被变量名所覆盖,则调用
clear <变量名>
可以取消绑定在该函数名上的变量名clear cos % 清除绑定在cos上的变量 cos(8) % 调用内置余弦函数运算得到-0.1455
clear
是一个比较危险的命令,因为该命令后若不加参数,则表示清除当前工作区内的所有变量.变量类型
MATLAB中的变量类型有:
logical
,char
,numeric
,cell
,struct
以及由他们组成的数组或矩阵.数字型变量的显示格式
我们直接定义的数字型变量,默认是以
double
形式存储的.我们可以通过
format <显示格式>
改变数字型变量的显示格式.显示格式 说明 例子 short
短定点格式.显示小数点后4位 3.1416
long
长定点格式.对 double
类型变量显示小数点后15位,对float
类型变量显示小数点后7位.3.141592653589793
shortE
短科学计数法,显示小数点后4位.并带有科学计数法标记. 3.1416e+00
longE
长科学计数法.对 double
类型变量显示小数点后15位,对float
类型变量显示小数点后7位.并带有科学计数法标记.3.141592653589793e+00
bank
银行格式.显示小数点后2位. 3.14
hex
十六进制格式. 400921fb54442d18
rat
比例格式 355/113
MATLAB命令行
-
使用行尾
;
抑制输出: 在一行命令后使用;
抑制输出,否则运算结果将被显示在终端上. -
其他实用的命令:
命令 作用 clc
清除终端的输出 clear
清除当前工作区内所有变量 who
以简略格式显示工作区内所有变量 whos
以复杂格式显示工作区内所有变量
使用MATLAB进行数字运算
使用MATLAB计算数学表达式
- MATLAB常见运算符有:
+
,-
,*
,/
,^
. - 数学表达式被计算后,其值被存入变量
ans
. - 运算的优先级规则:
- 同等优先级下从左向右运算.
- 优先级顺序(从高到低)
- 括号
()
- 乘方
^
- 乘除法
*
,/
- 加减法
+
,-
- 括号
下面例子演示了数学表达式求值:
待求数学表达式 MATLAB命令 cos(sqrt((1+2+3+4)^3/5))
sin(sqrt(pi))+log(tan(1))
2^(3.5*1.7)
exp(sin(10))
MATLAB内置的数学函数
- MATLAB内置的算数运算函数
- 基本运算:
- 加:
+
,sum
,cumsum
,movsum
- 减:
-
,diff
- 乘:
.*
,*
,prod
,cumprod
- 除:
./
,.\
,/
,\
- 乘方:
.^
,^
- 加:
- 取模运算:
mod
,rem
,idivide
,ceil
,fix
,floor
,round
- 基本运算:
- MATLAB内置的三角运算函数
- 正弦:
sin
,sind
,sinpi
,asin
,asind
,sinh
,asinh
- 余弦:
cos
,cosd
,cospi
,acos
,acosd
,cosh
,acosh
- 正切:
tan
,tand
,atan
,atand
,atan2
,atan2d
,tanh
,atanh
- 余割:
csc
,cscd
,acsc
,acscd
,csch
,acsch
- 正割:
sec
,secd
,asec
,asecd
,sech
,asech
- 余切:
cot
,cotd
,acot
,acotd
,coth
,acoth
- 斜边:
hypot
- 转换:
deg2rad
,rad2deg
,cart2pol
,cart2sph
,pol2cart
,sph2cart
- 正弦:
- MATLAB内置的指数对数函数:
exp
,expm1
,log
,log10
,log1p
,log2
,nextpow2
,nthroot
,pow2
,reallog
,realpow
,realsqrt
,sqrt
- MATLAB内置的复函数:
abs
,angle
,complex
,conj
,cplxpair
,i
,imag
,isreal
,j
,real
,sign
,unwrap
使用MATLAB进行矩阵运算
定义矩阵
向终端输入矩阵
在MATLAB中,使用
[]
将待输入的矩阵内容括起来,使用空格或逗号
,
分隔行内变量,使用;
分隔每一行.下面例子演示了矩阵的定义:
MATLAB命令 得到的矩阵 [1 2 3 4]
[1; 2; 3; 4]
[1 21 6; 5 17 9; 31 2 7]
使用冒号运算符创建向量
使用冒号运算符
:
可以创建一个长向量,其语法如下:冒号表达式 得到的结果 j:k
j:i:k
下面例子演示了冒号运算符的使用:
MATLAB语句 得到的结果 1:5
1:2:5
[1:5; 2:3:15; -2:0.5:0]
'a':2:'z'
'acegikmoqsuwy'
定义特殊矩阵
下列命令可以定义特殊矩阵
命令 得到的结果 eye(n)
得到一个的单位矩阵 zeros(n1, n2)
得到一个的全0矩阵 ones(n1, n2)
得到一个的全1矩阵 diag(vector)
得到一个以向量 vector
中内容为对角线的对角矩阵矩阵的索引
-
MATLAB中的矩阵是以列先序存储的.且索引下标从1开始.
-
矩阵有两种索引方式: 按一维索引和按二维索引.对于一个一般的矩阵,其索引顺序如下:
-
矩阵的索引可以使用冒号
:
,表示选取所有行或所有列. -
矩阵的索引可以是一个或两个向量,表示选中向量内的所有行或所有列.
下面例子演示了矩阵索引的规则:
原矩阵 索引 得到的结果 解释 A(8)
取矩阵第8个元素 A([1 3 5])
分别取矩阵第 [1 3 5]
个元素放入新矩阵的对应位置A([1 2; 3 4])
分别取矩阵第 [1 2; 3 4]
个元素放入新矩阵的对应位置A(3,2)
取矩阵第3行第2列的元素 A([1,2], :)
取矩阵第 [1 2]
行和所有列的交叉项A([1 3], [1 2])
取矩阵第 [1 3]
行和第[1 2]
列的交叉项矩阵的操作
操作矩阵的运算符
运算符 操作 形式 例子 +
矩阵与向量相加 A+b
[6 3] + 2 = [8 5]
-
矩阵与向量相减 A-b
[6 3] - 2 = [4 1]
+
矩阵与矩阵对应位置相加 A+B
[6 3] + [4 8] = [10 11]
-
矩阵与矩阵对应位置相减 A-B
[6 3] - [4 8] = [2 -5]
*
矩阵与矩阵相乘 A*B
[6 3] * [4 8]' = 48
.*
矩阵与矩阵对应位置相乘 A.*B
[6 3] * [4 8] = [24 24]
/
矩阵与矩阵右除(等价于 A*inv(B)
)A/B
[6 3] / [4 8] = 0.6
\
矩阵与矩阵左除(等价于 inv(A)*B
)A\B
[6 3] / [4 8] = [0.06667 1.3333; 0 0]
./
矩阵与矩阵对应位置右除 A./B
[6 3] ./ [4 8] = [1.5 0.375]
.\
矩阵与矩阵对应位置左除 A.\B
[6 3] .\ [4 8] = [0.6667 2.6667]
^
矩阵与向量乘方 A^b
[1 2; 3 4]^3 = [37 54; 81 118]
.^
矩阵与矩阵对应位置乘方 A.^B
[1 2; 3 4].^[1 2; 3 4] = [1 4; 27 256]
操作矩阵的函数
下面对矩阵
进行操作以演示操作矩阵的常见函数
函数 作用 例子 结果 max(A, [], dim)
获取矩阵 A
的dim
维度上的最大值max(A, [], 1)
min(A, [], dim)
获取矩阵 A
的dim
维度上的最小值min(A, [], 2)
sum(A, dim)
获取矩阵 A
的dim
维度上的和sum(A, 1)
mean(A, dim)
获取矩阵 A
的dim
维度上的平均值mean(A, 1)
sort(A, dim, direction)
获取矩阵 A
的dim
维度上按direction
顺序排序结果sort(A, 1, 'descend')
sortrows(A, column)
获取矩阵 A
按照每行第column
个元素升序排序结果.sortrows(A, 2)
size(A, dim)
获取矩阵 A
的dim
维度上的形状.若不指定dim
,则返回整个矩阵的形状.size(A)
find(A, n)
获取矩阵 A
前n
个非零元素的索引find(A,5)
对于上面这些函数,除第一个参数以外,其它参数都是可选的.
pdf版本笔记的下载地址: MATLAB01_基本的数学运算与矩阵运算(访问密码:3834)
-
矩阵
2012-09-09 11:15:21矩阵 维基百科,自由的百科全书 线性代数 向量 · 矩阵 · 行列式 · 线性空间 显示▼向量 显示▼矩阵与行列式 显示...矩阵
维基百科,自由的百科全书线性代数 向量 · 矩阵 · 行列式 · 线性空间 显示▼向量 數學上,一個m×n的矩陣是一个由m行n列元素排列成的矩形陣列。矩陣里的元素可以是数字、符号或数学式。以下是一个由6个数字元素构成的2行3列的矩阵:
大小相同(行数列数都相同)的矩阵之间可以相互加减,具体是对每个位置上的元素做加减法。矩阵的乘法则较为复杂。两个矩阵可以相乘,当且仅当第一个矩阵的列数等于第二个矩阵的行数。矩阵的乘法满足结合律和分配律,但不满足交换律。
矩阵的一个重要用途是解线性方程组。线性方程组中未知量的系数可以排成一个矩阵,加上常数项,则称为增广矩阵。另一个重要用途是表示线性变换,即是诸如
之类的線性函數的推广。设定基底后,某个向量v可以表示为m×1的矩阵,而线性变换f可以表示为行数为m的矩阵R,使得经过变换后得到的向量f(v)可以表示成Rv的形式。矩阵的特征值和特征向量可以揭示线性变换的深层特性。
矩陣是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。 矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。关于矩阵相关理论的发展和应用,請參考矩陣理論。在天体物理、量子力学等领域,也会出现无穷维的矩阵,是矩阵的一种推广。
[编辑]
矩阵的概念最早于1922年见于中文。1922年,程廷熙在一篇介绍文章中将矩阵译为“纵横阵”。1925年,科学名词审查会算学名词审查组在《科学》第十卷第四期刊登的审定名词表中,矩阵被翻译为“矩阵式”,方块矩阵翻译为“方阵式”,而各类矩阵如“正交矩阵”、“伴随矩阵”中的“矩阵”则被翻译为“方阵”。1935年,中国数学会审查后,中华民国教育部审定的《数学名词》(并“通令全国各院校一律遵用,以昭划一”)中,“矩阵”作为译名首次出现。1938年,曹惠群在接受科学名词审查会委托就数学名词加以校订的《算学名词汇编》中,认为应当的译名是“长方阵”。中华人民共和国成立后编订的《数学名词》中,则将译名定为“(矩)阵”。1993年,中国自然科学名词审定委员会公布的《数学名词》中,“矩阵”被定为正式译名,并沿用至今[1]。译名[编辑]定义
将一些元素排列成若干行,每行放上相同数量的元素,就是一个矩阵。这里说的元素可以是数字,例如以下的矩阵:
排列成的形状是矩形,所以称为矩阵。在中國大陸,橫向的元素组称為「行」,縱向称為「列」,而在台灣則相反,橫向称為「列」,縱向称為「行」。矩阵一般用大写拉丁字母表示,需要具体写出其中元素时,一般用方括号或圆括号括起。以上的矩阵A是一个4行3列的矩阵。
行数和列数是1的矩阵分别称为行向量和列向量。这是因为一个向量可以表示成行数或列数是1的矩阵形式。矩阵的任一行(列)都是一个行(列)向量,例如矩阵A的第一行
就是一个行向量。行(列)向量可以看成一个向量,因此可以称矩阵的两行(列)相等,或者某一行等于某一列,表示其对应的向量相等。
[编辑]标记
一个矩阵A從左上角數起的第i 行第j 列上的元素称为第i,j項,通常记为
、
、
或
。在上述例子中
。如果不知道矩阵A的具体元素,通常也会将它记成
或
。反之,如果A的元素可以写成只与其行数i和列数j有关的统一函数f,那么也可以用
作为A的简写。例如
是矩阵
的简写。要注意的是,一些计算机编程语言中,会将第1行(列)称为第0行(列),从而对矩阵的写法产生影响,比如矩阵B就要改写成
。
矩阵的元素可以是数字、符号或数学表达式。一般为了支持矩阵的运算,矩阵的元素之间应当能做加减法和乘法,所以是某个环里的元素。最常见的是元素属于实数域或复数域的矩阵,简称为实矩阵和复矩阵。更一般的情况下,矩阵的元素可以是由一个环中的元素排成。 给定一个环R,所有由R中元素排成的m×n矩陣的集合写作
或
。若m = n,則通常記以
或
,称其为n维矩阵或方阵。
[编辑]矩陣的基本運算
矩阵的最基本运算包括矩阵加(减)法,数乘和转置运算。被称为“矩阵加法”、“数乘”和“转置”的运算不止一种[2],其中最基本最常用的定义如下:
运算 定义 例子 加(减)法 m×n 矩陣A和B的和(差):A±B為一个m×n矩陣,其中每个元素是A和B相应元素的和(差), - (A ± B)i,j = Ai,j ± Bi,j,
- 其中 1 ≤ i ≤ m , 1 ≤ j ≤ n.
数乘 标量c与矩陣A的数乘:cA的每个元素是A的相应元素与c的乘积, - (cA)i,j = c · Ai,j.
转置 m×n 矩阵A的转置是一个n×m的矩阵,记为AT(有些书中也记为Atr 或tA、A'),其中的第i个行向量是原矩阵A的第i个列向量;或者说,转置矩阵AT第i行第j列的元素是原矩阵A第j行第i列的元素, - (AT)i,j = Aj,i.
矩阵的加法运算满足交换律:A + B = B + A[3]。矩阵的转置和数乘运算对加法满足分配律:
- (A + B)T = AT + BT
- c(A + B) = cA + cB
矩阵加法和数乘兩種運算使得
成為一个mn维的實數線性空間。而转置和数乘运算满足类似于结合律的规律:
- c(AT) = (cA)T
矩阵也有类似行列式的初等变换,即对矩阵的某些行和某些列进行三类操作:交换两行(列),将一行(列)的每个元素都乘以一个固定的量,以及将一行(列)的每个元素乘以一个固定的量之后加到另一行(列)的相应元素上。这些操作在求矩阵的逆之时有用。
[编辑]矩阵乘法
两个矩阵的乘法仅当第一个矩陣A的列數和另一个矩阵B的行數相等时才能定义。如A是m×n矩陣和B是n×p矩陣,它們的乘積AB是一個m×p矩陣,它的一个元素
其中 1 ≤ i ≤ m, 1 ≤ j ≤ p[4]。
例如
矩阵的乘法满足结合律和对矩阵加法的分配律(左分配律和右分配律):
- 结合律:(AB)C = A(BC),
- 左分配律: (A + B)C = AC + BC,
- 右分配律: C(A + B) = CA + CB.
矩阵的乘法与数乘运算之间也满足类似结合律的规律;与转置之间则满足倒置的分配律。
- c(AB) =(cA)B = A(cB)
- (AB)T = BTAT
矩阵乘法不满足交换律。一般来说,矩陣A及B的乘积AB存在,但BA不一定存在,即使存在,大多数时候 AB ≠ BA。比如下面的例子:
这一特性使得矩阵代数与常见的一些数域(有理数、实数、复数)以及环(多项式环、整数环)都不同。给定一个n维的方块矩阵A,与A交换的所有方块矩阵构成一个环,称为A的交换子环。这些矩阵也构成
的一个子空间,称为A的可交换空间[5]。与
中所有矩阵交换的矩阵只有形如
的矩阵(称为数乘矩阵)。其中的
是单位矩阵,也就是主对角线上的元素为1,其它元素为0的矩阵。任意矩阵M乘以单位矩阵都得到自身:
。
除了最常见的矩阵乘法定义以外,也有一些较不常见的矩阵乘法,比如阿达马乘积和克罗内克乘积[6]。
[编辑]线性方程组
矩阵乘法的一个基本应用是在线性方程组上。线性方程组是方程组的一种,它符合以下的形式:
其中的
以及
等等是已知的常数,而
等等则是要求的未知数。运用矩阵的方式,可以将线性方程组写成一个向量方程:
其中,A是由方程组里未知量的系数排成的m×n 矩陣,x 是含有n 个元素的行向量,b 是含有m 个元素的行向量[7]。
这个写法下,将原来的多个方程转化成一个向量方程,在已知矩阵
和向量
的情况下,求未知向量
。
[编辑]綫性變換
矩陣是綫性變換的便利表達法。矩陣乘法的本质在联系到綫性變換的时候最能体现,因为矩阵乘法和线性变换的合成有以下的連繫: 以
表示所有長度為n的行向量的集合。每个m×n的矩陣A都代表了一个从
射到
的线性变换。反过来,對每個綫性變換
,都存在唯一m×n矩陣
使得對所有
中的元素x,
。这个矩阵
第i 行第j 列上的元素是正则基向量
(第j个元素是1,其余元素是0的向量)在f映射后的向量
的第i个元素。
也就是说,从
射到
的线性变换构成的向量空间
上存在一个到
的一一映射:
以下是一些典型的2维实平面上的线性变换对平面向量(图形)造成的效果,以及它们对应的2维矩阵。其中每个线性变换将蓝色图形映射成绿色图形;平面的原点(0, 0)用黑点表示。
水平错切变换,
幅度m=1.25.水平反射变换 “挤压”变换,
压缩程度r=3/2放缩变换,3/2倍 旋转变换,左转30° 设有k×m的矩陣B代表綫性變換g : Rm -> Rk,則矩陣積BA代表了綫性變換的复合g o f[8],因为
- (g ∘ f)(x) = g(f(x)) = g(Ax) = B(Ax) = (BA)x
矩阵的秩是指矩阵中线性无关的行(列)向量的最大个数[9],同时也是矩阵对应的线性变换的像空间的维度[10]。秩-零化度定理说明矩阵的列数量等于矩阵的秩与零空间维度之和[11]。
[编辑]方块矩阵
行数与列数相同的矩阵称为方块矩阵,简称方阵。所有n维的方块矩阵构成一个线性空间,这个空间对矩阵乘法也是封闭的,因此也是一个代数。方阵A称为可逆或非奇异的,如果存在另一个方阵B,使得
- AB = In
成立。这时候可以证明也有BA = In成立[12],可将矩阵B称为A的逆矩阵[13]。一个矩阵A的逆矩阵如果存在的话,就是唯一的,通常记作A−1。
矩阵A的元素Ai,i称为其主对角线上的元素。方块矩阵A的所有主对角线元素之和称为它的迹,写作tr(A)。尽管矩阵的乘法不满足交换律,方阵相乘时交换顺序会导致乘积变化,但它们的迹不会变,即tr(AB) = tr(BA)[14]。除此以外,矩阵转置的迹等于其自身的迹,tr(A) = tr(AT)。
如果一个方阵只有主对角线上的元素不是0,其它都是0,那么称其为对角矩阵。如果主对角线上方的元素都是0,那么称为下三角矩阵;反之如果主对角线下方的元素都是0,那么称为上三角矩阵。例如n = 3的时候,这些矩阵分别写作:
-
-
(对角矩阵),
(下三角矩阵)和
(上三角矩阵)。
-
[编辑]行列式
方块矩阵A的行列式是一个将其映射到标量的函数,记作 det(A) 或 |A|,反应了矩阵自身的一定特性。一个方阵的行列式等于0当且仅当该方阵不可逆。系数是实数的时候,二维(三维)方阵A的行列式的绝对值表示单位面积(体积)的图形经过A对应的线性变换后得到的图形的面积(体积),而它的正负则代表了对应的线性变换是否改变空间的定向:行列式为正说明它保持空间定向,行列式为负则说明它逆转空间定向。
2×2矩阵的行列式是
3×3矩阵的行列式由6项组成。更高维矩阵的行列式则可以使用莱布尼兹公式写出[15],或使用拉普拉斯展开由低一维的矩阵行列式递推得出[16]。
两个矩阵相乘,乘积的行列式等于它们的行列式的乘积:det(AB) = det(A)·det(B)[17]。将矩阵的一行(列)乘以某个系数加到另一行(列)上不改变矩阵的行列式,将矩阵的两行(列)互换则使得其行列式变号[18]。用这两种操作可以将矩阵变成一个上三角矩阵或下三角矩阵,而后两种矩阵的行列式就是主对角线上元素的乘积,因此能方便地计算。运用行列式可以计算线性方程组的解(见克萊姆法則)[19]。
[编辑]特征值与特征向量
n×n的方块矩阵A的一个特征值和对应特征向量是满足
的标量
以及非零向量
。特征值和特征向量的概念对研究线性变换很有帮助。一个线性变换可以通过它对应的矩阵在向量上的作用来可视化。一般来说,一个向量在经过映射之后可以变为任何可能的向量,而特征向量具有更好的性质[21]。假设在给定的基底下,一个线性变换对应着某个矩阵A,如果一个向量
可以写成矩阵的几个特征向量的线性组合:
其中的
表示此向量对应的特征值是
,那么向量
经过线性变换后会变成:
可以清楚地知道变换后向量的结构。
另一个等价的特征值定义是:标量
为特征值,如果矩阵
是不可逆矩阵。根据不可逆矩阵的性质,这个定义也可以用行列式方程描述:
为特征值,如果
这个定义中的行列式可以展开成一个关于
的n阶多项式,叫做矩阵A的特征多项式,记为
。特征多项式是一个首一多项式(最高次项系数是1的多项式)。它的根就是矩阵A特征值[23]。哈密尔顿-凯莱定理说明,如果用矩阵A本身代替多项式中的不定元
,那么多项式的值是零矩阵[24]:
[编辑]对称
转置等于自己的矩阵,即满足A = AT的方块矩阵A叫做对称矩阵。满足A = - AT的矩阵称为反对称矩阵。在复系数矩阵中,则有埃尔米特矩阵的概念:满足A =A*的方块矩阵称为埃尔米特矩阵,其中的A*表示A的共轭转置矩阵。
根据谱定理,实对称矩阵和复埃尔米特矩阵拥有特征基,即由矩阵的特征向量组成的基底。因此任何向量都能表示成矩阵特征向量的线性组合。此外,这两类矩阵的特征值都是实数[25]。
[编辑]正定性
矩阵表达式 正定性 不定矩阵 正定矩阵 对应二次型 取值图像 说明 正定矩阵对应的二次型的取值范围永远是正的,
不定矩阵对应的二次型取值则可正可负n×n的实对称矩阵A如果满足对所有非零向量x ∈ Rn,对应的二次型
- Q(x) = xTAx
函数值都是正数,就称A为正定矩阵。类似地还有半正定矩阵、负定矩阵、不定矩阵等概念[26]。对称矩阵的正定性与其特征值密切相关。矩阵是正定的当且仅当其特征值都是正数[27]。
[编辑]矩阵的计算
矩阵在许多学科领域中都有应用,在很多时候,除了需要知道矩阵的理论性质以外,还需要计算矩阵的数值。为了矩阵的计算能够足够精确与快捷,数值线性代数中专门有研究矩阵的数值计算方法[28]。与其它的数值计算一样,矩阵的数值计算注重的主要也是算法的复杂度和数值稳定性。矩阵的数值计算可以使用直接计算,也可以用迭代算法,例如在计算方块矩阵的特征值时,可以从一个非零向量
开始,通过特定迭代方法得到一个逼近某个特征向量的向量序列[29]。
测量一个算法的复杂度是指估计此算法需要的基本运算如数字的加法和乘法的次数,或者找出它的一个上界。例如按照定义计算的话,两个n阶方阵的乘法需要
次数字乘法计算,因为其乘积是一个n阶方阵,有
个元素,计算每个元素需要
次数字乘法。如果使用施特拉森算法的话,可以将数字乘法的次数减低到大约
次[30]。此外,编程语言或环境本身对算法的复杂度也会有影响。
某些特殊类型的矩阵携带的数据量比一般矩阵要少,同时带来的信息量比一般矩阵多。一个重要的例子是稀疏矩阵,这类矩阵中绝大部分的元素是零。有关稀疏矩阵的计算,如计算稀疏矩阵A的线性方程组Ax = b时,可以使用一些专用于稀疏矩阵的特殊算法(比如共轭梯度法[31]),减低计算复杂度。
算法的数值稳定性是指输入值的小变化不会让计算结果产生很大偏差。例如计算矩阵的逆时,可以用以下的算法(其中adj(A)表示A的伴随矩阵)
- A−1 = Adj(A) / det(A)
这个算法在A的行列式接近0的时候会引起很大的舍入误差[32]。而如果使用全选主元的高斯消去法求逆,则在复杂度降低的同时能够避免舍入误差,保证数值稳定性。
[编辑]矩阵分解
矩阵研究的一大方向是将一般的矩阵用一些比较“简单”的矩阵来表示。这种表示方式称为矩阵的变换与分解。矩阵变换与分解的方法有很多,它们的目的都是希望化简后的矩阵保持原矩阵的某些性质,比如行列式、秩或逆矩阵,而形式相对简单,因而能用容易地进行讨论和计算,或者能使得某些算法更易执行。
LU分解将矩阵分解为一个下三角矩阵L和一个上三角矩阵U的乘积[33]。分解后的矩阵可以方便某些问题的解决。例如解线性方程组时,如果将系数矩阵A分解成A = LU的形式,那么方程的求解可以分解为求解Ly = b和Ux = y两步,而后两个方程可以十分简洁地求解(详见三角矩阵中“向前与向后替换”一节)。又例如在求矩阵的行列式时,如果直接计算一个矩阵A的行列式,需要计算大约 (n + 1)! 次加法和乘法;而如果先对矩阵做LU分解,再求行列式,就只需要大约
次加法和乘法,大大降低了计算次数。这是因为做LU分解的复杂度大约是
次,而后注意到L和U是三角矩阵,所以求它们的行列式只需要将主对角线上元素相乘即可。
高斯消去法也是一种矩阵分解方法。通过初等变换操作,可以将任何矩阵变为阶梯形矩阵,而每个操作可以看做是将矩阵乘上一个特定的初等矩阵[34]。奇异值分解则是另一种分解方法,将一个矩阵表示成3个矩阵的乘积:A = UDV。其中U和V是酉矩阵,D是对角矩阵。
特征分解是将一个矩阵A写成PDP−1的形式,其中P是一个可逆矩阵,D是对角矩阵[35]。如果A的特征分解存在,就称它是可对角化的矩阵。不能对角化的矩阵,也有类似的分解方式。任意的矩阵A都可以写成PJP−1的形式,其中的矩阵J是若尔当标准型。若尔当标准型是矩阵的一种,它与对角矩阵类似,只不过主对角线上的元素不是数值,而是若尔当块:主对角线上为同一元素
,主对角线右上一行的次对角线上都是1,其它元素都是0的矩阵(见右图)[36]。特征分解可以方便计算矩阵的幂次和多项式,如要计算An:
- An = (PDP−1)n = PDP−1PDP−1...PDP−1 = PDn P−1
而其中对角矩阵的幂次Dn要比An容易计算得多。同理还可计算矩阵指数:eA(在线性微分方程中有应用)、矩阵对数和矩阵的平方根[37]。为了提高算法的数值稳定性,还有舒尔分解等矩阵分解方法[38]。
[编辑]矩阵的推广
矩阵的元素除了可以是实数和复数以外,也可以任意环或域中元素。在线性代数中,矩阵的性质可以经由有限维的线性空间中的线性变换定义。更广泛的,无限维空间中的线性算子,则可以定义更广泛的无穷维矩阵。矩阵的另一种推广是张量。标量可以看成零维方式排列的数据(只有一个“点”),向量可以看成是一维方式排列的数据(若干个“点”排成的“线段”),矩阵可以看成是二维方式排列的数据(若干个“线段”排成的“矩形”),而张量的概念则包括了这几种排列方式。在张量的概念中,标量是零维张量,向量是一维张量,矩阵是二维向量,而更高维方式排列的数据方式就是高维张量[39]。
[编辑]一般域和环上的矩阵
矩阵的元素除了可以是实数和复数以外,还可以是任何能够使得矩阵的运算律成立的元素。首先,矩阵的元素可以是任意一个域(即能够进行“加减乘除”运算的集合)中元素。例如编码理论中会出现系数为有限域中元素的矩阵,以及有理数系数的矩阵。如果矩阵的系数所在域K不是代数闭域,那么在求矩阵的特征值时,由于特征值是相应的特征多项式的根,可能不在系数域K中,而是在系数域的某个扩域L中。反过来,如果考虑扩域L/K,以及L中的一个元素
,以及L中线性变换
,那么由于
也是一个K-线性变换,它可以表示成一个n×n的K系数矩阵
,其中的n是扩域L/K的阶数。
是这个矩阵的特征值,这个矩阵的特征多项式
是
在K中的最小多项式
的幂次:
其中的
是扩域L/K
的阶数[40]。
更一般的情况是矩阵的元素属于某个环R[41]。环是比域更广泛的概念,只要求其中元素能够进行加减法和乘法运算(不一定能定义除法)。给定一个环 R,
中的矩阵之间可以相互加减以及相乘,所以
关于矩阵的加法和乘法也构成一个环,称为矩阵环。n维方阵的环
與左R-模Rn的自同態環同構[42]。
若R是交换环,則
是一个帶單位元的R-代數,满足结合律,但不满足交换律。其中的矩阵仍然可以用莱布尼兹公式定義行列式。一个矩阵可逆当且仅当其行列式为环R中的可逆元(域上的矩阵可逆只需行列式不等于0)[43]。
[编辑]矩阵与线性变换
前面已经提到,所有Rn → Rm的线性变换都对应着一个
中的矩阵。更一般地,给定了基底后,任意两个有限维线性空间之间的线性映射f: V →W也对应着一个矩阵Af= (aij)。设空间V和W的基底分别是v1, ..., vn 和 w1, ..., wm,那么
-
对任意
,
矩阵Af实际上“记录”了V中每个基底向量经过变换后得到的W中的像在基底(w1, ..., wm)下的形式。要注意矩阵的内容取决于基底的选择。可以说,矩阵是线性变换f 在特定“角度”(基底)下的“素描”。不同的“角度”下,描述f 的矩阵是不同的,但这些矩阵都是相似矩阵[44]。与矩阵有关的基本概念都可以用线性变换的层面来解释,比如一个矩阵的转置可以用f 的对偶变换f* : W* → V*来表示[45]。
当矩阵的元素是带单位元的环R中的元素时,m×n的R-矩阵对应的则是R-自由模Rm和Rn之间的R-线性变换。n = m 的时候,这些R-线性变换可以相互复合,因此n维的R-矩阵环能够与R-自同态环Rn同构。
[编辑]矩阵群
群是比环更宽泛的代数结构,只需要集合配备一个满足结合律的二元运算,即将两个群内元素映射到群内一元素的运算。矩阵群是指矩阵关于矩阵乘法组成的群[46]。显然,只有方块矩阵才能构成乘法群。所有n维的可逆方阵构成一个群,称为n阶一般线性群。由于群内每个元素都必须是可逆的,任意的矩阵群都必然是一般线性群的子群。
能够在矩阵乘法和求逆矩阵运算下保持的性质都可以用来刻画一定的矩阵群。例如所有行列式为1的矩阵可以构成一个群,称为n阶特殊线性群[47]。所有n维的正交矩阵,即满足:
- MTM = I
的矩阵M也构成一个群,称为n阶正交群[48]。正交矩阵得名于它在Rn中对应的线性变换具有保角性,也就是说对基本的点积,满足
- (Mv) · (Mw) = v · w.[49]
每个有限群都同构于一个矩阵群。实际上,每个有限群都同构于某个置换群的子群,而每个置换群都同构于一个矩阵群(见置换群的正则群表示[50])鉴于矩阵群的性质可以通过与矩阵相关的更多手段更好地理解,常常通过研究矩阵群来研究一个有限群。相关的理论称为群表示论。
[编辑]无限维矩阵
无穷维矩阵可以指行数或列数无穷大,或两者都是无穷大的矩阵[51]。尽管这样的矩阵无法完整写出,但只要知道每行每列的元素的值,仍然可以对它进行矩阵操作和运算。这里矩阵的行数和列数甚至不一定需要是可数集。需要注意的是,无穷维矩阵的乘法涉及到无穷级数求和,因此只有在相关的无穷级数收敛的时候,才能定义矩阵的乘积[52]。无限维矩阵也可以是方块矩阵,定义为行标记集合与列标记集合相同的矩阵(如
)[53]。
无限矩阵无法定义通常意义上的行列式,因此可逆矩阵不一定是方块矩阵,同理,酉矩阵也不一定要是方块矩阵[54]。
[编辑]空矩阵
空矩阵是指行数或列数为零的矩阵。空矩阵的定义可以完善一些关于零维空间的约定。包括约定一个矩阵与空矩阵相乘得到的也是空矩阵,两个n×0和0×p的空矩阵相乘是一个n×p的零矩阵(所有元素都是零的矩阵)。0×0的空矩阵的行列式约定为1,所以它也可以有逆矩阵,约定为它自己[55]。
[编辑]分塊矩陣
分塊矩陣是指一個大矩陣分割成“矩陣的矩陣”。舉例,以下的矩陣
可分割成4個2×2的矩陣
-
。
将矩阵分块可以使得矩阵结构清晰,在某些时候可以方便运算、证明。两个大小相同、分块方式也相同的矩阵可以相加。行和列的块数符合矩阵乘法要求时,分块矩阵也可以相乘。将矩阵分块相乘的结果与直接相乘是一样的。用分块矩阵求逆,可以将高阶矩阵的求逆转化为多次低阶矩阵的求逆[56]。
[编辑]应用
矩阵在许多领域都应用广泛。有些时候用到矩阵是因为其表达方式紧凑,例如在博弈论和经济学中,会用收益矩阵来表示两个博弈对象在各种决策方式下的收益[57]。文本挖掘和索引典汇编的时候,比如在TF-IDF方法中,也会用到文件项矩阵来追踪特定词汇在多个文件中的出现频率[58]。
复数可以用实系数的2×2矩阵表示:
这种表示法与复数的加减法、乘法都相兼容。比如,2×2的旋转矩阵可以用来表示模长为1的复数,一个向量乘以此旋转矩阵可以视作一个复数乘以该模长为1的复数。对四元数也有类似的矩阵表达[59]。
早期的密码技术如希尔密码也用到矩阵。然而,矩阵的线性性质使这类密码相对容易破解[60]。计算机图像处理也会用到矩阵来表示处理对象,并且用放射旋转矩阵来计算对象的变换,实现三维对象在特定二维屏幕上的投影[61]。多项式环上的矩阵在控制论中有重要作用。
化学中也有矩阵的应用,特别在使用量子理论讨论分子键和光谱的时候。具体例子有解罗特汉方程时用重叠矩阵和福柯矩阵来得到哈特里-福克方法中的分子轨道。
[编辑]图论
图论中可以用矩阵描述一个有限图[62]。这个矩阵叫做相关矩阵的邻接矩阵,记录了图的每两个顶点之间是否有边连接。对简单图来说,邻接矩阵的元素只取两个值:0和1,第i 行第j 列上取值为0,表示没有从第i 个顶点连到第j 个顶点的边,取值为1则说明有。如果是一般情况的话,第i 行第j 列上的取值是从第i 个顶点连到第j 个顶点的边的数目。距离矩阵则是表示图中各顶点之间距离的矩阵[63]。在研究互联网等复杂网络的时候,邻接矩阵常常会是稀疏矩阵。因此网络理论中有专门研究稀疏矩阵的方面。
[编辑]数学分析
在多元函数微积分学中,对二阶偏导数存在的函数f: Rn → R,可以定义其海森矩阵[64]:
严格来说,仅当函数在某一点上的二阶偏导数存在,才能定义这一点上的海森矩阵。海森矩阵给出了函数在这一点的变化率方面的信息。当给定的点x = (x1, ..., xn)是函数平稳点(即函数f 在这一点上的一阶偏导数
都是0)时,就需要利用海森矩阵来查看函数在这一点周围的增长特性。多元函数在点x的泰勒展开是:
如果函数在点x的一阶偏导数都是0,那么
,所以函数在x附近的变化率取决于海森矩阵
的性质。如果
是正定矩阵,那么函数在点x取得局部最小值,如果是负定矩阵,则函数在x取得局部最大值。在这类情况下,关于函数f 的条件最优化问题可以转变为关于海森矩阵的二次规划问题[65]。
矩阵在多元函数微积分中的另一个应用是雅可比矩阵。函数f: Rn → Rm在某一点x上的一阶偏导数存在时,可以定义它在这点上的雅可比矩阵[66]:
如果n>m,而
又是满秩矩阵(秩等于m)的话,根据反函数定理,可以找到函数f 在x附近的一个局部的反函数[67]。
偏微分方程理论中,二阶拟线性偏微分方程可以根据最高次偏导项系数构成的矩阵的正定性分类。假设有一个二阶拟线性偏微分方程:
-
并假设
记矩阵
。如果矩阵A是正定或负定矩阵,那么就称方程(E)为椭圆形偏微分方程;如果A不可逆,就称(E)为抛物形偏微分方程,如果A可逆而且恰有n - 1个特征值同号,就称(E)为双曲型偏微分方程。其它情况下也称(E)为超双曲形偏微分方程。不同类型的方程解的形式也不一样[68]。
用数值方法解偏微分方程时更需要用到矩阵。一个重要的方法是有限元方法,在求解各种物理中遇到的偏微分方程时广泛使用。有限元方法的基本思想是用一系列“简单”函数的线性组合来“逼近”偏微分方程的精确解。这些“简单”函数通常是指将求解区域分割成一定数量的“小块”后,仅在某一“小块”上非零的分段线性函数。选定了网格和“简单”函数后,可以求解关于刚度矩阵的方程得到近似解。有限元理论中证明了在满足一定的条件下,近似解将随着网格趋于精细而弱收敛到精确解[69][70]。
-
-
矩阵乘以其矩阵转置
2018-08-27 20:47:11在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。 1.假设矩阵A是一个 m∗nm∗nm*n 矩阵,那么 A∗ATA∗ATA*A^T 得到一个 m∗mm∗mm*m 矩阵,AT∗AAT∗AA^T*A 得到一个 n∗nn∗nn*n 的矩阵,这样... -
矩阵转置与矩阵相乘
2016-09-13 22:24:111.转置矩阵1.1转置矩阵简介把矩阵A的行换成同序数的列得到的新矩阵,叫做A的转置矩阵(Transpose of a Matrix),记作ATA^T。 例如: 因此,转置矩阵的特点: (1)转置矩阵的行数是原矩阵的列数,转置矩阵的列数是... -
矩阵求导、几种重要的矩阵及常用的矩阵求导公式
2018-06-08 11:16:02一、矩阵求导 一般来讲,我们约定x=(x1,x2,...xN)Tx=(x1,x2,...xN)Tx=(x_1,x_2,...x_N)^T,这是分母布局。常见的矩阵求导方式有:向量对向量求导,标量对向量求导,向量对标量求导。 1、向量对向量求导 2、... -
矩阵论:向量求导/微分和矩阵微分
2017-04-03 16:51:05复杂的矩阵函数求导。著名的matrix cookbook为广大的研究者们提供了一本大字典,里面有着各种简单到复杂矩阵和向量的求导法则。 布局(Layout) 矩阵求导有两种布局,分子布局(numerator layout)和分母布局... -
python生成二维矩阵的方法
2018-07-24 16:46:321、直接用列表生成m行n列的矩阵 m,n = map(int,input().split()) matrix = [[0]*(m)]*(n) 输出为: 这种方式生成的矩阵存在一定的问题,比如,无法给特定位置的元素赋值,例如: matrix[1][1] = 9 输出为:... -
4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix)
2018-05-31 15:16:19混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。 一句话解释版本: 混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示... -
常见的几种矩阵分解方式
2016-09-25 15:54:231.三角分解(LU分解)矩阵的LU分解是将一个矩阵分解为一个下三角矩阵与上三角矩阵的乘积。本质上,LU分解是高斯消元的一种表达方式。首先,对矩阵A通过初等行变换将其变为一个上三角矩阵。对于学习过线性代数的同学来... -
矩阵的逆矩阵 和 转置矩阵
2019-06-17 13:59:25这几天用到了逆矩阵,就在这里总结一下逆矩阵和转置矩阵。 逆矩阵 逆矩阵就是一个矩阵的逆向。比如一个点乘以一个矩阵后得到了一个新的点的位置,如果想通过这个点再获得矩阵转换前的位置,那我们就需要乘以这个矩阵... -
行列式运算法则 矩阵的运算及其运算规则:
2018-10-29 17:01:19(倍乘)(注:矩阵是全部元素都乘,都提取) 4、行列式的某行乘以a,加到另外一行,行列式不变,常用于消去某些元素。(倍加) 5、若行列式中,两行(列)完全一样,则行列式为0;可以推论,如果两... -
带你深入理解矩阵乘法
2018-08-11 19:46:341、你是正在学习矩阵的乘法运算,觉得矩阵的乘法掌握起来很困难 2、你已经学会了矩阵乘法,但如果你在计算矩阵乘法时还在使用“一行乘一列得一数”的方法,那我强烈建议你看看后面的内容。 因为,我将带你更加深刻... -
协方差矩阵和散布矩阵(散度矩阵)的意义
2017-03-31 19:27:42协方差矩阵和散布矩阵的意义 在机器学习模式识别中,经常需要应用到协方差矩阵C和散布矩阵S。如在PCA主成分分析中,需要计算样本的散度矩阵,有的论文是计算协方差矩阵。实质上二者意义差不多,散布矩阵(散度矩阵... -
正定矩阵/负数定矩阵/不定矩阵/海塞矩阵/雅克比矩阵
2019-06-20 20:06:41正定矩阵/负数定矩阵/不定矩阵/海塞矩阵 https://baike.baidu.com/item/黑塞矩阵 -
MATLAB生成单位矩阵、三角矩阵、零矩阵、1矩阵
2018-06-28 10:41:20单位矩阵:eye(m,n)稀疏单位矩阵:speye(m,n)ps:I = speye(1000) 构成 1000×1000 单位矩阵的稀疏表示形式,它只需要大约 16 KB 的存储。这与 I = sparse(eye(1000,1000)) 的最终结果相同,但对于完整表示形式,... -
矩阵与矩阵的转置相乘
2019-02-08 12:10:41因为只有方阵才可能有特征值 所以面对长方阵的时候,使用原矩阵转置成原矩阵,就变成了方阵,就可以求特征值了 这样得到的矩阵是一个对称矩阵 -
【矩阵论笔记】矩阵特征矩阵的行列式因子、不变因子、初等因子
2020-05-05 12:52:31矩阵的特征值矩阵是由矩阵特征值λ\lambdaλ构成的矩阵。包含三个运算: 1、互换两行(列) 2、某行(列)乘非零常数 3、某行(列)乘多项式后加到另一行 n阶λ\lambdaλ矩阵可逆的充要条件是:A(λ)=非零常数A(\... -
Java实现矩阵运算——矩阵乘法、矩阵转置、自动填充矩阵行
2018-08-19 10:39:36在做大数据或人工智能开发的过程做难免会遇到矩阵运算,本文在这里给大家实现一个简单的矩阵运算,请看下代码: package test; /** * 矩阵运算 * * @author Administrator * */ public class Matrix... -
基本矩阵、本质矩阵和单应矩阵
2017-05-15 20:18:03基本矩阵、本质矩阵和单应矩阵 -
对称矩阵、Hermite矩阵、正交矩阵、酉矩阵、奇异矩阵、正规矩阵、幂等矩阵
2019-06-04 15:37:57对称矩阵、Hermite矩阵、正交矩阵、酉矩阵、奇异矩阵、正规矩阵、幂等矩阵 转载自:https://blog.csdn.net/jbb0523/article/details/50596604 看文献的时候,经常见到各种各样矩阵,本... -
Java进阶(四十九)实现矩阵秩的求解-转置-行列式-逆矩阵操作
2017-01-04 18:32:57Java进阶(四十九)实现矩阵转置-行列式-逆矩阵操作 应论文需求,需要计算矩阵的逆矩阵。 相应的矩阵操作工具类如下:package cn.edu.ujn.paper.matrix;public class MatrixUtil { /** * 实现矩阵相乘 (AB) ... -
奇异矩阵与非奇异矩阵
2019-05-01 19:52:39首先需要说明的值奇异矩阵和非奇异矩阵都是针对方阵而言的。 奇异矩阵是线性代数的概念,就是对应的行列式等于0的矩阵。 对一个 n 行 n 列的非零矩阵 A,如果存在一个矩阵 B 使 AB = BA =I( I是单位矩阵),则称 A ... -
正定矩阵与半正定矩阵定义性质与理解
2018-01-24 12:21:12正定矩阵 在线性代数里,正定矩阵 (positive definite matrix) 有时会简称为正定阵。 定义:AA是n阶方阵,如果对任何非零向量xx,都有xTAx>0x^TAx> 0,其中xTx^T 表示xx的转置,就称AA正定矩阵。 性质: 正定矩阵... -
稀疏矩阵之python实现
2016-09-26 11:13:53工程实践中,多数情况下,大矩阵一般都为稀疏矩阵,所以如何处理稀疏矩阵在实际中就非常重要。本文以python里中的实现为例,首先来探讨一下稀疏矩阵是如何存储表示的。1.sparse模块初探python中scipy模块中,有一个... -
余子式和余子式 伴随矩阵定义 性质 二阶矩阵求伴随矩阵 伴随矩阵理解(列排)
2018-10-29 00:43:12在线性代数中,一个方形矩阵的伴随矩阵是一个类似于逆矩阵的概念。如果矩阵可逆,那么它的逆矩阵和它的伴随矩阵之间只差一个系数。然而,伴随矩阵对不可逆的矩阵也有定义,并且不需要用到除法。...
-
bert_sentiment_analysis_finetuning-源码
-
leetcode算法第7题
-
常用JVM启动参数
-
docker 20.10.3 配置国内源
-
用于文档聚类的半监督概念分解
-
C++11 14 17 20 多线程从原理到线程池实战
-
无线计算卸载的能量和时间优化
-
RootCluster.github.io:组织网站-源码
-
破折号-源码
-
CentOS 7.8安装Java8
-
CentOS 7 下修改主机名
-
MHA 高可用 MySQL 架构与 Altas 读写分离
-
基于Flink+Hudi构建企业亿级云上实时数据湖教程(PC、移动、小
-
大数据多维分析引擎在魅族的实践
-
项目管理工具与方法
-
NFS 网络文件系统
-
生成、添加用于操作多个 Git 账户的 SSH 公钥配置
-
使用Dom4j操作XML
-
使用内置传感器的LED进行LED热阻和TIM评估的研究
-
ThreadLocal详解