如何使用python解非线性方程(7个方程和7个变量)

时间:2019-07-29 01:00:43

标签: python

如何使用python解决非线性方程(7个方程和7个变量)

我使用了fsolve并定义了7个方程式和变量。但是我没有得到很好的结果。我的猜测值是(1,1,1,1,1,1,1)。我的猜测值做错了吗?我的变量初始值应为(0,0,0,0,0,0)

从常量导入* 从scipy.optimize导入fsolve

def external_equation(天):

KT = day['KT']
CaT = day['CaT']
MgT = day['MgT']
NaT = day['NaT']
SO4T = day['SO4T']
ClT = day['ClT']

def multi_equation(z):

    a, b, c, d, e, f, g = z

    equation1 = a + (a*e/K1) - KT
    equation2 = b + b*KW/(H*K2) + b*g/K3 + b*f/K4 + b*e/K5 - CaT
    equation3 = c + c*KW/(K6*H) + c*g/K7 + c*f/K8 + c*e/K9 - MgT
    equation4 = d + d*KW/(H*K10) + d*g/K11 + d*f/K12 + c*e/K13 - NaT
    equation5 = e + e*H/K16 + e*b/K5 + e*c/K9 + e*d/K13 + e*a/K1 - SO4T
    equation6 = 2*f + 2*b*f/K4 + 2*c*f/K8  + 2*d*f/K12 \
        + g + b*g/K3 + c*g / K7 + d*g/K11 + KW/H - H - ALK
    equation7 = 2*b + 2*c + d + a + b*g/K3 + c*g/K7 + H - 2*g - f - 2*e - \
        KW/H - d*f/K12 - d*e/K13 - a*e/K1 - H * e/K16 - ClT

    return (equation1, equation2, equation3, equation4, equation5, equation6, equation7)

guess = (1, 1, 1, 1, 1, 1, 1)

sol = fsolve(multi_equation, guess)
return sol

0 个答案:

没有答案