使用numpy解决线性系统

时间:2019-12-10 14:22:33

标签: python numpy

我认为使用两种方法(In[4]In[5])应该得到相同的结果。怎么了?我可以告诉正确的是In[5]

In [1]: import numpy as np

In [2]: A = np.mat('1 2 3; 4 5 6; 7 8 9')

In [3]: B = np.mat('10;20;30')

In [4]: A.I*B
Out[4]:
matrix([[ 64.],
        [-64.],
        [ 16.]])

In [5]: np.linalg.solve(A,B)
Out[5]:
matrix([[-0.93333333],
        [ 1.86666667],
        [ 2.4       ]])

1 个答案:

答案 0 :(得分:1)

首先,我相信A是奇异的,所以这是行不通的,您能显示出您正在使用的实际矩阵吗?我已经测试了以下内容:

A = np.mat('1 0 3; 0 1 2; 0 3 1')   
B = np.mat('10;20;30') 

In [15]: np.linalg.solve(A,B)                                                                                                                                                     
Out[15]: 
matrix([[-8.],
        [ 8.],
        [ 6.]])

In [16]: A.I * B                                                                                                                                                                  
Out[16]: 
matrix([[-8.],
        [ 8.],
        [ 6.]])

它有效