""" Author: A.Alexeevski Creats function as a sum of gausses. Gauss = lambda*exp(-(beta^2)*(X-gamma)^2) here x^2 = x*x """ from fourier import * import optparse import sys if len(sys.argv) == 1: print( "Creats function as a sum of gausses.\nGauss = lambda*exp(-beta*(X-gamma)^2)") print( "Use option -h for parameters") exit() #################################################################################################### parser = optparse.OptionParser() parser.add_option("-s", "--segment", help="Segment (default 0,30,1000): from,to,n_points", default="0,30,1001") parser.add_option("-g", "--gausses", help="Gausses: \"-g lambda,beta,gamma+lambda1,beta1,gamma1+...\" ") parser.add_option("-o", "--outfile", help="Outfile (default: func.txt) for function", default="func.txt") opt, args = parser.parse_args() try: _from = float(opt.segment.split(",")[0]) to = float(opt.segment.split(",")[1]) N = int(opt.segment.split(",")[2]) segment = (_from,to,N) except: raise Exception("Wrong format of -s value") exit() gausses = [] try: for z in opt.gausses.split("+"): gauss=z.split(",") gausses.append( (float(gauss[0]),float(gauss[1]),float(gauss[2]) ) ) except: raise Exception("Wrong format of -g value") exit() ff = Fourier() X,Y = ff.compile_func(gausses,segment) f = open(opt.outfile, 'w') ff.write_func(X,Y, f) f.close() print("File %s created" % opt.outfile) ff.plot_func(X,Y)