コード例 #1
0
def genChebzshevPolyGS(n_poly = 3):
    """
    Generates Chebyshev Polynomials using GramSchmidt
    """
    integr = iL.FivePointIntegrator(10, [-1,1])
    polys = []

    print '\nGenerating Chebyshev Polynomials using GramSchmidt'
    print '-----------------------------------------------------------------------\n'

    
    for n in range(0, n_poly+1):
        print ' - generate P%d'%n
        
        Tn = pL.poly([1]*(n+1)) #degree 1 has 2 coefficients, degree 2 has 3, ...
        polys.append(Tn)
        
        for m in range(len(Tn())-1):
            Tm = polys[m]
            #print 'indices',n,m
            #print 'Tn', Tn
            #print 'Tm', Tm
            
            for i in range(Tm.n):
                #print '    n,m,i',n,m,i
                #tmp = integr(lambda x:(Tn(x) * Tm(x)) / np.sqrt(1.0-x*x))
                #print '    intgr at: ',n,m,i,"int",tmp, Tm[i]
                #Tn[i] -=  tmp * Tm[i]
                #print '    ', Tn, '\n    ',Tm
                
                Tn[i] -= integr(lambda x:(Tn(x) * Tm(x)) / np.sqrt(1.0-x*x)) * Tm[i]

        polys[n] = norm1(Tn, integr)
        
    return normFinal(polys)    
コード例 #2
0
def genChebyshevPolyGCQ(n_poly=3, M_eval=10):
    """
    Generates Chebyshev Polynomials using
     * Gauss-Chebyshev quadrature for integration
     * Gram Schmidt
    """
    integr = iL.GaussChebishevQuadrature(M_eval)
    polys = []

    print '\n\nGenerating Chebyshev Polynomials using Gauss-Chebyshev quadrature'
    print '-----------------------------------------------------------------------\n'

    for n in range(0, n_poly + 1):
        print ' - generate P%d' % n

        Tn = pL.poly(
            [1] * (n + 1))  #degree 1 has 2 coefficients, degree 2 has 3, ...
        polys.append(Tn)

        for m in range(len(Tn()) - 1):
            Tm = polys[m]
            #print 'indices',n,m
            #print 'Tn', Tn
            #print 'Tm', Tm

            for i in range(Tm.n):
                #print '    n,m,i',n,m,i
                #tmp = integr(lambda x:(Tn(x) * Tm(x)) / np.sqrt(1.0-x*x))
                #print '    intgr at: ',n,m,i,"int",tmp, Tm[i]
                #Tn[i] -=  tmp * Tm[i]
                #print '    ', Tn, '\n    ',Tm

                Tn[i] -= integr(Tn * Tm) * Tm[i]

        polys[n] = norm2(Tn, integr)

    return normFinal(polys)
コード例 #3
0
def genChebzshevPolyGS(n_poly=3):
    """
    Generates Chebyshev Polynomials using GramSchmidt
    """
    integr = iL.FivePointIntegrator(10, [-1, 1])
    polys = []

    print '\nGenerating Chebyshev Polynomials using GramSchmidt'
    print '-----------------------------------------------------------------------\n'

    for n in range(0, n_poly + 1):
        print ' - generate P%d' % n

        Tn = pL.poly(
            [1] * (n + 1))  #degree 1 has 2 coefficients, degree 2 has 3, ...
        polys.append(Tn)

        for m in range(len(Tn()) - 1):
            Tm = polys[m]
            #print 'indices',n,m
            #print 'Tn', Tn
            #print 'Tm', Tm

            for i in range(Tm.n):
                #print '    n,m,i',n,m,i
                #tmp = integr(lambda x:(Tn(x) * Tm(x)) / np.sqrt(1.0-x*x))
                #print '    intgr at: ',n,m,i,"int",tmp, Tm[i]
                #Tn[i] -=  tmp * Tm[i]
                #print '    ', Tn, '\n    ',Tm

                Tn[i] -= integr(lambda x:
                                (Tn(x) * Tm(x)) / np.sqrt(1.0 - x * x)) * Tm[i]

        polys[n] = norm1(Tn, integr)

    return normFinal(polys)
コード例 #4
0
def genChebyshevPolyGCQ(n_poly = 3, M_eval = 10):
    """
    Generates Chebyshev Polynomials using
     * Gauss-Chebyshev quadrature for integration
     * Gram Schmidt
    """
    integr = iL.GaussChebishevQuadrature(M_eval)
    polys = []

    print '\n\nGenerating Chebyshev Polynomials using Gauss-Chebyshev quadrature'
    print '-----------------------------------------------------------------------\n'
    
    for n in range(0, n_poly+1):
        print ' - generate P%d'%n
        
        Tn = pL.poly([1]*(n+1)) #degree 1 has 2 coefficients, degree 2 has 3, ...
        polys.append(Tn)
        
        for m in range(len(Tn())-1):
            Tm = polys[m]
            #print 'indices',n,m
            #print 'Tn', Tn
            #print 'Tm', Tm
            
            for i in range(Tm.n):
                #print '    n,m,i',n,m,i
                #tmp = integr(lambda x:(Tn(x) * Tm(x)) / np.sqrt(1.0-x*x))
                #print '    intgr at: ',n,m,i,"int",tmp, Tm[i]
                #Tn[i] -=  tmp * Tm[i]
                #print '    ', Tn, '\n    ',Tm
                
                Tn[i] -= integr(Tn * Tm) * Tm[i]

        polys[n] = norm2(Tn, integr)
        
    return normFinal(polys)