学习过程中会遇到多元一次方程求解问题,比如强化学习中的贝尔曼方程计算价值函数时,动辄就是N元一次方程,当N小于等于3或者说方程结果是比较简单的整数时我们还可以手动计算,但是N比较大或者方程解是复杂的小数时手算肯定是不现实的。
使用下图中的三元一次方程组为例:
使用 linalg 模块,该模块可以用于解线性方程组、求解矩阵的逆矩阵、求特征值等,代码如下:
import numpy as np
import linalg
from scipy.linalg import solve
a=np.array([[1,1,1],[0,2,1],[1,-1,2]]) #未知数的系数
b=np.array([6,7,5]) #常数项
np.linalg.solve(a,b)
解得三个未知数的解分别为1、2、3.