我有一个错误函数,以及self.array上所有错误的总和:
#'array' looks something like this [[x1,y1],[x2,y2],[x3,y3],...,[xn,yn]]
#'distances' is an array with same length as array with different int values in it
def calcError(self,n,X,Y): #calculate distance of nth member of array from given point
X,Y = float(X),float(Y)
arrX = float(self.array[n][0])
arrY = float(self.array[n][1])
e = 2.71828
eToThePower = e**(-1*self.distances[n])
distanceFromPoint=math.sqrt((arrX-X)**2+(arrY-Y)**2)
return float(eToThePower*(distanceFromPoint-self.distances[n])**2)
def sumFunction(self,X,Y):
res = 0.0
for i in range(len(self.array)):
res += self.calcError(i,X,Y)
return res
我一直在寻找一种方法,找出函数返回值最小的坐标。我听说过scipy,但我正在寻找一种方法来手动构建它。梯度下降似乎也不起作用,因为很难推导出这个和函数。 谢谢大家!
您是否尝试将创建变量作为字典,然后像这样附加所有迭代{self.calcError(i,X,Y)}:{i,X,Y}。如果返回变量.keys的最小值,则可以达到从最小值到值的坐标
相关问题 更多 >
编程相关推荐