有关矩阵的介绍, 你可以参考以下文章:矩阵介绍
在本文中, 我们将讨论关于矩阵及其属性的各种运算:
矩阵加法–
两个矩阵A m*n和Bm*n相加得到一个矩阵Cm*n。C的元素是A和B中相应元素的和,可以表示为:
文章图片
矩阵相加的算法可以写成:
for i in 1 to m
for j in 1 to n
cij = aij + bij
关键点:
- 矩阵加法是可交换的, 这意味着A + B = B + A
- 矩阵的加法是关联的, 这意味着A +(B + C)=(A + B)+ C
- 矩阵A, B和A + B的顺序始终相同
- 如果A和B的顺序不同, 则无法计算A + B
- 加法运算的复杂度为O(m * n), 其中m * n是矩阵的阶数
两个矩阵Am*n和Bm*n相减得到一个矩阵Cm*n。C的元素是A和B中对应元素的差值,可以表示为:
文章图片
矩阵相减的算法可写为:
for i in 1 to m
for j in 1 to n
cij = aij-bij
关键点:
- 矩阵相减是不可交换的, 这意味着A-B≠B-A
- 矩阵相减是非缔合的, 这意味着A-(B-C)≠(A-B)-C
- 矩阵A, B和A-B的顺序始终相同
- 如果A和B的顺序不同, 则无法计算A-B
- 减法运算的复杂度为O(m * n), 其中m * n是矩阵的阶数
两个矩阵Am*n和Bn*p相乘得到一个矩阵Cm*p。这意味着A的列数必须等于B的行数才能计算出C=A*B。计算元素c11时,将A的第一行元素与B的第一行元素相乘,然后相加(5*1+6*4),结果如下:
文章图片
矩阵A与阶m * n相乘而矩阵B与阶n * p相乘的算法可以写成:
for i in 1 to m
for j in 1 to p
cij = 0
for k in 1 to n
cij += aik*bkj
关键点:
- 矩阵的乘法是不可交换的, 这意味着A * B≠B * A
- 矩阵相乘是关联的, 这意味着A *(B * C)=(A * B)* C
- 为了计算A * B, A中的列数必须等于B中的行数
- A * B的存在并不意味着B * A的存在
- 乘法运算的复杂度(A * B)为O(m * n * p), 其中m * n和n * p分别为A和B的阶数
- 计算为A * B的矩阵C的阶为m * p, 其中m * n和n * p分别为A和B的阶
推荐阅读
- 不同类型的聚类算法详细介绍
- 用C++ STL复制的不同方法std::copy()、copy_n()、copy_if()、copy_backward()
- #yyds干货盘点#JS是单线程的,那么JS是如何实现并发请求的()
- Centos7安装JDK和Tomcat详细步骤
- Flutter 专题61 图解基本 Button 按钮小结#yyds干货盘点#
- Centos 7使用MyCat搭建 MySQL-读写分离
- Linux中卸载提示设备正忙怎么办?
- 「2022」打算跳槽涨薪,必问面试题及答案 -- ECMAScript 篇#yyds干货盘点#
- SpringBoot+Uniapp实战开发全新仿抖音短视频App