In [1]:
%pylab inline

from scipy.optimize import basinhopping
from scipy.interpolate import UnivariateSpline

import pandas as pd

import csv

import shapely.affinity as af
import shapely.geometry as sh

from equivalent_ellipse import *
from scaled_figures import *


Populating the interactive namespace from numpy and matplotlib

In [2]:
x_list = list()
y_list = list()

with open('../data/cutout_x.csv', 'r') as x_csvfile:
    with open('../data/cutout_y.csv', 'r') as y_csvfile:
        
        x_reader = csv.reader(x_csvfile, delimiter=',', lineterminator='\n')
        y_reader = csv.reader(y_csvfile, delimiter=',', lineterminator='\n')
        
        for row in x_reader:
            x_list += [row]
  
        for row in y_reader:
            y_list += [row]

            
num_cutouts = len(x_list)


x_array = [0,]*num_cutouts
y_array = [0,]*num_cutouts


for i in range(num_cutouts):

    x_array[i] = array(x_list[i], dtype='float')
    y_array[i] = array(y_list[i], dtype='float')

    
cutout = [0,]*num_cutouts

for i in range(num_cutouts):
    cutout[i] = shapely_cutout(x_array[i],y_array[i])

In [3]:
# testCutout = cutout[70]
# testCutout

In [4]:
with open('circle_cutout_factors','r') as f:
    
    loaded_circle_factor = eval(f.read())
    
circleDictArray = array(list(loaded_circle_factor.items()),float)

circleDiameter = circleDictArray[:,0]
circleFactor = circleDictArray[:,1]

In [5]:
scatter(circleDiameter,circleFactor)

circleFit = UnivariateSpline(circleDiameter,circleFactor)

diameter_i = linspace(circleDiameter.min(),circleDiameter.max())
plot(diameter_i,circleFit(diameter_i),'r--')


Out[5]:
[<matplotlib.lines.Line2D at 0x8df1160>]

In [6]:
minVal = 3
maxVal = 9
numZones = 100

In [7]:
# Create Zones

zoneWidth = linspace(minVal,maxVal,numZones)

zoneWeight = 3000*circleFit.derivative()(zoneWidth)**2

circle = [0,]*(numZones)
circle[0] = sh.Point(0,0).buffer(minVal/2)

zone = [0,]*numZones
zone[0] = circle[0]

for i in range(1,numZones-1):

    circle[i] = sh.Point(0,0).buffer(zoneWidth[i]/2)
    zone[i] = circle[i].difference(circle[i-1])

zone[-1] = sh.Point(0,0).buffer(20).difference(circle[-2])

# weightedArea = 0.
# for i in range(numZones):
    
#     weightedArea += testCutout.intersection(zone[i]).area * zoneWeight[i]
    
# weightedArea

In [8]:
# testCutout.area

In [9]:
plot(zoneWidth,zoneWeight)


Out[9]:
[<matplotlib.lines.Line2D at 0x9518f98>]

In [10]:
def weightedAreaOptimise(x,inputShape):
    
    a = x[0]
    b = x[1]
    
    movedShape =af.translate(inputShape, xoff=-a, yoff=-b)
    
    weightedArea = 0.
    
    for i in range(numZones):
        weightedArea += movedShape.intersection(zone[i]).area * zoneWeight[i]
        
    return -weightedArea

In [11]:
class MyTakeStep(object):
    
    def __init__(self, stepsize=0.5):
        self.stepsize = stepsize
        
    def __call__(self, x):
        s = self.stepsize
        x[0] += np.random.uniform(-3*s, 3*s)
        x[1] += np.random.uniform(-3*s, 3*s)
        
        return x
    

def print_fun(x, f, accepted):

    global successCount_basinhopping
    global minVals_basinhopping
    global nSuccess_basinhopping

    a = x[0]
    b = x[1]
    
    f = np.around(f,4)
    
    if accepted:
        
        if np.all(np.isnan(minVals_basinhopping)):
            
            minVals_basinhopping[0] = f
            successCount_basinhopping = 1
            
            print(("first local minima of %.4f at:\n"+
                "[a,b] = [%.4f, %.4f]")
                % (f,a,b))
            
        elif (np.nanmin(minVals_basinhopping) == f):
        
            minVals_basinhopping[successCount_basinhopping] = f
            successCount_basinhopping += 1
            
            print(("agreeing local minima of %.4f at:\n"+
                "[a,b] = [%.4f, %.4f]")
                % (f,a,b))
        
        elif (np.nanmin(minVals_basinhopping) > f):
        
            minVals_basinhopping[0] = f
            successCount_basinhopping = 1
            
            print(("new local minima of %.4f at:\n"+
                "[a,b] = [%.4f, %.4f]") 
                % (f,a,b))
                
        else:
        
            print(("rejected local minima of %.4f at:\n"+
                "[a,b] = [%.4f, %.4f]") 
                % (f,a,b))
            
        
    else:
        
        print(("failed to find local minima at:\n"+
            "[a,b] = [%.4f, %.4f]") 
            % (a,b))
          

    if successCount_basinhopping >= nSuccess_basinhopping:
        return True



def optimise_middle(cutout,userNSuccess):
    
    mytakestep = MyTakeStep()
    
    global nSuccess_basinhopping
    nSuccess_basinhopping = userNSuccess
    
    global minVals_basinhopping
    minVals_basinhopping = np.empty(nSuccess_basinhopping)
    minVals_basinhopping[:] = np.nan
    
    global successCount_basinhopping
    successCount_basinhopping = 0
        
    minimizer_kwargs = {"args": (cutout,), "method": 'L-BFGS-B', 
                        "bounds": ((-5,5),(-5,5)) }
    
    x0 = np.array([0,0])

    output = basinhopping(weightedAreaOptimise,x0,
                          niter=1000,minimizer_kwargs=minimizer_kwargs,
                          take_step=mytakestep, callback=print_fun)

    return output

In [16]:
middle_points = zeros([num_cutouts,2])

for i in range(num_cutouts):

    print("Cutout %.f" % (i))
    output = optimise_middle(cutout[i],5)
    middle_points[i,:] = output.x
    print(" ")


Cutout 0
first local minima of -46.2982 at:
[a,b] = [0.0477, -0.6668]
agreeing local minima of -46.2982 at:
[a,b] = [0.0477, -0.6668]
agreeing local minima of -46.2982 at:
[a,b] = [0.0477, -0.6668]
agreeing local minima of -46.2982 at:
[a,b] = [0.0477, -0.6668]
agreeing local minima of -46.2982 at:
[a,b] = [0.0477, -0.6668]
 
Cutout 1
first local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0939, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
 
Cutout 2
first local minima of -46.8982 at:
[a,b] = [0.0114, 0.2487]
agreeing local minima of -46.8982 at:
[a,b] = [0.0114, 0.2487]
agreeing local minima of -46.8982 at:
[a,b] = [0.0114, 0.2487]
agreeing local minima of -46.8982 at:
[a,b] = [0.0114, 0.2487]
agreeing local minima of -46.8982 at:
[a,b] = [0.0114, 0.2487]
 
Cutout 3
first local minima of -35.9248 at:
[a,b] = [0.2047, -0.1736]
agreeing local minima of -35.9248 at:
[a,b] = [0.2047, -0.1736]
agreeing local minima of -35.9248 at:
[a,b] = [0.2047, -0.1736]
agreeing local minima of -35.9248 at:
[a,b] = [0.2047, -0.1735]
agreeing local minima of -35.9248 at:
[a,b] = [0.2047, -0.1736]
 
Cutout 4
first local minima of -47.9460 at:
[a,b] = [0.0244, -0.7807]
agreeing local minima of -47.9460 at:
[a,b] = [0.0244, -0.7807]
agreeing local minima of -47.9460 at:
[a,b] = [0.0244, -0.7807]
agreeing local minima of -47.9460 at:
[a,b] = [0.0244, -0.7807]
agreeing local minima of -47.9460 at:
[a,b] = [0.0244, -0.7807]
 
Cutout 5
first local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1938, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1938, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
 
Cutout 6
first local minima of -47.4282 at:
[a,b] = [0.4414, -0.5697]
agreeing local minima of -47.4282 at:
[a,b] = [0.4414, -0.5697]
agreeing local minima of -47.4282 at:
[a,b] = [0.4415, -0.5697]
agreeing local minima of -47.4282 at:
[a,b] = [0.4414, -0.5697]
agreeing local minima of -47.4282 at:
[a,b] = [0.4414, -0.5697]
 
Cutout 7
first local minima of -46.5647 at:
[a,b] = [0.3862, -0.7505]
agreeing local minima of -46.5647 at:
[a,b] = [0.3862, -0.7506]
agreeing local minima of -46.5647 at:
[a,b] = [0.3862, -0.7506]
agreeing local minima of -46.5647 at:
[a,b] = [0.3862, -0.7506]
agreeing local minima of -46.5647 at:
[a,b] = [0.3862, -0.7506]
 
Cutout 8
first local minima of -46.7397 at:
[a,b] = [-0.3607, 0.3515]
agreeing local minima of -46.7397 at:
[a,b] = [-0.3607, 0.3515]
agreeing local minima of -46.7397 at:
[a,b] = [-0.3607, 0.3515]
agreeing local minima of -46.7397 at:
[a,b] = [-0.3607, 0.3515]
agreeing local minima of -46.7397 at:
[a,b] = [-0.3607, 0.3515]
 
Cutout 9
first local minima of -47.6837 at:
[a,b] = [-0.5317, -0.3855]
agreeing local minima of -47.6837 at:
[a,b] = [-0.5317, -0.3855]
agreeing local minima of -47.6837 at:
[a,b] = [-0.5317, -0.3855]
agreeing local minima of -47.6837 at:
[a,b] = [-0.5317, -0.3855]
agreeing local minima of -47.6837 at:
[a,b] = [-0.5317, -0.3855]
 
Cutout 10
first local minima of -45.0976 at:
[a,b] = [-0.3471, -0.7735]
agreeing local minima of -45.0976 at:
[a,b] = [-0.3471, -0.7735]
agreeing local minima of -45.0976 at:
[a,b] = [-0.3471, -0.7735]
agreeing local minima of -45.0976 at:
[a,b] = [-0.3471, -0.7735]
agreeing local minima of -45.0976 at:
[a,b] = [-0.3471, -0.7735]
 
Cutout 11
first local minima of -46.8638 at:
[a,b] = [0.2812, -0.3055]
agreeing local minima of -46.8638 at:
[a,b] = [0.2812, -0.3055]
agreeing local minima of -46.8638 at:
[a,b] = [0.2812, -0.3055]
agreeing local minima of -46.8638 at:
[a,b] = [0.2812, -0.3055]
agreeing local minima of -46.8638 at:
[a,b] = [0.2812, -0.3055]
 
Cutout 12
first local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
 
Cutout 13
first local minima of -47.6700 at:
[a,b] = [-1.1288, 0.4995]
agreeing local minima of -47.6700 at:
[a,b] = [-1.1288, 0.4995]
agreeing local minima of -47.6700 at:
[a,b] = [-1.1288, 0.4996]
agreeing local minima of -47.6700 at:
[a,b] = [-1.1288, 0.4996]
agreeing local minima of -47.6700 at:
[a,b] = [-1.1288, 0.4995]
 
Cutout 14
first local minima of -33.2423 at:
[a,b] = [0.2167, -0.4677]
agreeing local minima of -33.2423 at:
[a,b] = [0.2167, -0.4677]
agreeing local minima of -33.2423 at:
[a,b] = [0.2167, -0.4677]
agreeing local minima of -33.2423 at:
[a,b] = [0.2167, -0.4677]
agreeing local minima of -33.2423 at:
[a,b] = [0.2167, -0.4677]
 
Cutout 15
first local minima of -48.0613 at:
[a,b] = [-0.5018, 0.3500]
rejected local minima of -48.0601 at:
[a,b] = [0.1879, 0.3668]
new local minima of -48.0630 at:
[a,b] = [0.9511, -0.1413]
rejected local minima of -48.0601 at:
[a,b] = [-0.4552, -0.4048]
rejected local minima of -48.0613 at:
[a,b] = [-0.5002, 0.3501]
agreeing local minima of -48.0630 at:
[a,b] = [0.9512, -0.1410]
rejected local minima of -48.0601 at:
[a,b] = [0.1892, 0.3668]
rejected local minima of -48.0627 at:
[a,b] = [1.0791, 0.3565]
agreeing local minima of -48.0630 at:
[a,b] = [0.9511, -0.1413]
rejected local minima of -48.0613 at:
[a,b] = [-0.5000, 0.3501]
new local minima of -48.0635 at:
[a,b] = [-1.0573, -0.3852]
rejected local minima of -48.0601 at:
[a,b] = [-0.6251, -0.4077]
rejected local minima of -48.0613 at:
[a,b] = [-0.5002, 0.3500]
rejected local minima of -48.0601 at:
[a,b] = [0.1877, 0.3668]
rejected local minima of -48.0613 at:
[a,b] = [-0.4999, 0.3501]
rejected local minima of -48.0630 at:
[a,b] = [0.9506, -0.1416]
rejected local minima of -48.0630 at:
[a,b] = [0.9512, -0.1410]
rejected local minima of -48.0630 at:
[a,b] = [0.9511, -0.1412]
rejected local minima of -48.0613 at:
[a,b] = [-0.5001, 0.3501]
rejected local minima of -48.0601 at:
[a,b] = [0.1916, 0.3665]
rejected local minima of -48.0630 at:
[a,b] = [0.9511, -0.1413]
rejected local minima of -48.0601 at:
[a,b] = [0.1874, 0.3668]
rejected local minima of -48.0630 at:
[a,b] = [0.9517, -0.1409]
rejected local minima of -48.0627 at:
[a,b] = [1.0792, 0.3565]
rejected local minima of -48.0601 at:
[a,b] = [0.1724, 0.3667]
rejected local minima of -48.0601 at:
[a,b] = [0.1900, 0.3667]
rejected local minima of -48.0630 at:
[a,b] = [0.9509, -0.1414]
rejected local minima of -48.0601 at:
[a,b] = [-0.0744, -0.3875]
rejected local minima of -48.0613 at:
[a,b] = [-0.5005, 0.3501]
rejected local minima of -48.0601 at:
[a,b] = [-0.3614, -0.4046]
agreeing local minima of -48.0635 at:
[a,b] = [-1.0575, -0.3850]
agreeing local minima of -48.0635 at:
[a,b] = [-1.0572, -0.3850]
rejected local minima of -48.0601 at:
[a,b] = [0.1885, 0.3668]
rejected local minima of -48.0601 at:
[a,b] = [0.1900, 0.3668]
agreeing local minima of -48.0635 at:
[a,b] = [-1.0576, -0.3850]
rejected local minima of -48.0630 at:
[a,b] = [0.9511, -0.1413]
rejected local minima of -48.0583 at:
[a,b] = [0.0255, -0.1000]
rejected local minima of -48.0627 at:
[a,b] = [1.0792, 0.3563]
rejected local minima of -48.0601 at:
[a,b] = [-0.6254, -0.4076]
rejected local minima of -48.0627 at:
[a,b] = [1.0793, 0.3564]
rejected local minima of -48.0630 at:
[a,b] = [0.9511, -0.1412]
rejected local minima of -48.0613 at:
[a,b] = [-0.5000, 0.3501]
agreeing local minima of -48.0635 at:
[a,b] = [-1.0574, -0.3850]
 
Cutout 16
first local minima of -46.2882 at:
[a,b] = [0.0047, -0.6724]
agreeing local minima of -46.2882 at:
[a,b] = [0.0047, -0.6724]
agreeing local minima of -46.2882 at:
[a,b] = [0.0047, -0.6724]
agreeing local minima of -46.2882 at:
[a,b] = [0.0047, -0.6724]
agreeing local minima of -46.2882 at:
[a,b] = [0.0047, -0.6724]
 
Cutout 17
first local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8757, -0.2538]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
 
Cutout 18
first local minima of -47.8201 at:
[a,b] = [-0.0826, -0.4558]
agreeing local minima of -47.8201 at:
[a,b] = [-0.0826, -0.4558]
agreeing local minima of -47.8201 at:
[a,b] = [-0.0826, -0.4558]
agreeing local minima of -47.8201 at:
[a,b] = [-0.0826, -0.4558]
agreeing local minima of -47.8201 at:
[a,b] = [-0.0826, -0.4558]
 
Cutout 19
first local minima of -44.8762 at:
[a,b] = [0.4958, 0.2839]
agreeing local minima of -44.8762 at:
[a,b] = [0.4958, 0.2839]
agreeing local minima of -44.8762 at:
[a,b] = [0.4958, 0.2839]
agreeing local minima of -44.8762 at:
[a,b] = [0.4958, 0.2839]
agreeing local minima of -44.8762 at:
[a,b] = [0.4958, 0.2839]
 
Cutout 20
first local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1938, -0.3417]
 
Cutout 21
first local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3471]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4390, 0.3471]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3471]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3471]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3471]
 
Cutout 22
first local minima of -43.1578 at:
[a,b] = [-0.8273, -0.3653]
agreeing local minima of -43.1578 at:
[a,b] = [-0.8273, -0.3653]
agreeing local minima of -43.1578 at:
[a,b] = [-0.8273, -0.3653]
agreeing local minima of -43.1578 at:
[a,b] = [-0.8273, -0.3653]
agreeing local minima of -43.1578 at:
[a,b] = [-0.8273, -0.3653]
 
Cutout 23
first local minima of -47.7605 at:
[a,b] = [-0.1643, 0.0495]
agreeing local minima of -47.7605 at:
[a,b] = [-0.1643, 0.0495]
agreeing local minima of -47.7605 at:
[a,b] = [-0.1643, 0.0495]
agreeing local minima of -47.7605 at:
[a,b] = [-0.1643, 0.0495]
agreeing local minima of -47.7605 at:
[a,b] = [-0.1643, 0.0495]
 
Cutout 24
first local minima of -48.0591 at:
[a,b] = [-0.0890, 0.9014]
agreeing local minima of -48.0591 at:
[a,b] = [-0.0890, 0.9014]
agreeing local minima of -48.0591 at:
[a,b] = [-0.0890, 0.9015]
agreeing local minima of -48.0591 at:
[a,b] = [-0.0890, 0.9010]
rejected local minima of -48.0576 at:
[a,b] = [-0.1492, -0.9866]
rejected local minima of -48.0574 at:
[a,b] = [0.3737, -0.9220]
rejected local minima of -48.0576 at:
[a,b] = [-0.1492, -0.9865]
rejected local minima of -48.0574 at:
[a,b] = [0.3738, -0.9220]
rejected local minima of -48.0574 at:
[a,b] = [0.3738, -0.9220]
rejected local minima of -48.0574 at:
[a,b] = [0.3737, -0.9220]
rejected local minima of -48.0574 at:
[a,b] = [0.3738, -0.9220]
rejected local minima of -48.0576 at:
[a,b] = [-0.1491, -0.9865]
agreeing local minima of -48.0591 at:
[a,b] = [-0.0890, 0.9015]
 
Cutout 25
first local minima of -47.9956 at:
[a,b] = [-0.3471, 0.2029]
agreeing local minima of -47.9956 at:
[a,b] = [-0.3440, 0.2017]
agreeing local minima of -47.9956 at:
[a,b] = [-0.3460, 0.2024]
agreeing local minima of -47.9956 at:
[a,b] = [-0.3474, 0.2032]
agreeing local minima of -47.9956 at:
[a,b] = [-0.3448, 0.2020]
 
Cutout 26
first local minima of -47.9768 at:
[a,b] = [0.8755, -0.2538]
agreeing local minima of -47.9768 at:
[a,b] = [0.8756, -0.2538]
agreeing local minima of -47.9768 at:
[a,b] = [0.8756, -0.2538]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2538]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
 
Cutout 27
first local minima of -48.0070 at:
[a,b] = [0.1435, -0.2565]
agreeing local minima of -48.0070 at:
[a,b] = [0.1434, -0.2565]
agreeing local minima of -48.0070 at:
[a,b] = [0.1435, -0.2565]
agreeing local minima of -48.0070 at:
[a,b] = [0.1436, -0.2562]
agreeing local minima of -48.0070 at:
[a,b] = [0.1436, -0.2566]
 
Cutout 28
first local minima of -47.6208 at:
[a,b] = [0.0525, 0.2107]
agreeing local minima of -47.6208 at:
[a,b] = [0.0525, 0.2107]
agreeing local minima of -47.6208 at:
[a,b] = [0.0526, 0.2107]
agreeing local minima of -47.6208 at:
[a,b] = [0.0525, 0.2107]
agreeing local minima of -47.6208 at:
[a,b] = [0.0525, 0.2107]
 
Cutout 29
first local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3471]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3471]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3471]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4389, 0.3470]
agreeing local minima of -47.9064 at:
[a,b] = [-0.4390, 0.3471]
 
Cutout 30
first local minima of -48.1905 at:
[a,b] = [1.0605, -0.7967]
new local minima of -48.1909 at:
[a,b] = [0.3089, -2.6896]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7961]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7961]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7945]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7949]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7960]
rejected local minima of -48.1905 at:
[a,b] = [1.0603, -0.7975]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7953]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7957]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7950]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7950]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7970]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7955]
agreeing local minima of -48.1909 at:
[a,b] = [0.3105, -2.6893]
agreeing local minima of -48.1909 at:
[a,b] = [0.3089, -2.6896]
agreeing local minima of -48.1909 at:
[a,b] = [0.3089, -2.6897]
new local minima of -48.1911 at:
[a,b] = [0.7737, -2.7629]
agreeing local minima of -48.1911 at:
[a,b] = [0.7743, -2.7630]
rejected local minima of -48.1909 at:
[a,b] = [0.3090, -2.6896]
rejected local minima of -48.1909 at:
[a,b] = [0.3088, -2.6896]
rejected local minima of -48.1909 at:
[a,b] = [0.3087, -2.6895]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7953]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7954]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7959]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7957]
rejected local minima of -48.1905 at:
[a,b] = [1.0605, -0.7922]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7954]
rejected local minima of -48.1889 at:
[a,b] = [0.9108, -2.2163]
rejected local minima of -48.1909 at:
[a,b] = [0.3088, -2.6896]
rejected local minima of -48.1909 at:
[a,b] = [0.3089, -2.6895]
rejected local minima of -48.1909 at:
[a,b] = [0.3086, -2.6900]
rejected local minima of -48.1909 at:
[a,b] = [0.3091, -2.6896]
agreeing local minima of -48.1911 at:
[a,b] = [0.7738, -2.7629]
rejected local minima of -48.1909 at:
[a,b] = [0.3089, -2.6896]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7966]
rejected local minima of -48.1909 at:
[a,b] = [0.3090, -2.6895]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7954]
rejected local minima of -48.1909 at:
[a,b] = [0.3085, -2.6896]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7954]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7960]
rejected local minima of -48.1905 at:
[a,b] = [1.0603, -0.7949]
rejected local minima of -48.1905 at:
[a,b] = [1.0604, -0.7950]
rejected local minima of -48.1905 at:
[a,b] = [1.0603, -0.7942]
rejected local minima of -48.1892 at:
[a,b] = [1.0380, -1.6534]
agreeing local minima of -48.1911 at:
[a,b] = [0.7737, -2.7629]
agreeing local minima of -48.1911 at:
[a,b] = [0.7738, -2.7628]
 
Cutout 31
first local minima of -47.9736 at:
[a,b] = [-0.6341, 0.6956]
agreeing local minima of -47.9736 at:
[a,b] = [-0.6340, 0.6956]
agreeing local minima of -47.9736 at:
[a,b] = [-0.6340, 0.6956]
agreeing local minima of -47.9736 at:
[a,b] = [-0.6340, 0.6956]
agreeing local minima of -47.9736 at:
[a,b] = [-0.6340, 0.6956]
 
Cutout 32
first local minima of -47.9659 at:
[a,b] = [0.7804, 0.2204]
agreeing local minima of -47.9659 at:
[a,b] = [0.7804, 0.2204]
agreeing local minima of -47.9659 at:
[a,b] = [0.7804, 0.2204]
agreeing local minima of -47.9659 at:
[a,b] = [0.7804, 0.2204]
agreeing local minima of -47.9659 at:
[a,b] = [0.7804, 0.2204]
 
Cutout 33
first local minima of -42.0905 at:
[a,b] = [-0.4711, 0.3436]
agreeing local minima of -42.0905 at:
[a,b] = [-0.4711, 0.3436]
agreeing local minima of -42.0905 at:
[a,b] = [-0.4711, 0.3436]
agreeing local minima of -42.0905 at:
[a,b] = [-0.4711, 0.3436]
agreeing local minima of -42.0905 at:
[a,b] = [-0.4712, 0.3436]
 
Cutout 34
first local minima of -47.1789 at:
[a,b] = [0.2751, -0.3892]
agreeing local minima of -47.1789 at:
[a,b] = [0.2751, -0.3893]
agreeing local minima of -47.1789 at:
[a,b] = [0.2751, -0.3892]
agreeing local minima of -47.1789 at:
[a,b] = [0.2751, -0.3893]
agreeing local minima of -47.1789 at:
[a,b] = [0.2751, -0.3893]
 
Cutout 35
first local minima of -43.5852 at:
[a,b] = [0.4661, -0.2824]
agreeing local minima of -43.5852 at:
[a,b] = [0.4661, -0.2824]
agreeing local minima of -43.5852 at:
[a,b] = [0.4661, -0.2824]
agreeing local minima of -43.5852 at:
[a,b] = [0.4661, -0.2824]
agreeing local minima of -43.5852 at:
[a,b] = [0.4661, -0.2824]
 
Cutout 36
first local minima of -48.4712 at:
[a,b] = [1.1123, -0.0990]
agreeing local minima of -48.4712 at:
[a,b] = [0.2079, -0.4683]
agreeing local minima of -48.4712 at:
[a,b] = [1.0686, 0.8905]
agreeing local minima of -48.4712 at:
[a,b] = [1.1191, -0.2546]
agreeing local minima of -48.4712 at:
[a,b] = [0.1918, 0.5853]
 
Cutout 37
first local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8752, -0.2539]
 
Cutout 38
first local minima of -35.6919 at:
[a,b] = [-0.0172, -0.1601]
agreeing local minima of -35.6919 at:
[a,b] = [-0.0172, -0.1601]
agreeing local minima of -35.6919 at:
[a,b] = [-0.0172, -0.1601]
agreeing local minima of -35.6919 at:
[a,b] = [-0.0172, -0.1601]
agreeing local minima of -35.6919 at:
[a,b] = [-0.0172, -0.1601]
 
Cutout 39
first local minima of -48.0070 at:
[a,b] = [0.1438, -0.2566]
agreeing local minima of -48.0070 at:
[a,b] = [0.1435, -0.2565]
agreeing local minima of -48.0070 at:
[a,b] = [0.1434, -0.2564]
agreeing local minima of -48.0070 at:
[a,b] = [0.1436, -0.2566]
agreeing local minima of -48.0070 at:
[a,b] = [0.1435, -0.2565]
 
Cutout 40
first local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
agreeing local minima of -47.7511 at:
[a,b] = [-0.0938, 0.4374]
 
Cutout 41
first local minima of -47.2625 at:
[a,b] = [0.0245, -0.0465]
agreeing local minima of -47.2625 at:
[a,b] = [0.0244, -0.0466]
agreeing local minima of -47.2625 at:
[a,b] = [0.0244, -0.0466]
agreeing local minima of -47.2625 at:
[a,b] = [0.0244, -0.0466]
agreeing local minima of -47.2625 at:
[a,b] = [0.0244, -0.0466]
 
Cutout 42
first local minima of -48.2342 at:
[a,b] = [-1.1724, -0.8581]
new local minima of -48.2350 at:
[a,b] = [-1.6968, -0.5247]
rejected local minima of -48.2341 at:
[a,b] = [-0.7174, -1.0100]
rejected local minima of -48.2316 at:
[a,b] = [-1.5501, 0.2050]
rejected local minima of -48.2316 at:
[a,b] = [-0.8496, -0.5544]
rejected local minima of -48.2316 at:
[a,b] = [0.1102, -0.1773]
rejected local minima of -48.2342 at:
[a,b] = [-1.1703, -0.8592]
agreeing local minima of -48.2350 at:
[a,b] = [-1.6969, -0.5246]
rejected local minima of -48.2316 at:
[a,b] = [-0.5111, 0.2209]
rejected local minima of -48.2316 at:
[a,b] = [-0.0631, -0.6619]
rejected local minima of -48.2316 at:
[a,b] = [-0.7202, -0.6250]
rejected local minima of -48.2316 at:
[a,b] = [-0.5936, -0.3556]
rejected local minima of -48.2349 at:
[a,b] = [1.2123, -1.3289]
rejected local minima of -48.2316 at:
[a,b] = [0.4693, -0.5816]
rejected local minima of -48.2316 at:
[a,b] = [0.7259, 0.8150]
rejected local minima of -48.2316 at:
[a,b] = [0.6782, 0.7887]
new local minima of -48.2355 at:
[a,b] = [0.9217, 1.3119]
agreeing local minima of -48.2355 at:
[a,b] = [0.9218, 1.3122]
agreeing local minima of -48.2355 at:
[a,b] = [0.9217, 1.3119]
rejected local minima of -48.2342 at:
[a,b] = [-1.1708, -0.8589]
rejected local minima of -48.2350 at:
[a,b] = [-1.6971, -0.5243]
rejected local minima of -48.2316 at:
[a,b] = [-0.7149, -0.7297]
rejected local minima of -48.2316 at:
[a,b] = [-1.0258, -0.1754]
rejected local minima of -48.2316 at:
[a,b] = [0.2325, 0.6704]
rejected local minima of -48.2316 at:
[a,b] = [-0.8727, -0.0122]
rejected local minima of -48.2342 at:
[a,b] = [-1.1705, -0.8592]
rejected local minima of -48.2316 at:
[a,b] = [-1.0522, -0.4211]
rejected local minima of -48.2316 at:
[a,b] = [-0.9510, 0.1727]
rejected local minima of -48.2316 at:
[a,b] = [-1.7880, 0.7924]
rejected local minima of -48.2337 at:
[a,b] = [-2.1608, 0.2670]
rejected local minima of -48.2345 at:
[a,b] = [-0.5153, 1.5370]
rejected local minima of -48.2316 at:
[a,b] = [-0.6474, 0.5906]
new local minima of -48.2375 at:
[a,b] = [-2.3797, 0.8456]
rejected local minima of -48.2316 at:
[a,b] = [0.1272, 0.7080]
rejected local minima of -48.2316 at:
[a,b] = [-1.1612, -0.3652]
rejected local minima of -48.2345 at:
[a,b] = [-0.5142, 1.5370]
rejected local minima of -48.2316 at:
[a,b] = [0.4721, 0.8702]
rejected local minima of -48.2316 at:
[a,b] = [-0.2203, 0.9142]
rejected local minima of -48.2355 at:
[a,b] = [0.9214, 1.3121]
rejected local minima of -48.2355 at:
[a,b] = [0.9217, 1.3120]
rejected local minima of -48.2316 at:
[a,b] = [-0.1604, -0.5883]
rejected local minima of -48.2316 at:
[a,b] = [-1.6296, 0.8911]
rejected local minima of -48.2350 at:
[a,b] = [-1.6968, -0.5247]
rejected local minima of -48.2316 at:
[a,b] = [-1.1578, 0.1671]
rejected local minima of -48.2345 at:
[a,b] = [-0.5139, 1.5370]
rejected local minima of -48.2316 at:
[a,b] = [-0.6017, 0.5559]
rejected local minima of -48.2345 at:
[a,b] = [-0.5146, 1.5368]
rejected local minima of -48.2316 at:
[a,b] = [-0.1469, -0.6101]
rejected local minima of -48.2331 at:
[a,b] = [0.2715, -1.1633]
rejected local minima of -48.2316 at:
[a,b] = [0.1715, -0.7048]
rejected local minima of -48.2316 at:
[a,b] = [0.1772, -0.3772]
rejected local minima of -48.2349 at:
[a,b] = [1.2125, -1.3285]
rejected local minima of -48.2336 at:
[a,b] = [1.8900, 0.0285]
rejected local minima of -48.2349 at:
[a,b] = [1.2125, -1.3284]
rejected local minima of -48.2349 at:
[a,b] = [1.2125, -1.3285]
rejected local minima of -48.2336 at:
[a,b] = [1.8902, 0.0286]
rejected local minima of -48.2349 at:
[a,b] = [1.2085, -1.3267]
rejected local minima of -48.2349 at:
[a,b] = [1.2123, -1.3284]
rejected local minima of -48.2350 at:
[a,b] = [-1.6967, -0.5248]
rejected local minima of -48.2342 at:
[a,b] = [-1.1696, -0.8580]
rejected local minima of -48.2316 at:
[a,b] = [0.0438, 0.1800]
rejected local minima of -48.2316 at:
[a,b] = [-0.2083, 0.6665]
rejected local minima of -48.2345 at:
[a,b] = [-0.5159, 1.5368]
rejected local minima of -48.2337 at:
[a,b] = [-2.1630, 0.2717]
rejected local minima of -48.2338 at:
[a,b] = [-1.6845, 1.2107]
rejected local minima of -48.2345 at:
[a,b] = [-0.5143, 1.5369]
rejected local minima of -48.2338 at:
[a,b] = [-1.7106, 1.1969]
rejected local minima of -48.2316 at:
[a,b] = [-1.3050, 0.3373]
rejected local minima of -48.2350 at:
[a,b] = [-1.6967, -0.5248]
rejected local minima of -48.2342 at:
[a,b] = [-1.2204, -0.8356]
rejected local minima of -48.2350 at:
[a,b] = [-1.6969, -0.5246]
rejected local minima of -48.2342 at:
[a,b] = [-1.1713, -0.8585]
rejected local minima of -48.2331 at:
[a,b] = [0.3391, -1.1736]
rejected local minima of -48.2350 at:
[a,b] = [-1.6975, -0.5239]
rejected local minima of -48.2316 at:
[a,b] = [-0.2387, -0.3955]
rejected local minima of -48.2316 at:
[a,b] = [-0.5670, 1.1083]
rejected local minima of -48.2345 at:
[a,b] = [-0.5145, 1.5368]
rejected local minima of -48.2345 at:
[a,b] = [-0.5137, 1.5367]
rejected local minima of -48.2316 at:
[a,b] = [0.4055, 0.9248]
rejected local minima of -48.2316 at:
[a,b] = [0.4436, 1.0000]
rejected local minima of -48.2345 at:
[a,b] = [-0.5152, 1.5370]
rejected local minima of -48.2316 at:
[a,b] = [-0.3842, 1.0813]
rejected local minima of -48.2355 at:
[a,b] = [0.9219, 1.3120]
rejected local minima of -48.2336 at:
[a,b] = [0.3652, 1.4443]
rejected local minima of -48.2345 at:
[a,b] = [-0.5126, 1.5371]
rejected local minima of -48.2316 at:
[a,b] = [-0.1996, 0.0252]
rejected local minima of -48.2316 at:
[a,b] = [0.1341, 0.1992]
rejected local minima of -48.2342 at:
[a,b] = [-1.1837, -0.8505]
rejected local minima of -48.2316 at:
[a,b] = [-1.2142, 0.6729]
rejected local minima of -48.2337 at:
[a,b] = [-1.3585, 1.3284]
rejected local minima of -48.2350 at:
[a,b] = [-1.6969, -0.5246]
rejected local minima of -48.2350 at:
[a,b] = [-1.6970, -0.5245]
rejected local minima of -48.2342 at:
[a,b] = [-1.1709, -0.8588]
rejected local minima of -48.2316 at:
[a,b] = [-0.3865, -0.0775]
rejected local minima of -48.2316 at:
[a,b] = [-0.6441, -0.0804]
rejected local minima of -48.2316 at:
[a,b] = [0.4548, -0.2062]
rejected local minima of -48.2349 at:
[a,b] = [1.2130, -1.3284]
rejected local minima of -48.2316 at:
[a,b] = [0.8580, -0.9379]
rejected local minima of -48.2342 at:
[a,b] = [-1.1709, -0.8589]
rejected local minima of -48.2316 at:
[a,b] = [0.5959, 0.3107]
rejected local minima of -48.2336 at:
[a,b] = [1.8901, 0.0285]
rejected local minima of -48.2316 at:
[a,b] = [0.7521, -0.5427]
rejected local minima of -48.2316 at:
[a,b] = [0.9025, -0.6657]
rejected local minima of -48.2349 at:
[a,b] = [1.2124, -1.3285]
rejected local minima of -48.2316 at:
[a,b] = [-0.3927, 0.0123]
rejected local minima of -48.2316 at:
[a,b] = [0.8849, -0.1532]
rejected local minima of -48.2349 at:
[a,b] = [1.2125, -1.3285]
rejected local minima of -48.2349 at:
[a,b] = [1.2126, -1.3286]
rejected local minima of -48.2349 at:
[a,b] = [1.2125, -1.3285]
rejected local minima of -48.2336 at:
[a,b] = [1.8900, 0.0289]
rejected local minima of -48.2349 at:
[a,b] = [1.2124, -1.3285]
rejected local minima of -48.2316 at:
[a,b] = [0.2549, 0.3297]
rejected local minima of -48.2316 at:
[a,b] = [-0.7468, 1.1278]
rejected local minima of -48.2342 at:
[a,b] = [-1.1702, -0.8593]
rejected local minima of -48.2345 at:
[a,b] = [-0.5158, 1.5363]
rejected local minima of -48.2316 at:
[a,b] = [0.5446, -0.1562]
rejected local minima of -48.2349 at:
[a,b] = [1.2124, -1.3285]
rejected local minima of -48.2316 at:
[a,b] = [0.0053, -0.2696]
rejected local minima of -48.2345 at:
[a,b] = [-0.5158, 1.5365]
rejected local minima of -48.2316 at:
[a,b] = [-0.4491, -0.7235]
rejected local minima of -48.2316 at:
[a,b] = [0.1088, -0.8644]
rejected local minima of -48.2316 at:
[a,b] = [-1.2137, 0.2435]
rejected local minima of -48.2316 at:
[a,b] = [-1.0746, 0.6094]
rejected local minima of -48.2316 at:
[a,b] = [-0.5355, 0.3020]
rejected local minima of -48.2350 at:
[a,b] = [-1.6965, -0.5249]
rejected local minima of -48.2316 at:
[a,b] = [-0.0655, 1.1401]
rejected local minima of -48.2316 at:
[a,b] = [-0.9680, -0.4873]
rejected local minima of -48.2316 at:
[a,b] = [-0.7708, 0.4178]
rejected local minima of -48.2349 at:
[a,b] = [1.2125, -1.3285]
rejected local minima of -48.2338 at:
[a,b] = [-1.6697, 1.2172]
rejected local minima of -48.2316 at:
[a,b] = [-0.7557, 0.8889]
rejected local minima of -48.2316 at:
[a,b] = [-1.0143, 0.4193]
rejected local minima of -48.2316 at:
[a,b] = [-1.2314, 0.0383]
rejected local minima of -48.2316 at:
[a,b] = [0.1056, -0.3852]
rejected local minima of -48.2316 at:
[a,b] = [-0.0846, -0.3531]
rejected local minima of -48.2342 at:
[a,b] = [-1.1706, -0.8590]
rejected local minima of -48.2316 at:
[a,b] = [-0.2534, -0.1660]
rejected local minima of -48.2316 at:
[a,b] = [-1.2524, 1.0701]
rejected local minima of -48.2316 at:
[a,b] = [-0.9666, -0.1129]
rejected local minima of -48.2345 at:
[a,b] = [-0.5145, 1.5369]
rejected local minima of -48.2342 at:
[a,b] = [-1.1707, -0.8590]
rejected local minima of -48.2342 at:
[a,b] = [-1.1753, -0.8566]
agreeing local minima of -48.2375 at:
[a,b] = [-2.3798, 0.8457]
rejected local minima of -48.2350 at:
[a,b] = [-1.6968, -0.5247]
rejected local minima of -48.2316 at:
[a,b] = [-0.4988, 0.7889]
rejected local minima of -48.2340 at:
[a,b] = [-0.9201, 1.4874]
rejected local minima of -48.2342 at:
[a,b] = [-1.1715, -0.8590]
rejected local minima of -48.2316 at:
[a,b] = [0.3570, 1.0709]
rejected local minima of -48.2355 at:
[a,b] = [0.9217, 1.3120]
rejected local minima of -48.2342 at:
[a,b] = [-1.1882, -0.8478]
rejected local minima of -48.2316 at:
[a,b] = [-0.7003, -0.6297]
rejected local minima of -48.2338 at:
[a,b] = [-1.7265, 1.1919]
rejected local minima of -48.2350 at:
[a,b] = [-1.6966, -0.5248]
rejected local minima of -48.2342 at:
[a,b] = [-1.0334, -0.9307]
rejected local minima of -48.2316 at:
[a,b] = [-0.1791, 1.0591]
rejected local minima of -48.2338 at:
[a,b] = [-1.7729, 1.1712]
rejected local minima of -48.2316 at:
[a,b] = [-1.7254, 0.8457]
rejected local minima of -48.2316 at:
[a,b] = [-0.1673, 1.2240]
rejected local minima of -48.2316 at:
[a,b] = [0.9707, -0.2427]
rejected local minima of -48.2355 at:
[a,b] = [0.9221, 1.3115]
rejected local minima of -48.2349 at:
[a,b] = [1.2126, -1.3285]
rejected local minima of -48.2345 at:
[a,b] = [-0.5145, 1.5369]
rejected local minima of -48.2355 at:
[a,b] = [0.9217, 1.3120]
rejected local minima of -48.2336 at:
[a,b] = [1.8901, 0.0283]
rejected local minima of -48.2355 at:
[a,b] = [0.9217, 1.3120]
rejected local minima of -48.2355 at:
[a,b] = [0.9215, 1.3123]
rejected local minima of -48.2316 at:
[a,b] = [0.5357, 0.5460]
rejected local minima of -48.2316 at:
[a,b] = [-1.5014, 0.4744]
rejected local minima of -48.2316 at:
[a,b] = [-1.1132, 0.5412]
rejected local minima of -48.2345 at:
[a,b] = [-0.5148, 1.5368]
rejected local minima of -48.2316 at:
[a,b] = [1.1055, 0.5367]
rejected local minima of -48.2316 at:
[a,b] = [0.0638, -0.6248]
rejected local minima of -48.2350 at:
[a,b] = [-1.6971, -0.5245]
agreeing local minima of -48.2375 at:
[a,b] = [-2.3795, 0.8461]
rejected local minima of -48.2350 at:
[a,b] = [-1.6967, -0.5247]
rejected local minima of -48.2316 at:
[a,b] = [0.3053, 0.2316]
rejected local minima of -48.2316 at:
[a,b] = [0.5813, 0.1061]
rejected local minima of -48.2350 at:
[a,b] = [-1.6969, -0.5246]
rejected local minima of -48.2316 at:
[a,b] = [-0.7265, 0.5233]
agreeing local minima of -48.2375 at:
[a,b] = [-2.3797, 0.8457]
rejected local minima of -48.2350 at:
[a,b] = [-1.6976, -0.5240]
rejected local minima of -48.2337 at:
[a,b] = [-2.1556, 0.2563]
rejected local minima of -48.2316 at:
[a,b] = [-0.8157, -0.0103]
rejected local minima of -48.2316 at:
[a,b] = [0.9927, 0.2953]
rejected local minima of -48.2355 at:
[a,b] = [0.9218, 1.3119]
rejected local minima of -48.2316 at:
[a,b] = [0.8090, 0.7412]
rejected local minima of -48.2336 at:
[a,b] = [1.8900, 0.0286]
rejected local minima of -48.2345 at:
[a,b] = [-0.5145, 1.5368]
rejected local minima of -48.2345 at:
[a,b] = [-0.5143, 1.5368]
rejected local minima of -48.2316 at:
[a,b] = [0.3452, 0.2474]
rejected local minima of -48.2345 at:
[a,b] = [-0.5151, 1.5366]
rejected local minima of -48.2316 at:
[a,b] = [0.4696, 0.7941]
rejected local minima of -48.2316 at:
[a,b] = [-0.5770, 0.3921]
rejected local minima of -48.2345 at:
[a,b] = [-0.5166, 1.5365]
rejected local minima of -48.2345 at:
[a,b] = [-0.5150, 1.5369]
rejected local minima of -48.2355 at:
[a,b] = [0.9215, 1.3121]
rejected local minima of -48.2316 at:
[a,b] = [0.2530, -0.0016]
rejected local minima of -48.2316 at:
[a,b] = [0.7226, 0.6336]
rejected local minima of -48.2331 at:
[a,b] = [0.4072, -1.1836]
rejected local minima of -48.2316 at:
[a,b] = [-0.5067, 0.2536]
agreeing local minima of -48.2375 at:
[a,b] = [-2.3798, 0.8455]
 
Cutout 43
first local minima of -45.1598 at:
[a,b] = [-0.1276, 0.0954]
agreeing local minima of -45.1598 at:
[a,b] = [-0.1276, 0.0954]
agreeing local minima of -45.1598 at:
[a,b] = [-0.1276, 0.0954]
agreeing local minima of -45.1598 at:
[a,b] = [-0.1276, 0.0954]
agreeing local minima of -45.1598 at:
[a,b] = [-0.1276, 0.0954]
 
Cutout 44
first local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
 
Cutout 45
first local minima of -47.1514 at:
[a,b] = [0.0501, -0.2457]
agreeing local minima of -47.1514 at:
[a,b] = [0.0501, -0.2457]
agreeing local minima of -47.1514 at:
[a,b] = [0.0501, -0.2457]
agreeing local minima of -47.1514 at:
[a,b] = [0.0501, -0.2457]
agreeing local minima of -47.1514 at:
[a,b] = [0.0501, -0.2457]
 
Cutout 46
first local minima of -47.9842 at:
[a,b] = [0.2494, 0.1736]
agreeing local minima of -47.9842 at:
[a,b] = [0.2494, 0.1736]
agreeing local minima of -47.9842 at:
[a,b] = [0.2494, 0.1736]
agreeing local minima of -47.9842 at:
[a,b] = [0.2494, 0.1736]
agreeing local minima of -47.9842 at:
[a,b] = [0.2495, 0.1736]
 
Cutout 47
first local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1773]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
 
Cutout 48
first local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8754, -0.2538]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2539]
agreeing local minima of -47.9768 at:
[a,b] = [0.8755, -0.2538]
 
Cutout 49
first local minima of -48.0173 at:
[a,b] = [-0.0378, 0.6653]
rejected local minima of -48.0164 at:
[a,b] = [0.2312, -0.0550]
rejected local minima of -48.0164 at:
[a,b] = [0.2325, -0.0581]
rejected local minima of -48.0164 at:
[a,b] = [0.1802, 0.0876]
agreeing local minima of -48.0173 at:
[a,b] = [-0.0378, 0.6653]
rejected local minima of -48.0165 at:
[a,b] = [0.4061, -0.6128]
rejected local minima of -48.0164 at:
[a,b] = [0.2289, -0.0517]
rejected local minima of -48.0164 at:
[a,b] = [0.2126, 0.0029]
rejected local minima of -48.0164 at:
[a,b] = [0.2326, -0.0587]
rejected local minima of -48.0164 at:
[a,b] = [0.2256, -0.0394]
rejected local minima of -48.0164 at:
[a,b] = [0.2301, -0.0520]
rejected local minima of -48.0164 at:
[a,b] = [0.1433, 0.1696]
rejected local minima of -48.0165 at:
[a,b] = [0.4068, -0.6138]
rejected local minima of -48.0165 at:
[a,b] = [0.4061, -0.6125]
agreeing local minima of -48.0173 at:
[a,b] = [-0.0378, 0.6653]
rejected local minima of -48.0164 at:
[a,b] = [0.2316, -0.0559]
agreeing local minima of -48.0173 at:
[a,b] = [-0.0378, 0.6652]
rejected local minima of -48.0164 at:
[a,b] = [0.2275, -0.0455]
rejected local minima of -48.0164 at:
[a,b] = [0.2310, -0.0519]
rejected local minima of -48.0164 at:
[a,b] = [0.2314, -0.0554]
rejected local minima of -48.0165 at:
[a,b] = [0.4155, -0.6407]
rejected local minima of -48.0165 at:
[a,b] = [0.4062, -0.6125]
rejected local minima of -48.0164 at:
[a,b] = [0.2341, -0.0629]
rejected local minima of -48.0164 at:
[a,b] = [0.2180, -0.0147]
rejected local minima of -48.0164 at:
[a,b] = [0.2290, -0.0493]
rejected local minima of -48.0164 at:
[a,b] = [0.1427, 0.1732]
rejected local minima of -48.0164 at:
[a,b] = [0.1434, 0.1693]
rejected local minima of -48.0164 at:
[a,b] = [0.2129, 0.0048]
rejected local minima of -48.0164 at:
[a,b] = [0.2283, -0.0472]
rejected local minima of -48.0164 at:
[a,b] = [0.1344, 0.1996]
agreeing local minima of -48.0173 at:
[a,b] = [-0.0378, 0.6653]
 
Cutout 50
first local minima of -31.6379 at:
[a,b] = [-0.1938, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1938, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1938, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
 
Cutout 51
first local minima of -48.0070 at:
[a,b] = [0.1436, -0.2564]
agreeing local minima of -48.0070 at:
[a,b] = [0.1434, -0.2565]
agreeing local minima of -48.0070 at:
[a,b] = [0.1434, -0.2565]
agreeing local minima of -48.0070 at:
[a,b] = [0.1434, -0.2565]
agreeing local minima of -48.0070 at:
[a,b] = [0.1436, -0.2565]
 
Cutout 52
first local minima of -48.3487 at:
[a,b] = [1.1380, 0.7996]
rejected local minima of -48.3485 at:
[a,b] = [-0.1875, -2.1001]
rejected local minima of -48.3469 at:
[a,b] = [0.3124, -1.0537]
rejected local minima of -48.3469 at:
[a,b] = [1.3014, -2.4649]
rejected local minima of -48.3469 at:
[a,b] = [2.1086, -1.2944]
rejected local minima of -48.3485 at:
[a,b] = [2.4854, -1.1977]
rejected local minima of -48.3469 at:
[a,b] = [1.4495, -0.4970]
rejected local minima of -48.3469 at:
[a,b] = [1.8431, -0.3415]
rejected local minima of -48.3469 at:
[a,b] = [1.9857, -1.6422]
rejected local minima of -48.3469 at:
[a,b] = [0.9599, -0.2269]
rejected local minima of -48.3469 at:
[a,b] = [0.5628, -0.1320]
rejected local minima of -48.3469 at:
[a,b] = [-0.0372, -0.6879]
rejected local minima of -48.3469 at:
[a,b] = [-0.8499, 0.1184]
rejected local minima of -48.3469 at:
[a,b] = [-1.8404, 0.8509]
new local minima of -48.3519 at:
[a,b] = [-2.5219, 1.2429]
rejected local minima of -48.3506 at:
[a,b] = [-1.9840, 1.6982]
rejected local minima of -48.3485 at:
[a,b] = [-1.6473, -0.5246]
rejected local minima of -48.3469 at:
[a,b] = [-0.6492, 0.5525]
rejected local minima of -48.3506 at:
[a,b] = [-1.9841, 1.6981]
rejected local minima of -48.3506 at:
[a,b] = [-1.9842, 1.6981]
rejected local minima of -48.3469 at:
[a,b] = [-0.7438, 0.7465]
rejected local minima of -48.3469 at:
[a,b] = [0.4168, 0.2013]
rejected local minima of -48.3469 at:
[a,b] = [-0.6149, -1.2687]
rejected local minima of -48.3469 at:
[a,b] = [0.3562, -1.5584]
rejected local minima of -48.3469 at:
[a,b] = [0.7121, -2.4624]
rejected local minima of -48.3506 at:
[a,b] = [1.3961, -3.3531]
rejected local minima of -48.3506 at:
[a,b] = [1.3960, -3.3531]
rejected local minima of -48.3498 at:
[a,b] = [2.4535, -3.2464]
rejected local minima of -48.3469 at:
[a,b] = [2.4074, -2.1300]
rejected local minima of -48.3469 at:
[a,b] = [1.4964, -2.3071]
new local minima of -48.3521 at:
[a,b] = [2.8611, -3.0384]
agreeing local minima of -48.3521 at:
[a,b] = [2.8613, -3.0382]
rejected local minima of -48.3469 at:
[a,b] = [2.2389, -2.3190]
agreeing local minima of -48.3521 at:
[a,b] = [2.8611, -3.0384]
agreeing local minima of -48.3521 at:
[a,b] = [2.8613, -3.0382]
rejected local minima of -48.3498 at:
[a,b] = [2.4532, -3.2465]
rejected local minima of -48.3469 at:
[a,b] = [2.2893, -2.6238]
rejected local minima of -48.3469 at:
[a,b] = [1.7740, -1.8682]
rejected local minima of -48.3485 at:
[a,b] = [2.4760, -1.1579]
rejected local minima of -48.3469 at:
[a,b] = [1.6205, -2.5898]
rejected local minima of -48.3469 at:
[a,b] = [0.7653, -2.0957]
rejected local minima of -48.3469 at:
[a,b] = [1.8735, -1.2715]
rejected local minima of -48.3469 at:
[a,b] = [1.8543, 0.0075]
rejected local minima of -48.3469 at:
[a,b] = [1.5846, -0.2910]
rejected local minima of -48.3512 at:
[a,b] = [2.1095, 0.3230]
rejected local minima of -48.3512 at:
[a,b] = [2.1095, 0.3230]
rejected local minima of -48.3485 at:
[a,b] = [2.3499, -0.6273]
rejected local minima of -48.3469 at:
[a,b] = [1.9838, -0.6948]
rejected local minima of -48.3469 at:
[a,b] = [0.5747, -0.8745]
rejected local minima of -48.3469 at:
[a,b] = [-0.4900, -1.0819]
rejected local minima of -48.3469 at:
[a,b] = [0.7567, -0.5890]
rejected local minima of -48.3469 at:
[a,b] = [1.2488, 0.0789]
rejected local minima of -48.3485 at:
[a,b] = [2.3923, -0.8061]
rejected local minima of -48.3469 at:
[a,b] = [0.9380, 0.1861]
rejected local minima of -48.3512 at:
[a,b] = [2.1095, 0.3229]
rejected local minima of -48.3469 at:
[a,b] = [1.9749, -0.3561]
rejected local minima of -48.3485 at:
[a,b] = [2.6012, -1.6834]
agreeing local minima of -48.3521 at:
[a,b] = [2.8612, -3.0383]
 
Cutout 53
first local minima of -48.1316 at:
[a,b] = [1.0645, 0.9871]
agreeing local minima of -48.1316 at:
[a,b] = [1.0645, 0.9873]
rejected local minima of -48.1282 at:
[a,b] = [0.4778, 0.4806]
new local minima of -48.1325 at:
[a,b] = [-0.2870, 1.4086]
rejected local minima of -48.1320 at:
[a,b] = [-0.3232, -1.4107]
rejected local minima of -48.1320 at:
[a,b] = [-0.3227, -1.4104]
rejected local minima of -48.1320 at:
[a,b] = [-0.3235, -1.4111]
rejected local minima of -48.1282 at:
[a,b] = [0.0126, -0.1057]
rejected local minima of -48.1316 at:
[a,b] = [1.0646, 0.9871]
rejected local minima of -48.1282 at:
[a,b] = [-0.1373, -0.0834]
rejected local minima of -48.1310 at:
[a,b] = [-1.1723, -0.7790]
rejected local minima of -48.1320 at:
[a,b] = [-0.3229, -1.4106]
rejected local minima of -48.1320 at:
[a,b] = [-0.3230, -1.4106]
rejected local minima of -48.1282 at:
[a,b] = [-0.2790, 0.3263]
rejected local minima of -48.1282 at:
[a,b] = [-0.1782, 0.7672]
rejected local minima of -48.1310 at:
[a,b] = [-1.1723, -0.7789]
rejected local minima of -48.1320 at:
[a,b] = [-0.3229, -1.4107]
rejected local minima of -48.1310 at:
[a,b] = [-1.1722, -0.7790]
rejected local minima of -48.1282 at:
[a,b] = [-0.5051, -0.6389]
rejected local minima of -48.1282 at:
[a,b] = [0.0221, 0.0202]
agreeing local minima of -48.1325 at:
[a,b] = [-0.2870, 1.4086]
rejected local minima of -48.1282 at:
[a,b] = [0.2042, 0.3349]
rejected local minima of -48.1320 at:
[a,b] = [-0.3234, -1.4110]
agreeing local minima of -48.1325 at:
[a,b] = [-0.2923, 1.4050]
agreeing local minima of -48.1325 at:
[a,b] = [-0.2870, 1.4086]
agreeing local minima of -48.1325 at:
[a,b] = [-0.2872, 1.4086]
 
Cutout 54
first local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
 
Cutout 55
first local minima of -47.9982 at:
[a,b] = [0.3100, -0.4025]
agreeing local minima of -47.9982 at:
[a,b] = [0.3099, -0.4023]
agreeing local minima of -47.9982 at:
[a,b] = [0.3099, -0.4024]
agreeing local minima of -47.9982 at:
[a,b] = [0.3099, -0.4024]
agreeing local minima of -47.9982 at:
[a,b] = [0.3099, -0.4023]
 
Cutout 56
first local minima of -47.9842 at:
[a,b] = [0.2495, 0.1737]
agreeing local minima of -47.9842 at:
[a,b] = [0.2494, 0.1736]
agreeing local minima of -47.9842 at:
[a,b] = [0.2494, 0.1737]
agreeing local minima of -47.9842 at:
[a,b] = [0.2494, 0.1736]
agreeing local minima of -47.9842 at:
[a,b] = [0.2494, 0.1736]
 
Cutout 57
first local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
agreeing local minima of -26.1737 at:
[a,b] = [-0.2089, -0.1772]
 
Cutout 58
first local minima of -43.9987 at:
[a,b] = [-0.1074, 0.1883]
agreeing local minima of -43.9987 at:
[a,b] = [-0.1074, 0.1883]
agreeing local minima of -43.9987 at:
[a,b] = [-0.1074, 0.1883]
agreeing local minima of -43.9987 at:
[a,b] = [-0.1074, 0.1883]
agreeing local minima of -43.9987 at:
[a,b] = [-0.1074, 0.1883]
 
Cutout 59
first local minima of -47.5962 at:
[a,b] = [-0.0405, -0.0775]
agreeing local minima of -47.5962 at:
[a,b] = [-0.0405, -0.0775]
agreeing local minima of -47.5962 at:
[a,b] = [-0.0405, -0.0775]
agreeing local minima of -47.5962 at:
[a,b] = [-0.0405, -0.0775]
agreeing local minima of -47.5962 at:
[a,b] = [-0.0405, -0.0775]
 
Cutout 60
first local minima of -47.5098 at:
[a,b] = [-0.0471, -0.4784]
agreeing local minima of -47.5098 at:
[a,b] = [-0.0471, -0.4784]
agreeing local minima of -47.5098 at:
[a,b] = [-0.0471, -0.4784]
agreeing local minima of -47.5098 at:
[a,b] = [-0.0471, -0.4784]
agreeing local minima of -47.5098 at:
[a,b] = [-0.0471, -0.4784]
 
Cutout 61
first local minima of -47.3389 at:
[a,b] = [0.0131, 0.3438]
agreeing local minima of -47.3389 at:
[a,b] = [0.0131, 0.3438]
agreeing local minima of -47.3389 at:
[a,b] = [0.0131, 0.3438]
agreeing local minima of -47.3389 at:
[a,b] = [0.0131, 0.3438]
agreeing local minima of -47.3389 at:
[a,b] = [0.0131, 0.3438]
 
Cutout 62
first local minima of -48.0439 at:
[a,b] = [-0.8354, 0.4473]
rejected local minima of -48.0429 at:
[a,b] = [0.3684, -0.5155]
rejected local minima of -48.0435 at:
[a,b] = [0.1273, 0.9146]
rejected local minima of -48.0435 at:
[a,b] = [0.1271, 0.9146]
rejected local minima of -48.0381 at:
[a,b] = [-0.2326, 0.4357]
rejected local minima of -48.0429 at:
[a,b] = [0.3685, -0.5152]
rejected local minima of -48.0429 at:
[a,b] = [0.3685, -0.5156]
agreeing local minima of -48.0439 at:
[a,b] = [-0.8354, 0.4473]
agreeing local minima of -48.0439 at:
[a,b] = [-0.8354, 0.4473]
rejected local minima of -48.0435 at:
[a,b] = [0.1274, 0.9144]
agreeing local minima of -48.0439 at:
[a,b] = [-0.8356, 0.4471]
rejected local minima of -48.0416 at:
[a,b] = [-0.3519, 0.8466]
rejected local minima of -48.0381 at:
[a,b] = [-0.1949, 0.3355]
agreeing local minima of -48.0439 at:
[a,b] = [-0.8354, 0.4473]
 
Cutout 63
first local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1938, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
agreeing local minima of -31.6379 at:
[a,b] = [-0.1937, -0.3417]
 
Cutout 64
first local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
agreeing local minima of -47.6690 at:
[a,b] = [-0.6674, 0.5806]
 
Cutout 65
first local minima of -47.9982 at:
[a,b] = [0.3099, -0.4023]
agreeing local minima of -47.9982 at:
[a,b] = [0.3098, -0.4023]
agreeing local minima of -47.9982 at:
[a,b] = [0.3099, -0.4024]
agreeing local minima of -47.9982 at:
[a,b] = [0.3099, -0.4023]
agreeing local minima of -47.9982 at:
[a,b] = [0.3099, -0.4023]
 
Cutout 66
first local minima of -45.0463 at:
[a,b] = [-0.2233, 0.2181]
agreeing local minima of -45.0463 at:
[a,b] = [-0.2233, 0.2181]
agreeing local minima of -45.0463 at:
[a,b] = [-0.2233, 0.2181]
agreeing local minima of -45.0463 at:
[a,b] = [-0.2233, 0.2181]
agreeing local minima of -45.0463 at:
[a,b] = [-0.2233, 0.2181]
 
Cutout 67
first local minima of -47.9659 at:
[a,b] = [-0.7937, 0.1775]
agreeing local minima of -47.9659 at:
[a,b] = [-0.7938, 0.1777]
agreeing local minima of -47.9659 at:
[a,b] = [-0.7938, 0.1776]
agreeing local minima of -47.9659 at:
[a,b] = [-0.7937, 0.1775]
agreeing local minima of -47.9659 at:
[a,b] = [-0.7938, 0.1776]
 
Cutout 68
first local minima of -47.9842 at:
[a,b] = [0.3521, 0.2509]
rejected local minima of -47.9840 at:
[a,b] = [-0.1458, 0.2482]
rejected local minima of -47.9840 at:
[a,b] = [-0.1457, 0.2482]
rejected local minima of -47.9840 at:
[a,b] = [-0.1457, 0.2481]
rejected local minima of -47.9840 at:
[a,b] = [-0.1457, 0.2482]
rejected local minima of -47.9840 at:
[a,b] = [-0.1457, 0.2482]
rejected local minima of -47.9840 at:
[a,b] = [-0.1458, 0.2481]
rejected local minima of -47.9840 at:
[a,b] = [-0.1457, 0.2481]
rejected local minima of -47.9840 at:
[a,b] = [-0.1457, 0.2482]
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-16-87a8298c2417> in <module>()
      4 
      5     print("Cutout %.f" % (i))
----> 6     output = optimise_middle(cutout[i],5)
      7     middle_points[i,:] = output.x
      8     print(" ")

<ipython-input-11-c995d5c65849> in optimise_middle(cutout, userNSuccess)
     92     output = basinhopping(weightedAreaOptimise,x0,
     93                           niter=1000,minimizer_kwargs=minimizer_kwargs,
---> 94                           take_step=mytakestep, callback=print_fun)
     95 
     96     return output

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\_basinhopping.py in basinhopping(func, x0, niter, T, stepsize, minimizer_kwargs, take_step, accept_test, callback, interval, disp, niter_success)
    610                " successfully"]
    611     for i in range(niter):
--> 612         new_global_min = bh.one_cycle()
    613 
    614         if isinstance(callback, collections.Callable):

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\_basinhopping.py in one_cycle(self)
    154         new_global_min = False
    155 
--> 156         xtrial, energy_trial, accept = self._monte_carlo_step()
    157 
    158         if accept:

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\_basinhopping.py in _monte_carlo_step(self)
    102 
    103         # do a local minimization
--> 104         minres = self.minimizer(x_after_step)
    105         x_after_quench = minres.x
    106         energy_after_quench = minres.fun

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\_basinhopping.py in __call__(self, x0)
    277             return self.minimizer(x0, **self.kwargs)
    278         else:
--> 279             return self.minimizer(self.func, x0, **self.kwargs)
    280 
    281 

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\_minimize.py in minimize(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)
    425     elif meth == 'l-bfgs-b':
    426         return _minimize_lbfgsb(fun, x0, args, jac, bounds,
--> 427                                 callback=callback, **options)
    428     elif meth == 'tnc':
    429         return _minimize_tnc(fun, x0, args, jac, bounds, callback=callback,

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\lbfgsb.py in _minimize_lbfgsb(fun, x0, args, jac, bounds, disp, maxcor, ftol, gtol, eps, maxfun, maxiter, iprint, callback, **unknown_options)
    312                 # minimization routine wants f and g at the current x
    313                 # Overwrite f and g:
--> 314                 f, g = func_and_grad(x)
    315         elif task_str.startswith(b'NEW_X'):
    316             # new iteration

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\lbfgsb.py in func_and_grad(x)
    259         def func_and_grad(x):
    260             f = fun(x, *args)
--> 261             g = approx_fprime(x, fun, epsilon, *args)
    262             return f, g
    263     else:

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\optimize.py in approx_fprime(xk, f, epsilon, *args)
    602 
    603     """
--> 604     f0 = f(*((xk,) + args))
    605     grad = numpy.zeros((len(xk),), float)
    606     ei = numpy.zeros((len(xk),), float)

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\optimize\optimize.py in function_wrapper(*wrapper_args)
    279     def function_wrapper(*wrapper_args):
    280         ncalls[0] += 1
--> 281         return function(*(wrapper_args + args))
    282 
    283     return ncalls, function_wrapper

<ipython-input-10-07537e3f982e> in weightedAreaOptimise(x, inputShape)
      9 
     10     for i in range(numZones):
---> 11         weightedArea += movedShape.intersection(zone[i]).area * zoneWeight[i]
     12 
     13     return -weightedArea

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\shapely\geometry\base.py in intersection(self, other)
    510     def intersection(self, other):
    511         """Returns the intersection of the geometries"""
--> 512         return geom_factory(self.impl['intersection'](self, other))
    513 
    514     def symmetric_difference(self, other):

C:\Users\sbiggs\AppData\Local\Continuum\Anaconda3\lib\site-packages\shapely\topology.py in __call__(self, this, other, *args)
     41         self._validate(this)
     42         self._validate(other, stop_prepared=True)
---> 43         product = self.fn(this._geom, other._geom, *args)
     44         if product is None:
     45             if not this.is_valid:

KeyboardInterrupt: 

In [13]:
# a = output.x[0]
# b = output.x[1]
# output.x


Out[13]:
array([-0.04051875, -0.07753433])

In [14]:
i = 70

scaled_fig_start(12,12)

x_vals = cutout[i].exterior.xy[0]
y_vals = cutout[i].exterior.xy[1]

x_vals = array(x_vals,'float')
y_vals = array(y_vals,'float')

scatter(a,b,c='red',s=100, zorder=10)

for i in range(len(x_vals)):
    
    plot([a,x_vals[i]],[b,y_vals[i]],'g')
    
plot(x_vals,y_vals,linewidth=3)

scaled_fig_end(12,12)



In [ ]:
predicted_factor = zeros(num_cutouts)

for i in range(num_cutouts):
    
    x_vals = cutout[i].exterior.xy[0]
    y_vals = cutout[i].exterior.xy[1]

    x_vals = array(x_vals,'float')
    y_vals = array(y_vals,'float')
    
    angles = arctan2(y_vals, x_vals) * 180 / pi
    
    sector_angles = mod(-diff(angles),360)
    wrong_direction = sector_angles > 180

    wrong_direction = append(wrong_direction,False)
    
    x_vals_adj = x_vals[~wrong_direction]
    y_vals_adj = y_vals[~wrong_direction]
    
    radii = hypot(x_vals_adj,y_vals_adj)
    sector_radii = radii[0:-1] + diff(radii)/2
    
    angles = arctan2(y_vals_adj, x_vals_adj) * 180 / pi
    sector_angles = mod(-diff(angles),360)
    
    predicted_factor = 1/sum(1/circleFit(sector_radii*2) * sector_angles / 360)

In [15]:
angles = arctan2(y_vals, x_vals) * 180 / pi

In [16]:
plot(angles)


Out[16]:
[<matplotlib.lines.Line2D at 0x96338d0>]

In [17]:
plot(mod(-diff(angles),360))


Out[17]:
[<matplotlib.lines.Line2D at 0xa6448d0>]

In [18]:
sector_angles = mod(-diff(angles),360)
wrong_direction = sector_angles > 180

wrong_direction = append(wrong_direction,False)

In [19]:
x_vals_adj = x_vals[~wrong_direction]
y_vals_adj = y_vals[~wrong_direction]

In [20]:
radii = hypot(x_vals_adj,y_vals_adj)
sector_radii = radii[0:-1] + diff(radii)/2
# sector_radii


Out[20]:
array([ 4.02146702,  4.06714894,  4.06405164,  4.04996312,  3.96898534,
        4.00191078,  4.12157339,  4.14024015,  4.1535787 ,  4.10137173,
        4.06786143,  4.03625833,  4.01650501,  4.00020001,  3.9821298 ,
        3.88862229,  3.80356212,  3.74107385,  3.68736357,  3.65912644,
        3.63951545,  3.6772952 ,  3.63951545,  3.65912644,  3.68736357,
        3.86763999,  4.0641522 ,  4.08064152,  4.09417244,  4.11113387,
        4.1409529 ,  4.17268408,  4.21987502,  4.20137389,  4.18059764,
        4.05513309,  4.01173201,  4.08560436,  4.09714609,  4.16188493,
        4.16974485,  4.16318185,  4.11988354,  4.10849869,  4.14696368,
        4.22192025,  4.30318986,  4.32798494,  4.3563154 ,  4.31872351,
        4.29039305,  4.23303448,  4.18059764,  4.16193088,  4.14696368,
        4.05984004,  3.98083118,  3.9238066 ,  3.8751233 ,  3.85091239,
        3.83484297,  3.84076044,  3.762366  ,  3.74588276,  3.73711734,
        3.71111209,  3.68867256,  3.68531223,  3.68736357,  3.67724593,
        3.67108501,  3.69059632,  3.71579323,  3.72180715,  3.73192479,
        3.77349357,  3.82065487,  3.84207294,  3.86424869,  3.8898966 ,
        3.92523879,  3.96246904,  4.02514838,  4.02264623,  4.00840295,
        3.90098366,  3.88976599,  3.985257  ,  3.98713097])

In [21]:
angles = arctan2(y_vals_adj, x_vals_adj) * 180 / pi
sector_angles = mod(-diff(angles),360)
plot(sector_angles)


Out[21]:
[<matplotlib.lines.Line2D at 0x9571c50>]

In [22]:
sum(circleFit(sector_radii*2) * sector_angles / 360)


Out[22]:
0.99359418683796763

In [23]:
1/sum(1/circleFit(sector_radii*2) * sector_angles / 360)


Out[23]:
0.99359079993849975

In [24]:
plot(cumsum(sector_angles),circleFit(sector_radii*2))


Out[24]:
[<matplotlib.lines.Line2D at 0x95d3c18>]