矩阵乘积形式在编程中的实际应用

矩阵来源于线性方程组的系数行列式,如下一个非齐次线性方程组(系数为0和1的系数也表示了出来):

其系数矩阵为:

方程组的右边常数项表示为列向量为:

如果我们将自变量也表示为列向量如下:

 则原方程组可以用矩阵乘积的形式表示为:

 在不使用矩阵乘积的方式时,我们实现线性方程的代码如下(双层循环,挨个乘了再加起来):

'''
2019.05.22 13:22
作者:BTboay
'''

if __name__ == '__main__':
	a = [[2, 0, 3, 1], [1, 2, 0, 4], [4, 1, 5, 0], [1, 1, 1, 1]]#线性方程组的参数
	b = [1, 1, 1, 1]#自变量取值的一个实例
	result = []#保存结果
	for i in a:
		n = 0#用于中间值的累加
		for j in range(len(i)):
			n += i[j] * b[j]
		result.append(n)
	print(result)
[6, 7, 10, 4]
[Finished in 0.2s]

 

Python语言的numpy库提供了优秀的矩阵运算函数,上述线性方程的矩阵乘积形式用Python表示如下: 

'''
2019.05.22 13:22
作者:BTboay
'''

import numpy as np

if __name__ == '__main__':
	a = [[2, 0, 3, 1], [1, 2, 0, 4], [4, 1, 5, 0], [1, 1, 1, 1]]#线性方程组的参数
	b = [1, 1, 1, 1]#自变量取值的一个实例
	a = np.mat(a)
	b = np.mat(b).transpose()
	result = np.dot(a, b)
	print(result)
[[ 6]
 [ 7]
 [10]
 [ 4]]
[Finished in 0.4s]

 再需要对大量的,规范的数据做相关运算时,使用矩阵方法,可以增强代码的可读性和提高效率。

除了应用在大量的线性运算中,计算平方和时也非常好用:

循环:

'''
2019.05.22 13:22
作者:BTboay
'''

if __name__ == '__main__':
	a = [1, 2, 3, 4, 5]
	result = 0
	for i in a:
		result += i ** 2
	print(result)
55
[Finished in 0.4s]

 

矩阵乘积:

'''
2019.05.22 13:22
作者:BTboay
'''

import numpy as np

if __name__ == '__main__':
	a = [1, 2, 3, 4, 5]
	result = np.dot(a, np.transpose(a))
	print(result)
55
[Finished in 0.4s]

 以上只是一点思想的启发,运用矩阵乘积形式的地方非多,本文的目的是希望一些入门的同学看到这种形式的计算方法不会一脸懵(我第一次看到这种东西就是一脸懵,哈哈)。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫猫虫(——)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值