gpt4 book ai didi

python - python中的负函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:28 24 4
gpt4 key购买 nike

我定义了一个函数,用于计算 x^2 等函数的最小值。我想定义一个函数,该函数通过乘以负数计算相似函数的最小值来计算函数的最大值。

def myf(g):
return -(g+1.3)**2+5
def maximize(f,low,high,tol):
return minimize(-1*f,low,high,tol)

有没有办法做到这一点?当我尝试我所拥有的时,出现以下错误:

TypeError: unsupported operand type(s) for *: 'int' and 'function'

最小化定义如下:

def minimize(f,low,high, tol):
if low>high:
c=low; a=high
a=float(a); c=float(c);
else:
a=float(low); c=float(high);
b=a+(c-a)*.618033
fa=f(a); fc=f(c)
fb=f(b);
if fb>fa or fb>fc: return maximize(f,low,high,tol)
while abs(a-c)>tol:
d=a+(c-b);
fd=f(d);
if d<b:
if fb<fd:
a=d; fa=fd;
else:
c=b; b=d
fc=fb; fb=fd
else:
if fd<fb:
a=b; fa=fb;
b=d; fb=fd
else:
c=d; fc=fd
return (a+c)/2.

寻找仅 python 代码的解决方案。

最佳答案

您不能将函数与数字相乘。相反,构建一个使用旧函数并将结果(而不是函数本身)与数字相乘的新函数:

def maximize(f,low,high,tol):
return minimize(lambda x: -f(x),low,high,tol)

关于python - python中的负函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10067493/

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