Я не опытный пользователь Excel, но, насколько я понимаю, Excel Solver - это решение для линейного / нелинейного программирования, верно?
В этом случае Python хорошо работает с хорошими библиотеками для оптимизации, такими как SciPy's optimize . Чтобы решить ваш конкретный пример, вы можете использовать что-то вроде:
import numpy as np
from scipy.optimize import minimize
import math
"""
x[0] = powercons
x[1] = totalvolflow
x[2] = prodmod
x[3] = blpower
x[4] = gaspercentvol
"""
def objective(x):
"""
-powercons*totalvolflow*prodmod/blpower
To maximize, we multiply our objective by -1
"""
return -1.0*(x[0]*x[1]*x[2]/x[3])
def constraint1(x):
"""
0 < blpower - quantity*powercon
minimize expects constrains to be greater or equal than zero
"""
return x[3] - (math.ceil(x[1]*x[4]/x[2])*x[0])
# Initial guess
n = 5
first_guess = np.zeros(n)
first_guess[0] = 6.0
first_guess[1] = 150585.6894
first_guess[2] = 1224
first_guess[3] = 562.57
first_guess[4] = 0.1
# constrains
constraint1_dict = {'type': 'ineq', 'fun': constraint1}
# bounds
problem_bounds = (
(6, 6),
(150585.6894, 150585.6894),
(1224, 1224),
(562.57, 562.57),
(0.05, 25)
)
# optimize
solution = minimize(
objective,
first_guess,
bounds=problem_bounds,
constraints=[constraint1_dict]
)
solution_values = solution.x
print(solution_values)