Python 如何使用numpy解线性方程组?

Python 如何使用numpy解线性方程组?,python,numpy,linear-algebra,Python,Numpy,Linear Algebra,我有一个矩阵形式的线性方程组: A * X = b 假设我知道A和X我可以计算b矩阵。现在的问题是b应该包含相同的列(b是N3D点的矩阵,其中该列表示点坐标),但它们彼此不同,所以我想找到这样的b列(单个3D点)如果我计算给定的A和b(单个3D点)的X,这将最小化MSE 如何使用numpy来实现这一点?一般来说,np.pinv(A)@b是MSE意义上的线性系统的解决方案;但您可能需要将系统转换为传统形式,例如b应该是一个列向量,例如大小为3*N。@bubble我相信b已经是(3,N)(即点是一

我有一个矩阵形式的线性方程组:

A * X = b
假设我知道
A
X
我可以计算
b
矩阵。现在的问题是
b
应该包含相同的列(
b
N
3D点的矩阵,其中该列表示点坐标),但它们彼此不同,所以我想找到这样的
b
列(单个3D点)如果我计算给定的
A
b
(单个3D点)的
X
,这将最小化MSE

如何使用numpy来实现这一点?

一般来说,
np.pinv(A)@b
是MSE意义上的线性系统的解决方案;但您可能需要将系统转换为传统形式,例如b应该是一个列向量,例如大小为3*N。@bubble我相信b已经是(3,N)(即点是一个列)。我的意思是b的形状是(3*N,1);在你的例子中,b的形状是(3,N);您需要将系统转换为传统形式,例如使用
b=np.ravel(b,order='F')
并相应地重新构造方程的右侧部分。通常,
np.pinv(A)@b
是MSE意义上的线性系统解;但您可能需要将系统转换为传统形式,例如b应该是一个列向量,例如大小为3*N。@bubble我相信b已经是(3,N)(即点是一个列)。我的意思是b的形状是(3*N,1);在你的例子中,b的形状是(3,N);您需要将系统转换为传统形式,例如使用
b=np.ravel(b,order='F')
并相应地重新构造等式的正确部分。