Monografias.com > Matemáticas
Descargar Imprimir Comentar Ver trabajos relacionados

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 

    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.

    Categorias
    Newsletter