用于Python 2.7的Gauss-Seidel解算器

时间:2014-04-06 19:42:56

标签: python-2.7 solver

是否有一个Python 2.7软件包包含一个Gauss-Siedel求解器,用于包含3个以上未知数的3个以上线性代数方程的系统?下面给出一个我想解决的问题的简单例子。如果没有可用的模板或包,是否可以在python中解决这个问题?如果是这样,请您告知最佳解决方法。感谢。

具有三个未知数(x,y,z)的三个线性代数方程的一个例子:

x - 3y + z = 10

2x + 5y + z = 4

-x + y - 2z = -13

1 个答案:

答案 0 :(得分:1)

经过一番搜索,我发现解决方案是使用numpy.linalg.solve命令。该命令使用LAPACK gesv例程来解决问题;但是我不确定它使用什么迭代技术。

如果有人感兴趣,以下是解决问题的代码:

a = np.array([[1,-3,1],[2,5,1],[-1,1,-2]])
b = np.array([10,4,-13])

x = np.linalg.solve(a, b)

print x

print np.allclose(np.dot(a, x), b)      # To check the solution is found