【发布时间】:2014-10-02 02:37:46
【问题描述】:
我想使用scipy.optimize 模块来最小化一个函数。假设我的函数是f(x,a):
def f(x,a):
return a*x**2
对于固定的a,我想相对于x 最小化f(x,a)。
使用scipy,我可以导入例如fmin 函数(我有一个旧的scipy:v.0.9.0),给出一个初始值x0,然后优化(documentation):
from scipy.optimize import fmin
x0 = [1]
xopt = fmin(f, x0, xtol=1e-8)
失败是因为f 接受两个参数,而fmin 只传递一个(实际上,我什至还没有定义a)。如果我这样做:
from scipy.optimize import fmin
x0 = [1]
a = 1
xopt = fmin(f(x,a), x0, xtol=1e-8)
计算也将失败,因为“x 未定义”。但是,如果我定义x,则没有可优化的变分参数。
这里如何允许非可变参数用作函数参数?
【问题讨论】:
标签: python numpy scipy mathematical-optimization minimization