python - 带有 Sympy 和 Scipy/Numpy 的矩阵的三角系统
问题描述
我刚刚开始自学线性代数,并且正在尝试自学一些基本的 Python 模块。如果可以的话,我决定学习 Scipy 和 Numpy 的线性代数组件,以及一些 Sympy。
我遇到了以下练习:
我已经手动解决了第一步(我相信):
我想使用 Numpy 和/或 Scipy 以及 Sympy 来解决这个问题。我今天花了一些时间试图弄清楚使用什么结构来解决这个问题(显然是 Numpy 数组,然后是 Sympy 矩阵),但我不确定如何将其转换为三角形数组。我在求解方面看到了很多,但没有什么能简单地产生上三角系统。
是否有人对使用其中一个或所有这些软件包进行此操作有任何建议?
解决方案
我不确定您到底想做什么,但这就是您如何在 SymPy 中执行一些基本的线性代数例程:
In [1]: import sympy as sym
In [2]: M = sym.Matrix([[2,-3,0,3],[4,-5,1,7],[2,-1,-3,5]])
In [3]: M
Out[3]:
⎡2 -3 0 3⎤
⎢ ⎥
⎢4 -5 1 7⎥
⎢ ⎥
⎣2 -1 -3 5⎦
In [4]: M.echelon_form()
Out[4]:
⎡2 -3 0 3⎤
⎢ ⎥
⎢0 2 2 2⎥
⎢ ⎥
⎣0 0 -20 0⎦
In [5]: M.rref()
Out[5]:
⎛⎡1 0 0 3⎤ ⎞
⎜⎢ ⎥ ⎟
⎜⎢0 1 0 1⎥, (0, 1, 2)⎟
⎜⎢ ⎥ ⎟
⎝⎣0 0 1 0⎦ ⎠
In [9]: sym.linsolve(M)
Out[9]: {(3, 1, 0)}
推荐阅读
- javascript - 在javascript中forEach循环的每次迭代中更改颜色?
- powershell - 使用变量从 CSV 中删除多列 - Powershell
- django - Django 模型如何
- javascript - 在 javascript 中连接 bigquery 视图
- multithreading - Netty 线程模型与长期运行的任务
- javascript - 如何不将所有内容都放在 Wrapper 组件中?
- python - seaborn PairPlot 的正确对角 Y 轴
- android - 如何防止sqlite中的数据重复
- matlab - 使用 Hankel 命令在 matlab 中创建矩阵
- javascript - Redux Reducer 状态未正确更新