You are on page 1of 8

RevistaAvancesenSistemaseInformtica,Vol.7No.

2,juliode2010ISSN16577663
Evaluacincomputacionalparacalcularlospolinomiosde
Legendredeprimeraclase
ComputationalevaluationtocomputefirstkindLegendre
polynomials
Recibidopararevisin15deabrilde2009,aceptado4dejuniode2010,versinfinal30dejuniode2010
Resumen Los Polinomios de Legendr e son uno de los
ej emplos m s impor t ant es de los Polinomios Or t ogonales,
porque apar ecen como soluciones en varios problemas clsicos,
t ales como: movimient o de los planet as, a plicaciones
matemticas, campos de conservacin de energa, propagacin
de calor, pr opagacin de ondas, propagacin de ondas de
par tculas, pr opagacin de seales telegr ficas, reconstr uccin
de seales digitales, r econocimiento de patr ones, clasificacin
deobjetos,etc.Debidoalaimportanciaquerepresentaelclculo
de los Polinomios de Legendr e en el r econocimient o de
patrones, ya sea en dos dimensiones (2D) o en tres dimensiones
(3D), en este ar tculo se pr esenta un anlisis computacional de
laeficienciadelclculodelosPolinomiosdeLegendr edeprimera
clase. La implement acin de los mt odos par a calcular los
polinomios se r ealiz en dos lenguajes de programacin C++ y
J ava.
Palabras Cla vePolinomios de Legendr e, Polinomios
Ortogonales, C++, J ava.
AbstractLegendrePolynomialsareoneofthemostimportant
examples of or thogonal polynomials, because they appear as
solutions in sever al classic problems such as planets movement,
mathapplications,fieldsofenergyconservation,heatpropagation,
wave propagation, particle wave pr opagation, spr ead telegraph
signals, digital signals reconstruction, pattern recognition, object
classification, etc. Due to the importance of computation of the
Legendr e polynomials in pat ter n r ecognit ion, either in two
dimensions (2D) or three dimensions (3D), this paper presents a
comput at ional analysis of efficiency, to comput e fir st class
Legendr e polynomials. The implement at ion of met hods for
computing polynomials was per for med in t wo pr ogr amming
languages,C++ andJ ava.
Csar J ulio Bustacar a Medina, MsC.
PontificiaUniversidadJaveriana,Colombia
Departamento de Ingeniera de Sistemas
cbustaca@javeriana.edu.co
Keywords Legendr e Polynomials, Or thogonal Polynomials,
C++, J ava.
I. I NTRODUCCIN
E
lproblemafundamentalenelreconocimientodeobjetos,
yaseaen1D,2Do3D,esladescripcindelospatrones
deentrenamientoyluegolageneracindelosdescriptorespara
losobjetosareconocer.Elprocesodedescripcindecualquier
sealyaseadiscretaocontinua sepuederealizaratravsde
polinomiosortogonales.Sinembargo,existenaunproblemas
computacionalesparacalcularlospolinomiosortogonales,lo
cualimplicaunabajautilizacindelosmismosporquereducen
la eficiencia del proceso de descripcin y a la vez de
reconocimiento[1][2][6][7][15][17].Enlaactualidad,existen
variasfamiliasdepolinomiosortogonalesdentrodeloscuales
seencuentran:lospolinomiosdeLegendre,Chevichev,Laguerre,
Bessel,etc.Estospolinomiosestndefinidosenunintervalo[a,
b].ParaelcasoparticulardelospolinomiosdeLegendre,las
solucionessonortogonalesenelintervalo[1,1].
LospolinomiosdeLegendretienendiversasaplicacionesen
lasolucindeproblemastalescomo:movimientodeplanetas
(ecuacin de Kepler), resolucin de modelos fsicos con
ecuaciones diferenciales en derivadas parciales tanto en
coordenadas cartesianas como polares (campos de
conservacin,propagacindecalorypropagacindeseales),
reconstruccindeimgenesdigitales,termodinmica(descripcin
del comportamiento de las sustancias), descripcin y
reconocimiento de objetos, codificacin y reconstruccin de
RevistaAvancesenSistemaseInformtica,Vol.7No.2,juliode2010ISSN16577663
132
seales, y en diversos problemas fsicos (gravitacin,
electrosttica,etc.)dondeaparecenfuerzasquedependendel
inversodeladistanciaentredoscuerpos[2][6][7].
En este artculo se revisa en primera instancia la
formulacin matemtica de los polinomios de Legendre de
primera clase(una sola variable), posteriormentese definen
losdiferentesmtodos para obtenerlospolinomios, luegose
describe las tcnicas utilizadas para su implementacin
computacionalyfinalmenteserealizaunanlisisdelaspruebas
yseanalizanlosresultadosobtenidos[2][16].
II.POLINOMIOSDELEGENDRE
Los polinomios de Legendre surgen como una alternativa
parasolucionarlaecuacindiferencialdeLegendre,queensu
formacannicasedefinecomo[2][9]:
(1x
2
)y2xy+y=0 (1)
Cuya solucin general es la combinacin lineal de dos
solucioneslinealmenteindependientes:
y(x)=Ay
1
(x)+By
2
(x) (2)
Como caso particular de estas soluciones si = (+1)
con = n N unadedichassolucionesesunPolinomiode
Legendredeordenn.Enestecasolasolucingeneraltomala
forma[9]:
y(x)=AP
n
(x)+BQ
n
(x) (3)
LospolinomiosdeLegendreP
n
(x)yQ
n
(x)queaparecenenla
ecuacin (3) son soluciones de la ecuacin diferencial de
Legendre(12).LosprimerosseispolinomiosdeLegendreP
n
(x)
estnrepresentadoscomosemuestraenlaFigura1.
Figur a 1. Representacin de los primeros seis Polinomios de Legendre.
La ecuacin de los polinomios de Legendre usando la
representacindeRodrguezestdadaporlaecuacin(4)[2]
[9][13][16].
,donde (4)
Como se mencion, los polinomios de Legendre son
ortogonales enelintervalo[1,1],lo cualpermitequesean
utilizados como una combinacin de series infinitas de
funciones linealmente independientes. Lo anterior implica
quepuedenserutilizadosenla proyeccinyreconstruccin
de seales, es decir, son un mecanismo para encontrar la
representacin de una seal. La ecuacin (5) muestra la
notacin de una funcin f, que es multiplicada por los
polinomiosde Legendreparaobtenerlos coeficientesk que
larepresentan[2][9][16][18].
(5)
EstemecanismosepuedeverenlaFigura2(a),enlacual
semultiplicacadaunodelospolinomiosdeLegendreP
n
(x)
porlafuncinfyseencuentracadaunodelosvaloresk
n
.
Figur a 2. Proyeccin y reconstruccin de una funcin f usando los
polinomios de Legendre (adaptada de [18])
(a) (b)
Apartirdelosvaloresk
n
sepuedereconstruirlafuncinf.
Laecuacin(6)muestraelprocesodereconstruccin[2][9]
[16][18].
(6)
LaFigura2(b)muestraelprocesodereconstruccindela
funcin f a partir de loscoeficientes k
n
y los polinomios de
Legendre P
n
(x).
III.APROXIMACIONESNUMRICASDELOSPOLINOMIOSDE
LEGENDRE
Computacionalmenteexistenvariasalternativaspararealizar
elclculodelospolinomiosdeLegendre[1][2][6][9][10]
[12] [13] [14] [16], las cuales fueron consideradas y se
implementaronpararealizarsucorrespondientecomparacin.
LalistademtodosaimplementarseenumeraenlaTabla1.
EvaluacincomputacionalparacalcularlospolinomiosdeLegendredeprimeraclaseBustacara 133
Tabla 1. Lista de mtodos para calcular los polinomios de Legendre
Mt odos Ecuacin
1
Si n es par existe una singularidad cuando x=0 y (n2k)=0, es decir, 0
0
no est
definida.
2
Si n es par existe una singularidad cuando x=0 y (n2k)=0, es decir, 0
0
no est
definida.
3
Existeunasingularidadcuandox=1yk=0,esdecir,0
0
noestdefinida.
4
Donde,
5
Donde,
IV.TCNICASDEIMPLEMENTACIN
SedefinieronalgoritmostantoenlenguajeC++comoJava
paracadaunodelosmtodosdeaproximacinnumricade
los polinomios de Legendre [3] [4]. Para el caso especifico
dellenguaje C++se utilizel tipode datolongdouble que
poseeunalongitudde80bits,queeseltipodedatosmayor
tamaoparacomputacincientfica.Enelcasodellenguaje
Javaseutilizeltipodedatodouble.Loanteriorconel fin
deaumentarelnmerodepolinomiosquesepuedancalcular,
LenguajeC++ LenguajeJava
longdoublelegendrePoly1(intn,doublex){
doublemax=0
longdoublepn=0
longdoublenum,den
longdoublecte=1.0/(pow(2.0,n))
if(n>0)
max=floor(n/2)
for(intk=0k<=maxk++){
num=pow(1.0,k)*factorial((2*n)(2*k))
den=factorial(k)*factorial(nk)
if((n(2*k))!=0){
num=num*pow(x,n(2*k))
den=den*factorial(n(2*k))
}
pn=pn+(num/den)
}
pn=cte*pn
returnpn
}
publicdoublelegendrePoly1(intn,doublex){
doublemax=0
doublepn=0
doublenum,den
doublecte=1.0/(Math.pow(2.0,n))
if(n>0)
max=Math.floor(n/2)
for(intk=0k<=maxk++){
num=Math.pow(1.0,k)*factorial((2*n)(2*k))
den=factorial(k)*factorial(nk)
if((n(2*k))!=0){
num=num*Math.pow(x,n(2*k))
den=den*factorial(n(2*k))
}
pn=pn+(num/den)
}
pn=cte*pn
returnpn
}
debidoala restriccindelos clculos delosfactoriales que
estn incluidos en las ecuaciones de los tres primeros
mtodos.
Acontinuacinselistacadaunodelosmtodosdeclculo
con su correspondiente implementacinen cada uno de los
dos lenguajes seleccionados.
Mtodo 1:
RevistaAvancesenSistemaseInformtica,Vol.7No.2,juliode2010ISSN16577663
134
Mtodo2:
LenguajeC++ LenguajeJ ava
long doublelegendrePoly2(intn,doublex){
doublemax=0
longdoublepn=0
longdoubleval
doublep1
longdoublecte=1.0/(pow(2.0,n))
if(n>0)
max=floor(n/2)
for(intk=0k<=maxk++){
p1=(2*n)(2*k)
val=pow(1.0,k)*binomial(n,k)*binomial(p1,n)
if((n(2*k))!=0){
val=val*pow(x,n(2*k))
}
pn=pn+val
}
pn=cte*pn
returnpn
}
publicdoublelegendrePoly2(intn,doublex){
doublemax=0
doublepn=0
doubleval
doublep1
doublecte=1.0/(Math.pow(2.0,n))
if(n>0)
max=Math.floor(n/2)
for(intk=0k<=maxk++){
p1=(2*n)(2*k)
val=Math.pow(1.0,k)*binomial(n,k)*binomial(p1,n)
if((n(2*k))!=0){
val=val*Math.pow(x,n(2*k))
}
pn=pn+val
}
pn=cte*pn
returnpn
}
Mtodo3:
LenguajeC++ LenguajeJava
longdoublelegendrePoly3(intn,doublex){
doublemax=0
longdoublepn=0
longdoubleval
longdoublecte=1.0/(pow(2.0,n))
for(intk=0k<=nk++){
val=pow(binomial(n,k),2)
if((nk)!=0){
val=val*pow(x1,nk)
}
if(k!=0){
val=val*pow(x+1,k)
}
pn=pn+val
}
pn=cte*pn
returnpn
}
publicdoublelegendrePoly3(intn,doublex){
doublemax=0
doublepn=0
doubleval
doublecte=1.0/(Math.pow(2.0,n))
for(intk=0k<=nk++){
val=Math.pow(binomial(n,k),2)
if((nk)!=0){
val=val*Math.pow(x1,nk)
}
if(k!=0){
val=val*Math.pow(x+1,k)
}
pn=pn+val
}
pn=cte*pn
returnpn
}
EvaluacincomputacionalparacalcularlospolinomiosdeLegendredeprimeraclaseBustacara 135
Mtodo4:
donde,
LenguajeC++ LenguajeJava
longdoublelegendrePoly4(intn,doublex){
doublep0=1
doublep1=x
longdoublepn=0
if(n==0)
returnp0
if(n==1)
returnp1
for(intk=1k<nk++){
pn=(((2*k+1)*x*p1)(k*p0))/(k+1)
p0=p1
p1=pn
}
returnpn
}
publicdoublelegendrePoly4(intn,doublex){
doublep0=1
doublep1=x
doublepn=0
if(n==0)
returnp0
if(n==1)
returnp1
for(intk=1k<nk++){
pn=(((2*k+1)*x*p1)(k*p0))/(k+1)
p0=p1
p1=pn
}
returnpn
}
Mtodo5:
donde,
LenguajeC++ LenguajeJava
longdoublelegendrePoly5(intn,doublex){
longdoublep0=1.0
longdoublep1=x
longdoublepn=0
longdoublepn1=0
if(n==0)
returnp0
if(n==1)
returnp1
for(intk=1k<nk++){
pn1=x*p1
pn=((2*pn1)p0)(pn1p0)/(k+1)
p0=p1
p1=pn
}
returnpn
}
publicdoublelegendrePoly5(intn,doublex){
doublep0=1.0
doublep1=x
doublepn=0
doublepn1=0
if(n==0)
returnp0
if(n==1)
returnp1
for(intk=1k<nk++){
pn1=x*p1
pn=((2*pn1)p0)(pn1p0)/(k+1)
p0=p1
p1=pn
}
returnpn
}
RevistaAvancesenSistemaseInformtica,Vol.7No.2,juliode2010ISSN16577663
136
V. PRUEBAS Y RESULTADOS
LospolinomiosdeLegendreP
n
(x)fueronevaluadosparalos
cincomtodosencadaunodeloslenguajesdeprogramaciny
elnmerodevaloresdelavariablexenelintervalo[1,1]fuede
752muestras.Paramedireltiempodecomputorequeridose
realizaron10.000ejecucionesdecadaunodelosalgoritmosen
unequipoconprocesadorquadcorede2.4GHzyunamemoria
RAM de 2GB. El hecho de tener varias unidades de
procesamiento implica que las operaciones de cmputo se
dividieronentreellas.Adicionalmente,secalcularonlosprimeros
45polinomiosP
n
(x),debidoaquesepresentaroninconvenientes
enlostresprimerosmtodos.Estosepuedeverenlasfiguras3,
4y5,enlascualessemuestraunproblemadeprecisinenel
clculo delos polinomios P
n
(x) cuando n=57, n=58 y n=59
respectivamente.
Figur a 3. Clculo del polinomio de Legendre cuando n=57
Figur a 4. Clculo del polinomio de Legendre cuando n=58
En la Figura 6 se muestra un anlisis comparativo de los
cincomtodosimplementadosencadaunodeloslenguajes.
La coordenada x indica el nmero de polinomios n y la
coordenada yindicaeltiempoenmilisegundosrequeridopara
ejecutar el clculo de los n polinomios de Legendre. De
acuerdoalafigura6sepuedededucirquelosmtodos4y5
son mucho ms eficientes que los dems mtodos. Esto es
evidenteporquecorrespondenaecuacionesderecurrenciaque
permiten reducir el uso de sumatorias y de clculo de
factoriales y binomiales.Adicionalmente, los mtodos 1 y 2
son ms eficientes que el mtodo 3, debido a que se debe
realizarlamitaddelasoperacionesparaencontrarelvalordel
polinomio.Porotra partesevequeenel casoparticulardel
mtodo3,esmuchomseficienteellenguajeJavaqueC++.
Figur a 6. Comparacin de los mtodos para calcular los polinomios de
Legendre
(a) ImplementacinenC++
(b) ImplementacinenJava
EnlaFigura7serealizaunacomparacindelosmtodos4
y5paracadaunodeloslenguajesdeimplementacin.Enla
columna izquierda (implementacin C++) se puede ver que
lostiemposderespuestafluctanentrelosdosmtodos,por
lo cual los dos son validos para realizar el clculo de los
polinomios. Mientras que en la columna derecha
(implementacinenJava)sepuedeobservarqueelmtodo5
es ms eficiente que el mtodo 4 para realizar el clculo de
lospolinomiosdegradosuperioran=10.Adicionalmente,se
mantiene la tendencia de eficiencia de Java con respecto a
C++,peroestonoconcuerdaconelsupuestodequeC++es
mseficientequeJava[3][4][5][11],porlocualserealizaron
pruebas con las diferentes formasde obtener los tiempos en
C++, usando las estructuras time_t, clock_t y la funcin
gettimeofday. El resultado obtenido fue el mismo, es decir,
sepresentmayoreficienciaenJava.
Figur a 7. Comparacin de los mtodos 4 y 5 para calcular los
polinomios de Legendre
(a) ImplementacinenC++ (b) ImplementacinenJava
EvaluacincomputacionalparacalcularlospolinomiosdeLegendredeprimeraclaseBustacara 137
VI.CONCLUSIONESYTRABAJOFUTURO
Los algoritmos basados en recurrencias son mucho ms
eficientes que los basados en sumatorias, esto ocurre tanto
enC++comoenJava.Esimportantetrabajarsobrelaparidad
de los polinomios para reducir el tiempo computacional,
sobre todo cuando se vayan a utilizar en la descripcin de
seales.
Los mtodos 4 y 5 no presentan mucha diferencia en el
lenguaje C++, mientrasque en lenguaje Javase aprecia un
mejorrendimientoenelmtodo5amedidaquecreceelvalor
dendel polinomioa calcular.Sera buenoexplorar valores
superioresyanalizarelcomportamientodelosmtodostanto
enC++comoenJava.
Dentro del anlisis de los polinomios se utilizaron
nicamente coordenadas cartesianas, pero sera deseable
extenderlasolucinacoordenadaspolaresparaverificarel
impacto de las funciones coseno y seno dentro del
rendimiento de los mtodos.
Dentro del proceso de clculo de los polinomios de
Legendreseencontrinconvenienteenlosmtodos1,2y3
enrdenessuperioresden,especficamenteparan>46.Esto
refleja una gran desventaja en el momento de encontrar
vectores dedescriptores deorden mayora 46.
Elrendimientomsbajoloofreceelmtodo3,puestoquela
cotasuperiordelasumatoriaeseldobledelosmtodos1y2.
Enelprocesodecmputodelosmtodos1,2y3existen
singularidades en las funciones, lo cual impl ica un mayor
tiempodeejecuci nporlaincorporacindecondicional es.
REFERENCIAS
[1] AbramowitzM.andStegunI.,1972.HandbookofMathematical
FunctionswithFormulas,Graphs,andMathematicalTables,National
BureauofStandardsAppliedMathematicsSeries55P.
[2] ArfkenG.B.andWeberH.J.,2005.MathematicalMethodsfor
Physicists,FourthEdition,AcademicPress.
[3] BessetD.,2001.ObjectOrientedImplementationsofNumerical
Methods,MorganKaufmannPress.
[4] BoisvertR.F.,MoreiraJ.,PhilippsenM.andPozoR.,2000.Java
andNumericalComputing,NIST.
[5] BruckschlegelT.,2005.MicrobenchmarkingC++,C#andJava,
En:Dr.Dobbs,June17.
[6] ChowT.,2000.MathematicalMethodsforPhysicists:Aconcise
introduction,CambridgeUniversityPress.
[7] DavisJ.,2004.MathematicalModelingofEarthsMagneticField,
TechnicalNote,VirginiaTech,Blacksburg.
[8] GuseinovI.,1996.Ontheevaluationofrotationcoefficientsfor
spherical harmonics using binomial coefficients, En: Journal of
MolecularStructure,pp.119121.
[9] HobsonE.W.,LL.D.andF.R.S.,1965.ThetheoryofSpherical
andEllipsoidalHarmonics,ChelseaPublishingCompany,NewYork.
[10] HuazhongS.,LiminL.,XudongB.,WenxueY.andGuoniuH.,
2000.AnEfficientMethodforComputationofLegendreMoments,
En:GraphicalModels,pp.237262.
[11] MartinR.C.,1997.JavaandC++:Acriticalcomparison,Technical
Note,ObjectMentor.
[12] MukundanR.andRamakrishnanK.,1995.FastComputationof
LegendreandZernikeMoments,En:PatternRecognitionVol.28,
No.9,pp.14331442.
[13] PoularikasA.D.,1999.LegendrePolynomilas,TheHandbookof
FormulasandTablesforSignalProcessing,CRCPressLLC.
[14] PewThianY.andRaveendranP.,2005.AnEfficientMethodfor
theComputationofLegendreMoments,En:IEEETransactionson
PatternAnalysisandMachineIntelligence,Vol.27,No.12.
[15] Schwaha P., Giani C., Heinzl R. and Selberherr S., 2007.
Visualisation of Polynomials Used in Series Expansions, En:
Proceedingsofthe4thHighEndVisualizationWorkshop,pp.139
148.
[16] Sacerdoti J., 2002. Polinomios y Funciones de Legendre,
DepartamentodeMatemtica,FacultaddeIngeniera,Universidad
deBuenosAires.
[17] Simon X. L. and Miroslaw P., 1996. On ImageAnalysis by
Moments,En:IEEETransactionsonPatternAnalysisandMachine
Intelligence,Vol.18,No.3.
[18] SchnefeldV.,2005.SphericalHarmonics,ComputerGraphics
andMultimediaGroup,TechnicalNote.RWTHAachenUniversity,
Germany.
RevistaAvancesenSistemaseInformtica,Vol.7No.2,juliode2010ISSN16577663
138
Uni versidadNaci onaldeCol ombi aSedeMedel l n
Facul taddeMi nas
ReseaHi stri ca
La Escuela Nacional de Minas fue fundada el 11 de abril de
1887, bajo la direccin del general Pedro Nel Ospina como
rector y como Vicerector Lus Tisns, aunque el general Pedro
Nel Ospina no se posesiono, elaboro con ayuda de su hermano
Tulio los estatutos y reglamentos de la escuela, los cuales fueron
una adaptacin de los estatutos y reglamentos de la Escuela
de Minas de California (Berkeley)los cuales fueron cambiando
de acuerdo a las necesidades de cada dcada, en ellos se
fomento una filosofa con valores cvicos, ticos y de orden por
medio del estimulo y el ejemplo que comprometan el
comportamiento del estudi ante no solo dentro de la escuela
sino fuera de ella, a dems se introdujeron hbitos de
sobriedad, de econom a y principios morales de honradez,
honestidad y respeto.
En sus inicios cont con 22 alumnos matriculados, y luego de tres meses fue cerrada
por la poca cantidad de estudiantes, fue reabierta un ao despus, el 2 de enero de
1888, bajo l a rectora de Tulio Ospina V, esta vez cont con 27 alumnos matriculados y
con un plan de estudios de 4 aos de un mejor control de los programas curriculares y
adaptarlos a nuevas condiciones adelantndose a las necesidades futuras de la
educacin y asegurando as un buen desempeo de los futuros profesionales.
En 1906 l a Escuela Nacional de Minas se anexo a la universidad de Antioquia, a l a
que perteneci durante cinco aos ms, en 1911 paso a ser de nuevo una enti dad
independiente.
En 1940 la institucin fue incorporada a la Universidad Nacional y contino con el
nombre de Escuela Nacional de Minas, ese mismo ao comenz la construccin de l a
actual sede, la cual fue inaugurada el 19 de diciembre de 1944, en el marco del primer
Congreso Nacional de Ingenieros.
Entre 1941 y 1950 se crean las carreras de ingeniera geolgica y petrleos y
arquitectura, l a cual se separo de la facultad de Minas en 1954, en1960 se crea l a
carrera de ingeniera administrativa, luego se crearon los programas de ingenier a
industri al, ingeniera mecnica e ingeniera qumica y se separaron los programas de
ingeniera geolgica y petrleos en dos programas diferentes, actualmente la Facultad
de Minas Administra 11 programas de pregrado en ingeniera, 17 de posgrado y cuatro
doctorados.
La Facultad a lo largo de su existencia ha sido motora del desarrollo de la ciudad, del
departamento y del pas, a travs de sus 12.000 egresados quienes han constituido l a
mayor parte del personal dirigente y tcnico en las explotaciones mineras, las
construcciones de distinto tipo, la infraestructura vial, los desarrollos hi droelctricos, las
obras de abastecimiento de agua, las obras sanitarias y l a industria, as como en los
planes de desarrollo fsico, econmico y social.

You might also like