def chebyshev(trial, target, M=61): from mystic.math import polyeval result=0.0 x=-1.0 dx = 2.0 / (M-1) for i in range(M): px = polyeval(trial, x) if px<-1 or px>1: result += (1 - px) * (1 - px) x += dx px = polyeval(trial, 1.2) - polyeval(target, 1.2) if px<0: result += px*px px = polyeval(trial, -1.2) - polyeval(target, -1.2) if px<0: result += px*px return result
def chebyshevcost(trial,M=61): """The costfunction for order-n Chebyshev fitting. M evaluation points between [-1, 1], and two end points""" result=0.0 x=-1.0 dx = 2.0 / (M-1) for i in range(M): px = polyeval(trial, x) if px<-1 or px>1: result += (1 - px) * (1 - px) x += dx px = polyeval(trial, 1.2) - polyeval(target, 1.2) if px<0: result += px*px px = polyeval(trial, -1.2) - polyeval(target, -1.2) if px<0: result += px*px return result
def ChebyshevCost(trial,M=61): """The costfunction for order-n Chebyshev fitting. M evaluation points between [-1, 1], and two end points""" from mystic.models.poly import chebyshev8coeffs as target from mystic.math import polyeval result=0.0 x=-1.0 dx = 2.0 / (M-1) for i in range(M): px = polyeval(trial, x) if px<-1 or px>1: result += (1 - px) * (1 - px) x += dx px = polyeval(trial, 1.2) - polyeval(target, 1.2) if px<0: result += px*px px = polyeval(trial, -1.2) - polyeval(target, -1.2) if px<0: result += px*px return result
def ChebyshevCost(trial, M=61): """The costfunction for order-n Chebyshev fitting. M evaluation points between [-1, 1], and two end points""" from mystic.models.poly import chebyshev8coeffs as target from mystic.math import polyeval result = 0.0 x = -1.0 dx = 2.0 / (M - 1) for i in range(M): px = polyeval(trial, x) if px < -1 or px > 1: result += (1 - px) * (1 - px) x += dx px = polyeval(trial, 1.2) - polyeval(target, 1.2) if px < 0: result += px * px px = polyeval(trial, -1.2) - polyeval(target, -1.2) if px < 0: result += px * px return result
def objective(coeffs, x, y): return polyeval(coeffs, x) - y
def evaluate(self, coeffs, x): """takes list of coefficients & evaluation points, returns f(x) thus, [a3, a2, a1, a0] yields a3 x^3 + a2 x^2 + a1 x^1 + a0""" return polyeval(coeffs, x)
def evaluate(self,coeffs,x): """takes list of coefficients & evaluation points, returns f(x) thus, [a3, a2, a1, a0] yields a3 x^3 + a2 x^2 + a1 x^1 + a0""" return polyeval(coeffs,x)