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 ]])
解决方案
首先,我相信 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.]])
它有效
推荐阅读
- c - 用户输入的精确时间
- java - MyBatis oracle 插入新行总是返回错误的主 id 值
- python - 在 Wagtail 仪表板上添加一个按钮以导出到 csv/xlsx 文件
- c++ - 在 Windows 上使用 Qt (qmake) 对第三方库 (RecFusion) 的未定义引用
- opencv - 重建 OpenCV 4.5.1 时如何修复链接错误
- git - 无法从 azure repo 下载工件以在 azure devops 服务器中发布管道
- javascript - 回调:函数如何访问其他函数?
- floating-point - 了解 Float>>asFraction 及其变体
- html - 如何使用 flex 构建多布局列?
- javascript - 使用按钮映射时如何通过子组件中的按钮显示/隐藏父组件中的组件?