昨天,帮同学做了一道算法题,要实现输出增量矩阵、转置矩阵以及矩阵相乘。做完后我一直在想,我们可以用矩阵做些什么东西呢?对于矩阵的操作,我们一般是算得多,用得少,后来查了一些资料,我就把它总结了一下。我们先来看看增量矩阵、转置矩阵以及矩阵相乘的概念。
概念
增量矩阵就是一个元素为初始值initialValue的递增值的矩阵。例如,如果初始值initialValue=1且维度为rows=3和columns=3,则增量矩阵为:
1 2 3
4 5 6
7 8 9
转置矩阵就是把矩阵A的行换成相应的列,得到的新矩阵称为A的转置矩阵,记作AT或A。通常矩阵的第一列作为转置矩阵的第一行,第一行作为转置矩阵的第一列。
矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义[1] 。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。
运算:
例子:
应用
一、生产成本
二、矩阵在密码学中的应用
在密码学中,原来的消息为明文,经过伪装的明文则变成了密文。有明文变成密文的过程称为加密。由密文变成明文的过程称为译密。改变明文的方法称为密码。密码在军事上和商业上是一种保密通信技术。矩阵在保密通信中发挥了重要作用。
这使一些有心人想到可用可逆矩阵及其逆矩阵对需发送的秘密消息加密和译密。
假设我们要送出的消息“ACCOMPLISH THE TASK.”。首先把每个字母A,B,C,…,Z映射到数1,2,3,…,26.例如,数1表示A,数11表示K;另外,用0表示空格,27表示句号等。于是数集
{1,3,3,15,13,16,12,9,19,8,5,0,20,19,11,27}
表示消息“ACCOMPLISH THE TASK”,这个消息(按列)写成4×5矩阵:
密码的发送者和接收者都知道的密码矩阵是:
其逆矩阵(译码矩阵)是:
加密后的消息通过通信渠道,以乘积AM的形式输出,接收者收到的矩阵:
上述例子是矩阵乘法与逆矩阵的应用,将高等代数与密码学紧密结合起来。运用数学知识破译密码,进而运用到军事等方面。可见矩阵的作用是何其强大。