gpt4 book ai didi

python - 如何使用 scipy minimize() 传递固定参数?

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:54 24 4
gpt4 key购买 nike

如何优化三变量函数中的两个变量?我的理解是我可以在 args 参数中包含最后一个变量,但我无法完成这项工作。我在这里做错了什么?我的想法是我想优化 x 和 y 并且 z 是固定的。

> from scipy.optimize import minimize
> def f(x,y,z):return x**2 * y**2 - x*y*z*32 +10
> minimize(f,[1,2,3],args=[2])
TypeError: f() takes exactly 3 arguments (2 given)

最佳答案

这里的想法是,您想要最小化的函数必须接受用于最小化的参数数组和可选参数。因此,您必须手动将输入数组分配给函数参数:

>>> def f(xs, z):
... x, y = xs
... return x**2 * y**2 - x*y*z*32 +10
...
>>> minimize(f, [1,3], args=(2,))
status: 2
success: False
njev: 18
nfev: 84
hess_inv: array([[ 0.02619011, -0.02104178],
[-0.02104178, 0.02982305]])
fun: -1014.0000000000002
x: array([ 5.79312665, 5.52378745])
message: 'Desired error not necessarily achieved due to precision loss.'
jac: array([ 3.05175781e-05, 1.52587891e-05])
nit: 6

关于python - 如何使用 scipy minimize() 传递固定参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33992716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com