numpy入门4:线性代数

本文详细介绍了numpy库在处理线性代数问题时的一些关键操作,包括矩阵乘积、特征值与特征向量、奇异值分解(SVD)、QR分解和Cholesky分解。还讲解了矩阵的范数、行列式、秩和迹的计算,以及如何求解线性方程组和计算逆矩阵。通过实例展示了numpy在这些领域的应用。
摘要由CSDN通过智能技术生成

矩阵和向量积

矩阵乘积

  1. 定义
    内积
    在这里插入图片描述
    矩阵乘法相关知识

矩阵的本质就是线性方程式,两者是一一对应关系。
矩阵的最初目的,只是为线性方程组提供一个简写形式。
在这里插入图片描述在这里插入图片描述
矩阵乘法证明
在这里插入图片描述有三组未知数 x、y 和 t,其中 x 和 y 的关系如下。
在这里插入图片描述在这里插入图片描述有了这两组方程式,就可以求 y 和 t 的关系。从矩阵来看,很显然,只要把第二个矩阵代入第一个矩阵即可。
在这里插入图片描述从方程式来看,也可以把第二个方程组代入第一个方程组。
上面的方程组可以整理成下面的形式。
在这里插入图片描述
2. 代码实现
计算两个矩阵的乘积,如果是一维数组则是它们的内积。

numpy.dot(a,b,[,out])

【例】

import numpy as np

x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])
print(x)
y = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])
print(y)

z1 = np.dot(x,y)
z2 = np.dot(y,x)
print(z1)
print(z2)

矩阵特征值与特征向量

  1. 定义
    如果把矩阵看作运动,对于运动而言:特征值就是运动的速度,特征向量就是运动的方向。
    资料参考:矩阵特征值和特征向量
  2. 代码实现
import numpy as np
#创建对角矩阵
x = np.diag((1,2,3))
#计算特征值
y = np.linalg.eigvals(x)
print(y)
#计算特征值和特征向量
a,b = np.linalg.eig(x)
#a是特征值,b是特征向量
print(a)
print(b)

【例】判断对称阵是否为正定阵(特征值是否全部为正)

import numpy as np

A = np.arange(16).reshape(4, 4)
print(A)

#将方阵转换成对称阵
A = A+A.T
print(A)

B = np.linalg.eigvals(A)
print(B)

#判断是不是所有的特征值都大于0
if np.all(B>0):
	print('YES')
else:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值