Esempio n. 1
0
def main():
    # SIMULATION PARAMETERS ---------------------------------------------------
    T = float(sys.argv[1])
    rMin = 0.01
    rMax = 20.
    Nr = 1000
    # SET OBJECTIVE FUNCTION --------------------------------------------------
    r = np.linspace(rMin, rMax, Nr, retstep=False, endpoint=False)
    f, F = FBP.sombrero()

    for N in range(2, 40, 1):

        # CREE BONES dFBT FOR CONTINUOUS FUNCTION -----------------------------
        rhoCB, F0CB = dFBT.CreeBonesDiscreteFunc(r[r < T], f(r[r < T]))

        # FISK JOHNSON dFBT FOR CONTINUOUS FUNCTION ---------------------------
        rhoFJC, F0FJC, T = dFBT.FiskJohnsonContinuousFuncFWD(r, f, T, N)

        # FISK JOHNSON EXTRAPOLATION TO DESIRED SAMPLE POINTS -----------------
        F0FJCEx = dFBT.FiskJohnsonDiscreteFuncExtrapolate(rhoCB, F0FJC, T)

        print T, N, eRMS(F(rhoCB), F0CB), eRMS(F(rhoCB), F0FJCEx),

        # FISK JOHNSON REVERSE dFBT FOR DISCRETE FUNCTION ---------------------
        fFJB = dFBT.FiskJohnsonDiscreteFuncBCKWD(r, F0FJC, T)
        print eRMS(f(r[r < T]), fFJB[r < T])
Esempio n. 2
0
 def test_dFBT_fourierPair(self):
     """Perform unit test on Fourier Bessel pair"""
     # FISK JOHNSON FWD TRAFO - SEE EQ. (12), REF. [1]
     rhoFJC,F0FJC,T = dFBT.FiskJohnsonContinuousFuncFWD(self.r,self.f,self.T,self.N)
     # EXTRAPOLATION TO DESIRED SAMPLE POINTS - SEE EQ. (9), REF. [1] 
     F0FJCEx = dFBT.FiskJohnsonDiscreteFuncExtrapolate(self.r,F0FJC,self.T)
     print eRMS(F0FJCEx,self.Fx(self.r))
     self.assertLessEqual(eRMS(F0FJCEx,self.Fx(self.r)), 1e-6)
def main():

        # SIMULATION PARAMETERS -----------------------------------------------
        T = float(sys.argv[1]) #18. 
        N = int(sys.argv[2]) #50
        
        rMin = 0.01
        rMax = 20.
        Nr = 1000

        r = np.linspace(rMin,rMax,Nr,retstep=False,endpoint=False)

        # OBJECTIVE FUNCTION --------------------------------------------------
        f, F = FBP.sombrero()
        for i in range(r.size):
                print "O", r[i],float(F(r[i]))

        # QUADRATURE USING TRAPEZOIDAL RULE ----------------------------------- 
        rhoCB,F0CB  = dFBT.CreeBonesDiscreteFunc(r,f(r))
        for i in range(rhoCB.size):
                print "CB ", rhoCB[i], F0CB[i] 

        # FISK JOHNSON FWD TRAFO FOR CONTINUOUS FUNCTION ----------------------
        rhoFJC,F0FJC,T = dFBT.FiskJohnsonContinuousFuncFWD(r,f,T,N)
        for i in range(rhoFJC.size):
                print "FJC ", rhoFJC[i], F0FJC[i] 
        
        # FISK JOHNSON FWD TRAFO FOR DISCRETE FUNCTION ------------------------
        rhoFJD,F0FJD,T = dFBT.FiskJohnsonDiscreteFuncFWD(r,f(r),T,N)
        for i in range(rhoFJD.size):
                print "FJD ", rhoFJD[i], F0FJD[i] 

        # FISK JOHNSON EXTRAPOLATION TO DESIRED SAMPLE POINTS -----------------
        F0FJCEx = dFBT.FiskJohnsonDiscreteFuncExtrapolate(rhoCB,F0FJD,T)
        for i in range(rhoCB.size):
                print "FJCEx ", rhoCB[i], F0FJCEx[i] 

        # FISK JOHNSON REVERSE dFBT FOR DISCRETE FUNCTION ---------------------
        fFJB = dFBT.FiskJohnsonDiscreteFuncBCKWD(r,F0FJC,T)
        for i in range(r.size):
                print "FJB ", r[i], f(r[i]), fFJB[i]
def main():
    # SIMULATION PARAMETERS ---------------------------------------------------
    #T = 10.
    N = int(sys.argv[1])
    rMin = 0.01
    rMax = 10.
    Nr = 1000
    # SET OBJECTIVE FUNCTION --------------------------------------------------
    r = np.linspace(rMin, rMax, Nr, retstep=False, endpoint=False)
    f, F = FBP.Gauss()

    for T in np.linspace(20 * rMin, rMax, 100.):

        # CREE BONES dFBT FOR CONTINUOUS FUNCTION -----------------------------
        rhoCB, F0CB = dFBT.CreeBonesDiscreteFunc(r[r < T], f(r[r < T]))

        # FISK JOHNSON dFBT FOR CONTINUOUS FUNCTION ---------------------------
        rhoFJC, F0FJC, T = dFBT.FiskJohnsonContinuousFuncFWD(r, f, T, N)

        # FISK JOHNSON EXTRAPOLATION TO DESIRED SAMPLE POINTS -----------------
        F0FJCEx = dFBT.FiskJohnsonDiscreteFuncExtrapolate(rhoCB, F0FJC, T)

        print T, N, eRMS(F(rhoCB), F0CB), eRMS(F(rhoCB), F0FJCEx)