Find minimum return value of function with two parameters

Viewed 91

I have an error function, and sum of all errors on 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

I have been looking for a way to find for which coordinates sumFunction return value is minimal. I have heard about scipy yet I am looking for a way to build that manualy. Gradient descent won't seem to work either since it is very hard to derive this sum function. Thank you!

1 Answers

Did you try that create variable as a dictionary then append all iteration like this {self.calcError(i,X,Y)}:{i,X,Y}. If you return minimum the variable.keys then you can reach the coordinate from the min keys to value.

Related