1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#!/usr/bin/env python
#
# Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
# Copyright (c) 2019-2024 The Uncertainty Quantification Foundation.
# License: 3-clause BSD. The full license text is available at:
# - https://github.com/uqfoundation/mystic/blob/master/LICENSE
"""
finds npts that are rtol dist away from legacy data
"""
#XXX: could make similar that uses partitioning (based on monitor.y) ?
#XXX: could make similar that first samples, then uses hole-filling ?
#data=[[2,-6],[5,-7],[1,0],[1,3],[5,9],[2,2],[-10,-10],[-10,10],[10,-10]]
#data=[[0,0],[-10,-10],[-10,0],[10,0],[0,-10],[0,10],[10,-10],[-10,10],[10,10]]
data=[[0,0]]
#data = []
ndim = len(data[0]) if data else 2
lb,ub = [-10]*ndim, [10]*ndim
npts = 12
rtol = None # 4.5
#from mystic.math import Distribution
#from scipy.stats import norm
dist = None # Distribution(norm,0,2)
if __name__ == '__main__':
from mystic.math import fillpts
pts = fillpts(lb, ub, npts, data, rtol, dist)
import numpy as np
print(np.array(pts).reshape(-1,ndim))
import matplotlib.pyplot as plt
_x,_y = np.array(pts).reshape(-1,ndim).T
x,y = np.array(data).reshape(-1,ndim).T
plt.scatter(x=x,y=y)
plt.scatter(x=_x,y=_y)
plt.show()
|