from gekko import GEKKO
m = GEKKO(remote=True)
x = m.Array(m.Var,13,value=1,lb=1e-27,ub=20.0)
H2,H2O,CO,O2,CO2,CH4,C2H6,C2H4,C2H2,lamda1,lamda2,lamda3,summe= x
H2.value = 3.0
H2O.value = 1.0
CO.value = 0.5
O2.value = 0.001
CO2.value = 0.5
CH4.value = 0.1
C2H6.value = 0.000215
C2H4.value = 0.00440125
C2H2.value = 0.0041294
summe.value = 8.0
lamda1.value = 1.0
lamda2.value = 1.0
lamda3.value = 1.0
eq1 = m.Param(value=14)
eq2 = m.Param(value=4)
eq3 = m.Param(value=2)
summe = m.Var(H2 + O2 + H2O + CO + CO2 + CH4 + C2H6 + C2H4 + C2H2)
lamda2 = m.Var((-1)*m.log(H2 / summe) / 2)
lamda1 = m.Var(46.03 / 1.9872 - m.log(H2O / summe) + 2 * lamda2)
lamda3 = m.Var(47.942 / 1.9872 - m.log(CO / summe) + lamda1)
m.Equation(m.exp(-4.61 / 1.9872 - 4 * lamda2 - lamda3) * summe == CH4)
m.Equation(m.exp(-28.249 / 1.9872 - 4 * lamda2 - 2 * lamda3) * summe == C2H4)
m.Equation(m.exp(-40.604 / 1.9872 - 2 * lamda2 - 2 * lamda3) * summe == C2H2)
m.Equation(m.exp(-26.13 / 1.9872 - 6 * lamda2 - 2 * lamda3) * summe == C2H6)
m.Equation(m.exp(94.61 / 1.9872 - 2 * lamda1 - lamda3) * summe == CO2)
m.Equation(m.exp(-2 * lamda1) * summe == O2)
m.Equation(2 * CO2 + CO + 2 * O2 + H2O == eq2)
m.Equation(4 * CH4 + 4 * C2H4 + 2 * C2H2 + 2 * H2 + 2 * H2O + 6 * C2H6 == eq1)
m.Equation(CH4 + 2 * C2H4 + 2 * C2H2 + CO2 + CO + 2 * C2H6 == eq3)
m.Minimize((summe-(H2 + O2 + H2O + CO + CO2 + CH4 + C2H6 + C2H4 + C2H2))**2)
m.options.IMODE = 3 #IPOPT
m.options.MAX_ITER = 1000
m.options.OTOL = 1e-10
m.options.RTOL = 1e-10
m.solve()
print('x: ', x)
print('Objective: ',m.options.OBJFCNVAL)
EXIT: Optimal Solution Found.
The solution was found.
The final value of the objective function is 81.0000000000000
---------------------------------------------------
Solver : IPOPT (v3.12)
Solution time : 1.169999998819549E-002 sec
Objective : 81.0000000000000
Successful solution
---------------------------------------------------
x: [[5.797458326] [1.202541674] [1.202541674] [1.6791020526e-21]
[0.79745832603] [1.6503662452e-22] [3.2694282596e-27] [1.1255712085e-27]
[1e-27] [2.185089969] [2.185089969] [2.185089969] [9.5605307091]]
Затем используйте GRG в качестве оптимизатора:

Оба решения по-прежнему различаются. И что интересно, результат поиска корня (ограничения) по-прежнему отличается, но в то же время сходится:
Total number of equations: 13
Number of implicit equations: 4
Number of explicit equations: 9
Solution method CONSTRAINED
Convergence tolerance: 1e-07
# of iterations used: 8
CO 1.685236
H2 5.118105
H2O 1.387357
SUM 8.899115
C2H2 0.0041294
C2H4 0.0044224
C2H6 0.0092403
CH4 0.2269213
CO2 0.0522585
lamda1 1.537016
lamda2 0.2765838
lamda3 2.53957
O2 0.4114448
Indexed variables in the solution Vector x:
[[H2: 1] [H2O: 2] [CO: 3] [O2: 4]
[CO2: 5] [CH4: 6] [C2H6: 7] [C2H4: 8]
[C2H2: 9] [lamda1: 10] [lamda2: 11] [lamda3: 12] [summe: 13]]
Individual results are:
GEKKO >> x: [[5,797458326] [1,202541674] [1,202541674]
[1.6791020526e-21]
[0,79745832603] [1.6503662452e-22] [3.2694282596e-27]
[1.1255712085e-27]
[1e-27] [2.185089969] [2.185089969] [2.185089969]
[9.5605307091]]
Just another Root finder >> x:
[[5.118105] [1.387357] [1.685236] [0.4114448]
[0.0522585] [0.2269213] [0.0092403] [0.0044224]
[0.0041294] [1.537016] [0.2765838] [2.53957] [8.899115]]
EXCEL GRG >> x:
[[5.344360712] [1.521995663] [1.388351672] [5.82E-21]
[0.544826] [0.0668213] [1.70E-07] [9.74E-08]
[3.25E-10] [24.3878385] [0.253110984] [1.558979624]
[8.866356107]]
Подробнее здесь: https://stackoverflow.com/questions/792 ... -excel-sol
Мобильная версия