小编num*_*lem的帖子

线性方程组,使得 matlab 反斜杠和 numpy.linalg.solve 产生不同的解

我使用 numpy 1.3.0 和 MATLAB 7.9.0 时遇到以下问题:python 代码

import numpy as np    
Lu = [[1.01250000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-0.00250000000000000,1.01250000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,-0.00250000000000000,1.01250000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,-0.00250000000000000,1.01250000000000,0,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0,0,0,0,0],[-0.00250000000000000,0,0,0,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0,0,0,0],[0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0,0,0],[0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0,0],[0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,0,0,0,-0.00250000000000000,0,0,0,0,0,0,0,0],[0,0,0,0,-0.00250000000000000,0,0,0,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0,0],[0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0,0],[0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0,0,0],[0,0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,0,0,0,-0.00250000000000000,0,0,0,0],[0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,0,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0,0],[0,0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0,0],[0,0,0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,-0.00250000000000000,0,0,-0.00250000000000000,0],[0,0,0,0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01000000000000,0,0,0,-0.00250000000000000],[0,0,0,0,0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,0,1.01250000000000,-0.00250000000000000,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01250000000000,-0.00250000000000000,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01250000000000,-0.00250000000000000],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00250000000000000,0,0,-0.00250000000000000,1.01250000000000]]
rhs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,0, 0,  0, 0, 0.0050, 0.0050, 0.0050, 0.0050]

Lu = np.array(Lu)
rhs = np.array(rhs)
ans = np.linalg.solve(Lu,rhs)
print ans
Run Code Online (Sandbox Code Playgroud)

产生输出

[  1.87241716e-13   1.89545264e-13   1.89545264e-13   1.87241716e-13
   7.56433496e-11   7.63890449e-11   7.63890449e-11   7.56433496e-11
   3.04833369e-08   3.07089522e-08   3.07089522e-08   3.04833369e-08
   1.22844835e-05   1.23451480e-05   1.23451480e-05   1.22844835e-05
   4.95055571e-03   4.96277946e-03   4.96277946e-03   4.95055571e-03]
Run Code Online (Sandbox Code Playgroud)

而在 MATLAB 中使用反斜杠会产生输出

 0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000 …
Run Code Online (Sandbox Code Playgroud)

python matlab equation numpy matrix

5
推荐指数
1
解决办法
4227
查看次数

Ubuntu正在杀死我的计算

我正试图在我的ubuntu机器上进行繁重的科学计算.代码是用Python编写的,并标记为可执行文件.然而,在大约一个小时之后,计算终止,除了"终止"之外没有任何错误消息,就像系统刚刚运行命令"killall python"一样.

为什么ubuntu会终止我的计算?没有无限循环,解决方案很好地收敛(但是程序的一部分需要一些优化).

谢谢!

python ubuntu scientific-computing

0
推荐指数
1
解决办法
177
查看次数

标签 统计

python ×2

equation ×1

matlab ×1

matrix ×1

numpy ×1

scientific-computing ×1

ubuntu ×1