用Python解决方程组

时间:2017-01-25 01:54:27

标签: python math scipy

我正在尝试使用fsolve和python来解决一个由五个方程组成的系统,并且无法得到正确的解。在这些方程中,我们假设p_x = 1。

Five Equations

from scipy.optimize import fsolve
import math

def equations(e):
x_i, x_j , y_i , y_j, p_y = e

ex_i = 200
ey_i = 16
ex_j = 300
ey_j = 12

du_idx = 1
du_idy = (15 - y_i)

du_jdx = 1
du_jdy = (25 - y_j)

return (du_idx-(du_idy/p_y), x_i+p_y*y_i-ex_i-p_y*ey_i, du_jdx-(du_jdy/p_y), x_i+x_j-ex_i-ex_j, y_i+y_j-ey_i-ey_j)

x_i, x_j , y_i , y_j, p_y = fsolve(equations, (250,250,15,15,6))

print equations((x_i, x_j , y_i , y_j, p_y))

不幸的是,输出是(3.8857805861880479e-15, -1.1368683772161603e-13, -2.4424906541753444e-15, 0.0, 0.0),而不是实际的解决方案(242,258,9,19,6)。我们得到ex_i = 200,ey_i = 16,ex_j = 300,ey_j = 12。

1 个答案:

答案 0 :(得分:0)

  

print equations((x_i, x_j , y_i , y_j, p_y))

您输出的输出是插入方程式的解决方案,而不是解决方案本身,对吗?毫不奇怪,你得到一堆几乎为零的数字;只是确认你的变量满足方程式,除了一些微小的数字噪声。