Monografías Plus      Agregar a favoritos      Ayuda      Português      Ingles     

Polinomios de Legendre

Enviado por Aladar Peter Santha



Partes: 1, 2

Definición (de Olinde Rodrigues): El polinomio de Legendre de grado n se define de la manera siguiente:

Monografias.com (1)

Monografias.com

Puesto que Monografias.comMonografias.comy teniendo en cuenta que la derivada de orden cero de una función es la función misma, resulta que

Monografias.comy Monografias.com (2)

Teorema 1: Los polinomios de Legendre verifican la relación:

Monografias.com (3)

Demostración: Notando Monografias.comse calcula la derivada de orden Monografias.comde Monografias.comutilizando la fórmula de Leibniz:

Monografias.com (4)

Resulta que:

Monografias.com (5)

Por otra parte,

Monografias.com

Monografias.com

Monografias.com (6)

Igualando los resultados (5) y (6), se obtiene que

Monografias.com

Monografias.com (7)

Ahora, utilizando las relaciones (1) y (7) y la regla de Leibniz, resulta que:

Monografias.com

Monografias.com

Monografias.com

, es decir,

Monografias.com

Al dividir ambas partes de esta última igualdad entreMonografias.comresulta que

Monografias.com

, es decir,

Monografias.com

La fórmula de recurrencia (3) permite calcular cómodamente los coeficientes de los polinomios de Legendre, a partir de los coeficientes de Monografias.comPor ejemplo, si Monografias.comla relación (3) se transforma en:

Monografias.com

, de donde, teniendo en cuenta a (2), resulta que

Monografias.com

Para calcular a Monografias.comse procede de la misma manera. Poniendo Monografias.comen la relación (3)

, se obtiene que:

Monografias.com

, de donde, teniendo en cuenta las expresiones de Monografias.comy Monografias.comresulta que

Monografias.com

Continuando así, se obtienen los resultados siguientes:

Monografias.com

Monografias.com

Monografias.com (8)

Monografias.com

Monografias.com

Lema 1: Cualquier producto de Monografias.comnúmeros naturales consecutivos es un múltiplo de Monografias.com

Demostración: Si Monografias.comhay que demostrar que el producto

Monografias.com

, es un múltiplo de Monografias.com. La demostración se hace por recurrencia respecto al número de los factores en el producto.

Obviamente, el lema se cumple en el caso de un producto de dos factores consecutivos

Monografias.com

, puesto que en este caso uno de los factores es par y por tanto es divisible por Monografias.comSupongamos ahora que el lema se cumple para los productos de p factores. Así

Monografias.com

, es un múltiplo de Monografias.comPara que el lema sea verdadero para un número cualquiera de factores, hay que demostrar que el producto de Monografias.comfactores

Monografias.com

, es un múltiplo de Monografias.comSe observa que,

Monografias.com

, es decir,

Monografias.com.

Dado que Monografias.comes múltiplo de Monografias.comMonografias.comserá múltiplo de Monografias.comPor tanto, Monografias.comes múltiplo de Monografias.comsi, y solamente si, Monografias.comlo es.

Con otras palabras,

Monografias.com

, donde Monografias.comsignifica que Monografias.comes múltiplo de Monografias.com

Así,

Monografias.com

Dado que Monografias.comes múltiplo de Monografias.comde las equivalencias anteriores resulta que Monografias.comlo es también, y así el lema queda demostrado.

Lema 2: Todos los coeficientes del polinomio Monografias.comson múltiplos deMonografias.com

Demostración: Dado que Monografias.comes un polinomio de grado Monografias.com

Monografias.com

, y así

Monografias.com

Teniendo en cuenta que todos los coeficientes de Monografias.comson productos de Monografias.comnúmeros naturales consecutivos, según el lema 1 resulta que sus coeficientes son múltiplos de Monografias.com

Para el cálculo de los polinomios de Legendre por programa no es conveniente determinar los coeficientes de Monografias.compuesto que, según el lema 2, estos son múltiplos de Monografias.comy así, crecen de manera muy rápida con el aumento de Monografias.comPor este razón, es conveniente buscar una fórmula de recurrencia para el cálculo de

Monografias.com

Obviamente, según (3),

Monografias.com (9)

, donde Monografias.comy Monografias.comEl procedimiento siguiente, que utiliza la fórmula (9), sirve para el cálculo de los polinomios de Legendre, hasta el grado 24:

Public Function CalPolLegendre(ByVal g) As String

Dim i As Integer, p As Double, y() As Double, z() As Double

Dim res As String, res0 As String, rc As String

ReDim z(g)

rc = Chr$(13) + Chr$(10)

y() = PolLeg(g)

For i = 0 To g

z(i) = y(i)

Next i

p = y(g + 1)

res = "Polinomio de Legendre de grado " + Str$(g)

res = res + ", multiplicado por: " + "2^" + Str$(p)

res0 = FormatoPol(z())

res = res + rc + rc + res0

CalPolLegendre = res

End Function

' ---------------------------------------------------------------------------------

Public Function PolLeg(ByVal g As Integer) As Variant

If g > 24 Then

MsgBox "El grado tiene que ser menor que 25"

End

End If

Dim i As Integer, j As Integer, k As Integer, res0 As String

Dim sw As Integer, y() As Double, res As String, rc As String

Dim a() As Double, b() As Double, t() As Double

If g < 3 Then

If g = 0 Then

ReDim y(1): y(0) = "1": y(1) = "0"

End If

If g = 1 Then

ReDim y(2)

y(0) = "1": y(1) = "0"

End If

If g = 2 Then

ReDim y(3): y(0) = "3": y(1) = "0": y(2) = "-1": y(3) = "1"

End If

PolLeg = y()

Exit Function

End If

ReDim a(g), b(g + 1), t(g - 1, g + 1), y(g + 1)

rc = Chr$(13) + Chr$(10): p = g

t(0, 0) = 0: t(0, 1) = 2 'Coeficiente de 2* L1(x)

t(1, 0) = -2: t(1, 1) = 0: t(1, 2) = 6 ' Coeficientes de 2*L2(x)

For i = 2 To g - 1

For j = 0 To g

If j <> g - 1 Then

a(j) = -4 * i * t(i - 2, j)

End If

b(j + 1) = (4 * i + 2) * t(i - 1, j)

b(j) = b(j) + a(j)

Next j

For k = 0 To i + 1

t(i, k) = b(k) / (i + 1)

b(k) = 0

Next k

Next i

For i = 1 To g

For j = 0 To g

If Int(t(g - 1, j) / 2) <> t(g - 1, j) / 2 Then

sw = 1: Exit For

End If

Next j

If sw = 1 Then

Exit For

End If

p = p - 1

For j = 0 To g

t(g - 1, j) = t(g - 1, j) / 2

Next j

Next i

For i = 0 To g

y(i) = t(g - 1, g - i)

Next i

y(g + 1) = p

PolLeg = y()

End Function

' ---------------------------------------------------------------------------------

Public Function FormatoPol(ByRef x() As Double) As Variant

Dim i As Integer, gx As Integer, ax As String, cx As String

gx = UBound(x())

For i = 0 To gx

If x(i) <> 0 Then

If i = 0 Then

If Abs(x(0)) <> 1 Then

If x(0) < 0 Then

cx = Str$(x(0))

Else

cx = Mid$(Str$(x(0)), 2)

End If

Else

If gx <> 0 Then

If x(0) = -1 Then

cx = "-"

End If

Else

If x(0) = -1 Then

cx = Str$(-1)

Else

cx = Mid$(Str$(1), 2)

End If

End If

End If

If gx <> 0 Then

If gx = 1 Then

cx = cx + " X"

Else

cx = cx + " X^" + Mid$(Str$(gx), 2)

End If

End If

Else

If x(i) > 0 Then

ax = " + "

Else

ax = " - "

End If

If Abs(x(i)) <> 1 Or i = gx Then

ax = ax + Mid$(Str$(x(i)), 2)

End If

If gx > 1 Then

If i < gx - 1 Then

ax = ax + " X^"

ax = ax + Mid$(Str$(gx - i), 2)

Else

If i = gx - 1 Then

ax = ax + " X"

End If

End If

End If

cx = cx + ax: ax = ""

End If

End If

Next i

FormatoPol = cx

End Function

Utilizando el procedimiento anterior se obtienen los resultados (8) y se pueden calcular los coeficientes para más polinomios de Legendre de grados menores que 25:

Monografias.com

Monografias.com

Monografias.com Monografias.com

Para hallar polinomios de Legendre de grado muy grande, hay que utilizar los programas para operar con enteros extra-largos [4]. En este caso el código a utilizar es el siguiente:

Public Function CalPLegNG(ByVal g As Integer) As String

Dim i As Integer, pg As String, y() As String, z() As String

Dim res As String, res0 As String, rc As String

ReDim z(g)

rc = Chr$(13) + Chr$(10)

y() = PolLegNG(g)

For i = 0 To g

z(i) = y(i)

Next i

pg = y(g + 1)

res = "Polinomio de Legendre de grado " + Str$(g)

res = res + ", multiplicado por: " + "2^" + pg

res0 = FormatoPolLegNG(z())

res = res + rc + rc + res0

CalPLegNG = res

End Function

' ---------------------------------------------------------------------------------

Public Function PolLegNG(ByVal g As Integer) As Variant

Dim i0 As Integer, i1 As Integer, j0 As Integer, sw1 As Integer, w4 As Integer

Dim w3 As String, q() As String, s() As String, t() As String, rr() As String

Dim x0() As String, x(2) As String, res As String, res0 As String, rc As String

Dim n As Integer, pq As Integer

If g < 3 Then

If g = 0 Then

ReDim x0(1): x0(0) = "1": x0(1) = "0"

End If

If g = 1 Then

ReDim x0(2)

x0(0) = "1": x0(1) = "0"

End If

If g = 2 Then

ReDim x0(3): x0(0) = "3": x0(1) = "0": x0(2) = "-1": x0(3) = "1"

End If

PolLegNG = x0()

Exit Function

End If

ReDim q(g), s(g + 1), t(g - 1, g + 1)

n = 7: t(0, 1) = "2": pg = g

t(1, 0) = "-2": t(1, 1) = "0": t(1, 2) = "6"

rc = Chr$(13) + Chr$(10): sw1 = 0

For i0 = 2 To g - 1

For j0 = 0 To g

If j0 <> g - 1 Then

x(1) = Str$(-4 * i0): x(2) = t(i0 - 2, j0)

q(j0) = Multiplicar(x(), n)

End If

x(1) = Mid$(Str$(4 * i0 + 2), 2)

x(2) = t(i0 - 1, j0)

s(j0 + 1) = Multiplicar(x(), n)

x(1) = s(j0): x(2) = q(j0)

s(j0) = Sumar(x(), n)

Next j0

For i1 = 0 To i0 + 1

x(1) = s(i1): x(2) = Mid$(Str$(i0 + 1), 2)

rr() = DivisionEuclidea(x(), n)

t(i0, i1) = rr(1)

s(i1) = "0"

Next i1

Next i0

For i0 = 1 To g

For j0 = 0 To g

w3 = Right$(t(g - 1, j0), 1)

x(1) = w3: x(2) = 2: rr() = DivisionEuclidea(x(), n): w4 = rr(2)

If w4 <> 0 Then

sw1 = 1: Exit For

End If

Next j0

If sw1 = 1 Then

Exit For

End If

pg = pg - 1

For j0 = 0 To g

x(1) = t(g - 1, j0): x(2) = "2"

rr() = DivisionEuclidea(x(), n)

t(g - 1, j0) = rr(1)

Next j0

Next i0

ReDim x0(g + 1)

For i = 0 To g

x0(i) = t(g - 1, g - i)

Next i

x0(g + 1) = Str$(pg)

PolLegNG = x0()

End Function

' ---------------------------------------------------------------------------------

Public Function FormatoPolLegNG(ByRef x0() As String) As String

Dim i As Integer, gx As Integer, ax As String, cx As String

gx = UBound(x0())

For i = 0 To gx

If x0(i) <> "0" Then

If i = 0 Then

If x0(0) <> "1" And x0(0) <> "-1" Then

cx = x0(0)

Else

If gx <> 0 Then

If x0(0) = "-1" Then

cx = "-"

End If

Else

If x0(0) = "-1" Then

cx = Str$(-1)

Else

cx = Mid$(Str$(1), 2)

End If

End If

End If

If gx <> 0 Then

If gx = 1 Then

cx = cx + " X"

Else

cx = cx + " X^" + Mid$(Str$(gx), 2)

End If

End If

Else

If Left$(x0(i), 1) = "-" Then

ax = " - "

Else

ax = " + "

End If

If (x0(i) <> "1" And x0(i) <> "-1") Or i = gx Then

If Left$(x0(i), 1) = "-" Then

ax = ax + Mid$(x0(i), 2)

Else

ax = ax + x0(i)

End If

End If

If gx > 1 Then

If i < gx - 1 Then

ax = ax + " X^"

ax = ax + Mid$(Str$(gx - i), 2)

Else

If i = gx - 1 Then

ax = ax + " X"

End If

End If

End If

cx = cx + ax: ax = ""

End If

End If

Next i

FormatoPolLegNG = cx

End Function

Haciendo los cálculos con el código anterior se obtiene, por ejemplo, el resultado siguiente:

Monografias.com

Monografias.com

Teorema 2: Cualquiera que sea Monografias.comMonografias.com (10)

Según las igualdades (2), la propiedad se cumple para Monografias.comSuponiendo que se cumple para Monografias.comsegún la fórmula de recurrencia (3) resulta que

Monografias.com

Lema 3: Si la función Monografias.comes derivable y par (impar) su derivada Monografias.comes impar (par).

En efecto, si Monografias.com, entonces según la regla de derivación de las funciones compuestas

Monografias.com

, es decir

Monografias.com

Si Monografias.comes impar,

Monografias.com

, es decir

Monografias.com

Lema 4: si Monografias.comes una función par Monografias.comderivable y Monografias.comes su dominio de definición, entonces según el lema 3

Monografias.com

En efecto, si Monografias.comes una función par entonces Monografias.comes impar, Monografias.comes par, Monografias.comes impar, Monografias.comes par, Monografias.comes impar Monografias.comes par, Monografias.comes impar. Así el lema 4 queda demostrado.

Teorema 3: Cualquiera que sea Monografias.com

Monografias.com (11)

Demostración: El caso Monografias.comresulta de la definición1. Si Monografias.comy teniendo en cuenta que la función Monografias.comes una función par, según el lema 4 resulta que

Monografias.com

, es decir

Monografias.com

Consecuencia: Puesto que según el teoremas 2 Monografias.comdel teorema 3 resulta que

Monografias.com

Teorema 4: Cualquiera que sea Monografias.comMonografias.com

Según las igualdades (2), la propiedad se cumple para Monografias.comDerivando la fórmula de recurrencia (3) resulta que

Monografias.com (12)

Suponiendo que el teorema se cumple para Monografias.comy poniendoMonografias.comen la igualdad (12) se obtiene que

Monografias.com

Monografias.com

Monografias.com

Monografias.com

Monografias.com

Monografias.com

Así el teorema queda demostrado.

Lema 5: Si Monografias.comy Monografias.comentonces

Monografias.com (13)

Demostración: Dado que 1 y 1 son raíces de orden n para Monografias.comy teniendo en cuenta que Monografias.comresulta que 1 y 1 seguirán siendo raíces de Monografias.comIntegrando por partes,

Monografias.com

, resulta que se verifica la igualdad (12), puesto que

Monografias.com

Teorema 5: Si Monografias.comes el polinomio de Legendre de grado Monografias.comy Q es una función polinomio de grado menor que Monografias.comentonces

Monografias.com (14)

Demostración: Puesto que la función polinomio Q es combinación lineal de las funciones polinomios Monografias.comes suficiente demostrar que

Monografias.com

, donde Monografias.comAplicando kveces sucesivamente el lema 5, y teniendo en cuenta que Monografias.comse obtiene que

Monografias.com

Monografias.com

...................................................................

Monografias.com

Dado que, 1 y 1 son ceros de orden Monografias.comde Monografias.com,  1 y 1 serán ceros también Monografias.comy así

Monografias.com

Por tanto Monografias.comy el teorema queda demostrado.

Observación 1: Si Monografias.comy Monografias.comentonces

Monografias.com (15)

En efecto, suponiendo que en el teorema anterior Monografias.comresulta que la integral (14) es una combinación lineal la de integrales del tipo (14) que son todas nulas.

Teorema 6: Si Monografias.comes el polinomio de Legendre de grado n, entonces

Monografias.com (16)

Demostración: De la definición (1) de los polinomios de Legendre resulta que

Monografias.com

, donde

Monografias.com (17)

Así,

Monografias.com (18)

, puesto que, según el teorema 5, los integrales que contienen Monografias.comson nulos. Por otra parte, sustituyendo a Monografias.compor Monografias.comen la fórmula de recurrencia (3), se obtiene que

Monografias.com

, y así

Monografias.com (19)

Dado que, según el teorema 5, la segunda integral en la expresión de Monografias.comes cero, resulta que

Monografias.com (20)

Es fácil comprobar que Monografias.comy así Monografias.com, cualquiera que sea Monografias.comen N*. Según (20),

Monografias.com

, y así

Monografias.com (21)

Ahora, de (16) y (18) resulta que

Monografias.com

Monografias.com

, donde

Monografias.com, Monografias.com

Observación 2: En el espacio vectorial Monografias.comde las funciones polinomio de grado menor o igual que Monografias.comel producto escalar de Monografias.comse puede definir de la manera siguiente:

Monografias.com (22)

, y por tanto

Monografias.com

Si las funciones Monografias.comse definen por

Monografias.com

, entonces, según la observación1 y el teorema 4, las funciones Monografias.comMonografias.comforman una base orto-normal de Monografias.comlo que quiere decir que

Monografias.com

Ahora se puede considerar la seria Fourier asociada a la función Monografias.com

Monografias.com (23)

Para que pueda tener lugar la igualdad

Monografias.com (24)

, es preciso determinar los coeficientes de Fourier Monografias.comteniendo en cuenta que las funciones Monografias.comMonografias.comforman un sistema orto-normal sobre el intervalo Monografias.com

Monografias.com

, es decir

Monografias.com Monografias.com (25)

En la teoría general de las series Fourier se demuestra que si la función Monografias.comcumple ciertas condiciones sobre el intervalo Monografias.comentonces la serie Fourier con los coeficientes (23) converge a Monografias.com

Ejercicio 1: Calcular la integral

Monografias.com

De la relación de recurrencia (3) resulta que

Monografias.com

, y así

Monografias.com

Según la observación 1, la primera integral es nula, luego, según el teorema 6, la segunda integral vale . Por tanto,

Monografias.com

Ejercicio 2: Calcular la integral:

Monografias.com

Sustituyendo en la fórmula de recurrencia (3) Monografias.compor Monografias.com

Monografias.com

, de donde resulta que

Monografias.com

Continuando con el mismo tipo de razonamiento que en el ejercicio anterior, se obtiene que

Monografias.com

Teorema 7: En el intervalo Monografias.comel polinomio Monografias.comtiene Monografias.comceros reales.

Demostración: Obviamente 1 y 1 son ceros de orden Monografias.comde la función

Monografias.com

, y así 1 y 1 son ceros también para sus derivadas, hasta la derivada de orden Monografias.cominclusive:

Monografias.com

Monografias.com

Sea Monografias.comla propiedad de que una función tiene por lo menos Monografias.comceros en el intervalo Monografias.comy sea Monografias.comPuesto que Monografias.comse anula para Monografias.comresulta que Monografias.comSi Monografias.comentonces existen Monografias.comtal que

Monografias.com, Monografias.comMonografias.com

Aplicando ahora el teorema de Rolle para la función Monografias.comen losMonografias.comintervalos

Monografias.com

, resultará que Monografias.comse anulará por lo menos una vez en el interior de cada uno de estos intervalos. Por tanto Monografias.comAsí Monografias.comy la función Monografias.comtendrá la propiedad Monografias.comTeniendo en cuenta que la función Monografias.comes un polinomio de grado Monografias.comy que no puede tener más que Monografias.comceros, resulta que resulta que Monografias.comtendrá exactamente Monografias.comceros reales distintos, situados en el intervalo Monografias.com

Observación 3: De la relación (11) resulta que la función Monografias.comes par o impar, según que Monografias.comes un número par o impar, respectivamente. En los dos casos, los ceros de Monografias.comserán dispuestas de manera simétrica en el intervalo Monografias.comes decir, si Monografias.comson los ceros de Monografias.comen orden creciente, entonces

Monografias.com (26)

, cualquiera que sea i, tal que Monografias.comSi Monografias.comes impar, es decir Monografias.comentonces para Monografias.comen la relación (26) resulta que Monografias.comes decir Monografias.com

El código siguiente permite calcular los ceros de los polinomios de Legendre de grado menor que 25 y se exponen los 14 decimales después del punto decimal.

Public Function CerosPolLeg(ByVal g) As String

Dim i As Integer, y() As Double, z() As Double

Dim ceros() As Double, rr() As Double, m As Integer, st As Double

Dim res As String, rc As String, n1 As Integer, g1 As Integer

If g = 0 Then

CerosPolLeg = "¡P0 no tiene ceros!"

Exit Function

End If

If g = 1 Then

CerosPolLeg = "El único cero de P1 es x = 0"

Exit Function

End If

rc = Chr$(13) + Chr$(10): g1 = Int(g / 2): st = 0.013

ReDim z(g), ceros(g1)

y() = PolLeg(g)

For i = 0 To g: z(i) = y(i): Next i

Do

rr() = Rastreo(z(), 0, 1, st)

n1 = UBound(rr())

If rr(n1, 1) <> 0 Then

Exit Do

Else

st = st * 0.13

End If

Loop

For i = 1 To n1

ceros(i) = Bipartp(z(), rr(i, 1), rr(i, 2))

Next i

res = "": m = g Mod 2

For i = n1 To 1 Step -1

res = res + "-" + Format$(ceros(i), "0.##############") + rc

Next i

If m = 1 Then res = res + "0" + rc

For i = 1 To n1

res = res + Format$(ceros(i), "0.##############") + rc

Next i

CerosPolLeg = res

End Function

' ---------------------------------------------------------------------------------------------------------------

Public Function Bipartp(ByRef p() As Double, ByVal xa As Double, ByVal xb As Double) As Double

Dim a As Double, b As Double, c As Double, fc As Double

Dim n1 As Integer, n0 As Integer, n As Integer

a = xa: b = xb

Do

c = (a + b) / 2

fc = Vp(p(), c)

If Sgn(Vp(p(), a)) <> Sgn(fc) Then

b = c

Else

a = c

End If

If Abs(a - b) < 0.00000000000001 Then Exit Do

Loop

If Abs(c) < 0.000000000001 Then c = 0

Bipartp = c

End Function

' ---------------------------------------------------------------------------------

Public Function Vp(ByRef pz() As Double, ByVal z As Double) As Double

Dim fz As Double, gz As Integer, j As Integer

gz = UBound(pz())

fz = pz(0)

For j = 1 To gz

fz = fz * z + pz(j)

Next j

Vp = fz

End Function

' ---------------------------------------------------------------------------------

Public Function Rastreo(ByRef py() As Double, ByVal ai As Double, ByVal bi As Double, st As Double)

Dim i As Double, g As Integer, k As Integer

Dim c As Double, fa As Double, fb As Double, fc As Double

Dim u() As Double, ni As Integer, g1 As Integer

g = UBound(py): k = 1: g1 = Int(g / 2)

ReDim u(g1, 2)

For i = ai To bi Step st

If i <> ai Then

fa = fb

Else

c = i

fc = Vp(py(), c)

fa = fc

End If

If i + st < bi Then

c = i + st

Else

c = bi

End If

fc = Vp(py(), c)

fb = fc

If (fa < 0 And fb > 0) Or (fa > 0 And fb < 0) Then

u(k, 1) = i: u(k, 2) = i + st

ni = k

k = k + 1

End If

Next i

Rastreo = u()

End Function

En el caso del polinomio Monografias.comse obtienen los ceros siguientes:

-0.94910791234275, -0.7415311855994, -0.4058451513774, 0, 0.94910791234275, 0.7415311855994, 0.4058451513774

Si se quieren obtener los ceros de los polinomios con mayor precisión o se quieren calcular los ceros de un polinomio de grado mayor que 24, hay que utilizar otro código que trabaja con enteros y decimales extra-largos [4], [5] y que se expone a continuación.

Public Function CalCPLegNG(ByRef g As Integer, pr) As String

Dim i As Integer, y() As String, z() As String, gg As Integer

Dim ceros() As String, rr() As String, m As Integer, n1 As Integer

Dim res As String, rc As String, st As String

If g = 0 Then

CalCPLegNG = "¡P0 no tiene ceros!"

Exit Function

End If

If g = 1 Then

CalCPLegNG = "El único cero de P1 es x = 0"

Exit Function

End If

If g < 32 Then st = "0.013" Else st = "0.0013"

ReDim z(g), ceros(g)

rc = Chr$(13) + Chr$(10)

y() = PolLegNG(g)

For i = 0 To g

z(i) = y(i)

Next i

Do

rr() = RastreoNG(z(), 0, 1, st)

n1 = UBound(rr())

If rr(n1, 1) <> "" Then

Exit Do

Else

x(1) = st: x(2) = "0.13": st = MultiplicarDec(x(), n)

End If

Loop

For i = 1 To n1

ceros(i) = BipartpNG(z(), rr(i, 1), rr(i, 2), pr)

Next i

res = "Los ceros del polinomio " + "P" + Mid$(Str$(g), 2) + "(x) son: " + rc

m = g Mod 2

For i = n1 To 1 Step -1

res = res + "-" + ceros(i) + rc

Next i

If m = 1 Then res = res + "0" + rc

For i = 1 To n1

res = res + ceros(i) + rc

Next i

CalCPLegNG = res

End Function

' ---------------------------------------------------------------------------------

Public Function BipartpNG(ByRef p() As String, ByVal xa As String, ByVal xb As String, ByVal pr As Integer) As String

Dim i As Integer, a As String, b As String, c As String, fc As String, x(2) As String

Dim fa As String, dif As String, n As Integer, prod As String, prec As String

' pr es el número de cifras a calcular después del punto decimal.

n = 7: a = xa: b = xb: prec = "0."

For i = 1 To pr: prec = prec + "0": Next i

prec = prec + "1"

Do

x(1) = a: x(2) = b: c = SumarDec(x(), n): c = DividirPor2Dec(c, n)

fc = VpNG(p(), c): fa = VpNG(p(), a)

x(1) = fa: x(2) = fc: prod = MultiplicarDec(x(), n)

If Left$(prod, 1) = "-" Then

b = c

Else

a = c

End If

x(1) = a: x(2) = b: dif = RestarDec(x(), n)

If Left$(dif, 1) = "-" Then dif = Mid$(dif, 2)

x(1) = dif: x(2) = prec: dif = RestarDec(x(), n)

If Left$(dif, 1) = "-" Then Exit Do

Loop

BipartpNG = Left$(c, pr + 2)

End Function

' ---------------------------------------------------------------------------------

Public Function VpNG(ByRef pz() As String, ByVal z As String) As String

Dim fz As String, gz As Integer, j As Integer, x(2) As String, n As Integer

n = 7: gz = UBound(pz())

fz = pz(0)

For j = 1 To gz

x(1) = fz: x(2) = z: x(1) = MultiplicarDec(x(), n)

x(2) = pz(j): fz = SumarDec(x(), n)

Next j

VpNG = fz

End Function

' -----------------------------------------------------------------------------------------------------

Public Function RastreoNG(ByRef py() As String, ByVal ai As String, ByVal bi As String, ByVal st As String) As Variant

Dim i As String, g As Integer, k As Integer, x(2) As String

Dim c As String, fa As String, fb As String, fc As String, r As String

Dim u() As String, sgfa As String, sgfb As String, dif As String

Dim g1 As Integer, t As Single, ist As String, n As Integer

g = UBound(py): g1 = Int(g / 2): k = 1: n = 7

ReDim u(g1, 2)

i = ai

Do

If i <> ai Then

fa = fb

Else

fa = VpNG(py(), ai)

End If

x(1) = i: x(2) = st: ist = SumarDec(x(), n)

x(1) = ist: x(2) = bi: r = RestarDec(x(), n)

If Left$(r, 1) = "-" Then

c = ist

Else

c = bi

End If

fc = VpNG(py(), c)

fb = fc

x(1) = fa: x(2) = fb: r = MultiplicarDec(x(), n)

If Left$(r, 1) = "-" Then

u(k, 1) = i: u(k, 2) = ist

k = k + 1

End If

x(1) = bi: x(2) = ist

dif = RestarDec(x(), n)

If Left$(dif, 1) = "-" Then Exit Do

i = ist

Loop

RastreoNG = u()

End Function

Si en el caso del polinomio Monografias.comlos ceros se quieren calcular con 24 decimales después del punto decimal Monografias.comel resultado de los cálculos (sin redondeo) será el siguiente:

Monografias.com

Los ceros de Monografias.comcalculados con 12 cifras después del punto decimal son:

-0.998540200636, -0.992316392138, -0.981151833077, -0.965099650422,

-0.944239509118, -0.918675259984, -0.888534238285, -0.853966595004,

-0.815144539645, -0.772261479248, -0.725531053660, -0.675186070666,

-0.621477345903, -0.564672453185, -0.505054391388, -0.442920174525,

-0.378579352014, -0.312352466502, -0.244569456928, -0.175568014775,

-0.105691901708, -0.035289236964, 0.035289236964, 0.105691901708,

0.175568014775, 0.244569456928, 0.312352466502, 0.378579352014,

0.442920174525, 0.505054391388, 0.564672453185, 0.621477345903,

0.675186070666, 0.725531053660, 0.772261479248, 0.815144539645,

0.853966595004, 0.888534238285, 0.918675259984, 0.944239509118,

0.965099650422, 0.981151833077, 0.992316392138, 0.998540200636

Teorema 8: Los polinomiosMonografias.comde Legendre son soluciones de la ecuación diferencial siguiente:

Monografias.com (27)

Si Monografias.com, por derivación resulta que

Monografias.com (28)

Derivando Monografias.coma ambas partes la última igualdad de (28) según la fórmula (4) de Leibniz, se obtiene que

Monografias.com

Monografias.com

Monografias.com

Monografias.com (29)

Partes: 1, 2

Página siguiente 

Comentarios


Trabajos relacionados

  • Distribución Normal

    Distribución Normal. Función de densidad. La distribución binomial. Esta distribución es frecuentemente utilizada en l...

  • Estructura y funcionamiento del Programa Raíces

    Carlos alberto PérezEl programa esta compuesto por la función principal raices y 9 subfunciones: Raices (principal; Cuad...

  • El poder del Solver

    Ejemplo de cómo usar "SOLVER". En estos tiempos donde se habla de la tecnología, información, sociedad del conocimient...

Ver mas trabajos de Matematicas

 
 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.


Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.