numpy线性代数

13 篇文章 0 订阅

numpy线性代数

import numpy as np

#构造矩阵
mat = np.mat((np.arange(9)+1).reshape(3,3))
print(mat)
[[1 2 3]
 [4 5 6]
 [7 8 9]]

1.求逆

  • 使用矩阵求逆,I
  • 使用线性代数, inv
print(mat.I)
[[ 3.15251974e+15 -6.30503948e+15  3.15251974e+15]
 [-6.30503948e+15  1.26100790e+16 -6.30503948e+15]
 [ 3.15251974e+15 -6.30503948e+15  3.15251974e+15]]
print(np.linalg.inv(mat))
[[ 3.15251974e+15 -6.30503948e+15  3.15251974e+15]
 [-6.30503948e+15  1.26100790e+16 -6.30503948e+15]
 [ 3.15251974e+15 -6.30503948e+15  3.15251974e+15]]

2.求解线性方程组

  • solve函数
A = np.mat("1 -2 1;0 2 -8;-4 5 9")
b = np.array([0, 8, -9])
print(A)
print(b)
[[ 1 -2  1]
 [ 0  2 -8]
 [-4  5  9]]
[ 0  8 -9]
x = np.linalg.solve(A,b)
print(x)
[29. 16.  3.]

3.特征值和特征向量

  • eigvals函数求解特征值
  • eig函数求解特征值和特征向量
  • 使用dot函数验证求得的解是否正确。分别计算等式 Ax = ax 的左半部分和右半部分,
    检查是否相等。(点乘)
ev = np.linalg.eigvals(mat)
print(ev)
[ 1.61168440e+01 -1.11684397e+00 -9.75918483e-16]
e = np.linalg.eig(mat)
print(e)
(array([ 1.61168440e+01, -1.11684397e+00, -9.75918483e-16]), matrix([[-0.23197069, -0.78583024,  0.40824829],
        [-0.52532209, -0.08675134, -0.81649658],
        [-0.8186735 ,  0.61232756,  0.40824829]]))

4.矩阵分解SVD

  • svd
U, sigma, V = np.linalg.svd(mat)
print(U)
print(sigma)
print(V)
[[-0.21483724  0.88723069  0.40824829]
 [-0.52058739  0.24964395 -0.81649658]
 [-0.82633754 -0.38794278  0.40824829]]
[1.68481034e+01 1.06836951e+00 3.33475287e-16]
[[-0.47967118 -0.57236779 -0.66506441]
 [-0.77669099 -0.07568647  0.62531805]
 [-0.40824829  0.81649658 -0.40824829]]

5.广义逆

  • 以使用numpy.linalg模块中的pinv函数进行求解

6.行列式

  • numpy.linalg模块中的det函数可以计算矩阵的行列式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值