python - 计算总和的问题
问题描述
我正在尝试计算总和作为类分配的一部分,以开发梯度方法的代码。求和是我需要找到最小值的目标函数。计算总和时出现此错误“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}')
解决方案
您需要在 中进行投射u
,请参阅:
u = float((25+(-50*log(0.01*i))**(2/3)))
推荐阅读
- amazon-web-services - AWS CodePipeline:同时运行多个管道
- python - dataFrame重复提取行
- python - python将字符串解析为csv格式
- json - Flutter - 解析 Json 的最佳方法是什么?
- python - TensorFlow函数检查一个值是否在给定范围内?
- python - Python RPG 混乱
- search - 如何创建一个简单的谷歌地图地址搜索并在颤振中自动完成并获取纬度和经度?
- java - 您可以使用 RetryTemplate 重试 AssertionError 吗?
- html - Angular/ HTML:单击或按 Enter 后调用函数
- javascript - onsubmit里面没有调用JS表单验证函数