#!/usr/bin/sage # Schmidt Quasi-Normalized Legendre Functions for Spherical Harmonics x = var('x'); def polypart(n,m): pol = (x^2-1)^n for I in range(1,n+1): pol = diff(pol,x) for I in range(1,m+1): pol = diff(pol,x) return pol def normpart(n,m): if(m==0): nrm = 1/2^n/factorial(n) else: nrm = (1/2^n/factorial(n)) * sqrt(2*factorial(n-m)/factorial(n+m)) return nrm NN = 20 lns = [] coefs = [] nmaxcoefs = 0 for I in range(0,NN+1): for J in range(0,I+1): pol = polypart(I,J) nrm = normpart(I,J) pol2 = expand(pol) p2c = pol2.coefficients(sparse=False) pol3 = nrm*pol2 p3c = pol3.coefficients(sparse=False) for K in range(0,len(p3c)): p3c[K] = p3c[K].n() coefs.append(p3c) if(nmaxcoefs