Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 优化最小化:目标函数中的两个输出变量?_Python_Optimization_Scipy_Minimize - Fatal编程技术网

Python 优化最小化:目标函数中的两个输出变量?

Python 优化最小化:目标函数中的两个输出变量?,python,optimization,scipy,minimize,Python,Optimization,Scipy,Minimize,我正在使用scipyminimize函数查找一些参数的最佳值,H和Q。我的目标函数,kalman,根据变量log\u似然进行评估。简而言之,我试图找到使变量log\u可能性最大化的H和Q的最佳值 为此,scipy的最小化函数要求log\u似然是我的函数kalman的唯一输出 我的代码运行良好,我可以找到两个参数H和Q的最佳值。然而,我想做的是最后一次运行kalman(优化后),使用最佳H和Q值,让kalman返回另一个变量a 我不能这么做,因为如果我 return log_likelihood,

我正在使用scipy
minimize
函数查找一些参数的最佳值,
H
Q
。我的目标函数,
kalman
,根据变量
log\u似然
进行评估。简而言之,我试图找到使变量
log\u可能性最大化的
H
Q
的最佳值

为此,scipy的
最小化
函数要求
log\u似然
是我的函数
kalman
的唯一输出

我的代码运行良好,我可以找到两个参数
H
Q
的最佳值。然而,我想做的是最后一次运行
kalman
(优化后),使用最佳
H
Q
值,让
kalman
返回另一个变量
a

我不能这么做,因为如果我

return log_likelihood, A
在我的
kalman
函数中,
minimize
函数不会运行,因为
minimize
只能处理目标函数的一个输出

有什么想法吗

这是我的密码:

import numpy as np
from scipy.optimize import minimize

def kalman(x0):

    #set parameters values
    H = x0[0]
    Q = x0[1]

    #Do some operations
    #use H and Q to compute value for variable log_likelihood
    #use H and Q to compute value for variable A
    #...

    return log_likelihood

#initial parameter values
x0 = np.array([np.log(1),np.log(1)])

#optimizing function    
res = minimize(kalman, x0, method='BFGS', options={'disp': True})

#get optimal parameter values
param_values = res.x

#run kalman function final time with optimal values
kalman(param_values)     

您可以向函数添加一个额外的可选参数,如
kalman(x0,flag=False)
,这会使函数在设置为
True
时返回更多信息!!!谢谢工作得很有魅力!