【发布时间】:2019-05-02 18:43:00
【问题描述】:
我正在尝试计算总和作为类分配的一部分,以开发梯度方法的代码。求和是我需要找到最小值的目标函数。计算总和时出现此错误“RuntimeWarning:double_scalars y = y + (-0.01*i + exp(-(1/x1)*((u - x2)**x3))**2) 中遇到的值无效”。
为什么会这样?我该如何解决?
from sympy import *
from numpy import *
x1 = 1
x2 = 50
x3 = 1
def f(x1,x2,x3):
y = 0
for i in range(1,100):
u = (25+(-50*log(0.01*i))**(2/3))
print(u)
y = y + (-0.01*i + exp(-(1/x1)*((u - x2)**x3))**2)
print(f'y{i} : {y}')
return y
y1 = f(25,50,1.25)
y2 = f(26,51,2.25)
print(f'y1: {y1}')
print(f'y2: {y2}')
【问题讨论】:
-
在提出问题时,您应该将完整的错误回溯放在您的问题中,因为回溯中有隐藏的线索。
-
谢谢@Hoog。我添加了完整的错误消息。
-
您可能会发现这篇文章很有用:stackoverflow.com/questions/27784528/…
标签: python