首页 理论教育 矩阵在现实生活中的应用

矩阵在现实生活中的应用

时间:2023-11-02 理论教育 版权反馈
【摘要】:下面,通过几个具体的实例来了解一下矩阵在实际生活中的应用。

矩阵在现实生活中的应用

矩阵本质上就是一个数表,而这个数表可以通过矩阵的运算进行变换得到新的数表。如果了解原始数表的含义,而且可以从中抽象出某种变化规律,那么就可以对数表进行变换,得到想要的结论。在日常生活中,矩阵在各个领域都有广泛的应用,例如,生产成本问题、人口流动问题、密码学以及超市物品配送等都和矩阵息息相关。下面,通过几个具体的实例来了解一下矩阵在实际生活中的应用。

【示例4.3.1】——生产成本问题

某厂家生产三种产品,在最近一个月内共生产三批产品,每批产品的总成本以及每种产品产量均可控制,具体情况如表4.3.1所示,试计算三种产品单位成本各为多少?

表4.3.1 产品产量表

解 设三种产品每个批次的单位成本分别为x 1、x 2、x 3,由此建立方程组为:

则系数矩阵,常数项矩阵变量矩阵

(1)逆矩阵法求解

命令窗口编写MATLAB代码如下:

运行后得到输出结果为:

根据上述结果可知,产品A、B、C的单位成本分别为16.0元、8.0元、4.0元。

(2)高斯消元法求解

命令窗口编写MATLAB代码如下:

运行后得到输出结果为:

根据上述结果可知,r1=r2=3,所以方程组有解,且有唯一解。利用行最简形矩阵,可将线性方程组AX=B转换为:

因而可得线性方程组的唯一解为:x 1=16,x 2=8,x 3=4,故产品A、B、C的单位成本分别为16.0元、8.0元、4.0元。

【示例4.3.2】——行业人口流动问题

假设某个中小城市及郊区乡镇共有40万人从事农、工、商工作,假定总人数在若干年内保持不变,社会调查表明:

(1)目前约有25万人从事农业,10万人从事工业,5万人经商;

(2)在务农人员中,每年约有10%改为务工,10%改为经商;

(3)在务工人员中,每年约有10%改为务农,20%改为经商;

(4)在经商人员中,每年约有10%改为务农,20%改为务工。

请预测一年、二年及十年后从事各行业人员的人数及其发展趋势。

解 假设x i,y i,zi分别表示第i年后从事这三种职业的人员总数,且已知x 0=25,y 0=10,z 0=5。依据题意,有

依次类推

其中,一、二、十年后从事各行业的人数可以通过MATLAB软件计算。

命令窗口编写MATLAB代码如下:

运行后得到输出结果为:

根据上述结果可知,一年后务农人员有21.5万,务工人员10.5万,经商人员8万;两年后务农人员19.05万,务工人员11.1万,经商人员9.85万;十年后务农人员13.6629万,务工人员13.1710万,经商人员13.1661万。

编写M-函数文件,命名为people.m,分别计算1,2,3,4,5,…,100年后各行业的人数,绘制各行业人数的变化趋势。(www.xing528.com)

命令窗口输入MATLAB代码如下:

运行后得到输出结果如图4.3.1所示。

图4.3.1 各行业人数变化曲线图

根据图4.3.1可以看出,务农人数在逐年减少,务工和经商的人数在逐年增加,最后三个行业的人数趋于相等。

【示例4.3.3】——密码问题

按照表4.3.2中对应关系,将26个字母与整数1~26进行一一对应,英文状态下的空格对应数字0,设加密矩阵利用矩阵乘法对信息“It is good”进行加密和解密。(注 加密矩阵的行列式必须为±1)

表4.3.2字母与数字对应关系表

解 【加密过程】

首先按照表4.3.2中所示的数字字母对应关系表将英文信息转换为矩阵A,因为加密矩阵为3阶方阵,故转换的矩阵A为3行的矩阵,将英文字母转换后按列排放,则信息矩阵为:

注 信息“It is good”加上中间的空格共有10个字符,而生成的矩阵A为3行4列的矩阵,最后一列空出的元素用0补齐。然后对信息矩阵A左乘加密矩阵X得到新的加密后矩阵,记为密码矩阵B,即B=XA。

命令窗口输入MATLAB代码如下:

运行后得到输出结果为:

根据上述结果可知,密码矩阵B中有的元素大于26,这就无法对应到字母中去,这样就给解密过程带来了困难,因而需要进一步进行加密处理。

第二次加密过程需要对密码矩阵B进行取模运算,也就是用矩阵B中的元素除以27后的余数按列排列得到新的加密矩阵C。

命令窗口输入MATALB代码,计算二次加密矩阵C如下:

运行后得到输出结果为:

将结果中的二次加密矩阵C利用表4.3.2中的关系对应后得到英文信息为:

如果用户不知道该条消息经过加密处理,或者不知道加密矩阵是什么,就会完全不理解这条信息的含义。

【解密过程】

结果中的矩阵C就是最终的加密矩阵,将此矩阵发送给其他用户后,再通过相应的解密过程,即可得到原来的信息矩阵A,再利用数字、字母关系对应表对应出相应的英文消息,具体的解密过程为:

对二次加密矩阵C左乘解密矩阵X-1,再利用取模运算即可得到最初的信息矩阵A,命令窗口输入MATLAB代码如下:

运行后得到输出结果为:

将信息矩阵A按照表4.3.2进行对应,得到的英文消息为:

这条消息与最初发送者发的消息相同,因此解密成功。

【能力训练4.3】

1.某工厂在一次投料生产中能获得四种产品,每次投料的总成本

表1 成本表

2.假设某中小城市及郊区乡镇的人口总数为100万,人口总数每年以千分之4.79的比例增长。目前,该城市的城镇人口有38万,农村人口有62万,每年农村人口按照千分之1的比例流向城镇,请计算5年、10年后的城镇、农村人口分别是多少,并预测未来该城市城镇、农村人口的变化趋势。

3.按照表4.3.1中对应关系,将26个字母与整数1~26进行一一对应,英文状态下的空格对应数字0,利用加密矩阵见表1,试建立M文件计算每种产品的单位成本。对信息“It is beautiful”进行加密,并解密验证。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈