Estou resolvendo o seguinte problema de otimização:
com este código Python:
from scipy.optimize import minimize
import math
def f(x):
return math.log(x[0]**2 + 1) + x[1]**4 + x[0]*x[2]
x0 = [0, 0, 0]
cons=({'type': 'ineq',
'fun': lambda x: x[0]**3 - x[1]**2 - 1},
{'type': 'ineq',
'fun': lambda x: x[0]},
{'type': 'ineq',
'fun': lambda x: x[2]})
res = minimize(f, x0, constraints=cons)
print res
Estou recebendo um erro
mensagem: 'Inequality constraints incompatible'
O que pode causar esse erro?
O problema parece ser com sua estimativa inicial. Se eu mudar seus valores iniciais para
x0 = [1.0, 1.0, 1.0]
Então seu código irá executar bem (pelo menos na minha máquina)
Python 3.5.1 (v3.5.1: 37a07cee5969, 6 de dezembro de 2015, 01:54:25) [MSC v.1900 64 bits (AMD64)] no win32
message: 'Optimization terminated successfully.'
njev: 10
jac: array([ 1., 0., 1., 0.])
fun: 0.6931471805582502
nit: 10
status: 0
x: array([ 1.00000000e+00, -1.39724765e-06, 1.07686548e-14])
success: True
nfev: 51
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras