使用Scipy优化积分方程

时间:2019-01-08 14:22:10

标签: python optimization scipy

我正在尝试最小化一个函数(以下为w.r.t参数“ a”和“ b”),该函数是根据整数定义的。为此,我使用了Scipy的最小化方法。同样,被积数也将函数作为输入。我的成本函数如下所示:

def cost_func(a,b,func):
    return dblquad(integrand,0,C,lambda x1:0,lambda x2:C,args=(func,a,b))[0]

C是一些全局变量。

这里的被积是由

定义的
def integrand(x1,x2,func,a,b):
    return func(x1,x2,a,b)

函数'integrand'和'cost_func'是理智的(因为它们给出了数字作为输出)。现在到最小化部分:

x0 = [5,5]
result = minimize(cost_func,x0,args=(a,b,func),method=('Nelder-Mead'))

注意:最小化中的'func'可以是任意数量的给定功能集,例如

def func1(x1,x2,a,b):
    return some real number

当我调用最小化(对于某些函数)时,我得到了

Traceback (most recent call last):
  File "./update.py", line 54, in <module>
minimize(cost_func,x0,args=(a,b,func),method=('Nelder-Mead'))
NameError: name 'a' is not defined

我猜测我没有以正确的方式使用变量,这就是导致我出现问题的原因。我以为这就是最小化失败的原因吗?在这种情况下,当您将一些复杂的参数结构用于多个函数时,是否有良好的经验法则?

非常感谢。

0 个答案:

没有答案