如何在类中使用scipy的minimize(带约束)?

2024-09-28 21:00:40 发布

您现在位置:Python中文网/ 问答频道 /正文

对不起,我的帖子不清楚。我正在尝试为以下问题构建一个class

import numpy as np
from scipy.optimize import minimize
n, y = 1.0, 100

def func(x, sign=1.0, beta=0.90):
    """Objective function"""
    return sign*(np.log(x[0]) + beta * np.log(x[1]))

def func_deriv(x, sign=1.0, beta=0.90):
    """Derivative of objective function"""
    dfdx0 = sign*(1/x[0])
    dfdx1 = sign*beta*(1/x[1])
    return np.array ([dfdx0, dfdx1])    
cons = ({'type': 'eq',
        'fun': lambda x: np.array([x[0] + x[1]/n - y]),
        'jac': lambda x: np.array([1, 1/n])})

resC = minimize (func, [30,20], args=(-1.0,),    
                 jac=func_deriv, constraints=cons,
                 method='SLSQP', options={'disp': True})
print(resC.x)
       

结果是: [52.64537904 47.35462096]

谢谢你的帮助


Tags: importlogreturndefnpfunctionarraybeta