22
1.3 INTERPOLACIÓN Y DERIVACIÓN NUMÉRICA Toda información numérica guardada en la memoria de un computador siempre tiene una forma discreta. Particularmente, la dependencia funcional entre dos variables, en un computador se define sobre una malla discreta ( ) , 1, 2, , i i y f x i N = = . El conjunto de los puntos , 1, 2, , i xi N = ordenados en una orden creciente se llaman los nodos de la malla y el conjunto de los números , 1, 2, , i yi N = son valores de una función sobre esta malla discreta. Si estos conjuntos tienen una información escasa y se necesita para algunos objetivos completarla, es decir reponer los valores de esta función en los puntos adicionales (por ejemplo, para graficar esta función) entonces hay que elaborar los métodos matemáticos para realizar esta operación llamada interpolación. Para funciones de una sola variable esta operación se llama la operación unidimensional, de dos variables interpolación bidimensional, etc. Definición 1 Dados los valores de una función desconocida () y f x = sobre una malla ( ) , 1, 2, , i i y f x i N = = , el problema de interpolación unidimensional consiste en la búsqueda de los valores de esta función en los puntos x que están localizados fuera de esta malla. En Fig.1 se muestra un ejemplo de complementación de los puntos adicionales usando la interpolación lineal y cúbica. En el primer caso esta complementación se realiza usando las líneas rectas que forman un polígono y en el segundo caso usando pedazos las curvas dadas por las funciones cubicas. Esta figura nos da una ilustración que el problema de interpolación no tiene la solución única. Al revés, hay un número infinito de posibles soluciones de este problema, ya que los datos faltantes se pueden completar de manera arbitraria, procurando cada vez que las curvas deben pasar por los algunos puntos fijos correspondientes a los datos sobre la malla discreta. Los problemas de este tipo en las matemáticas se llaman mal puestos- Definición 2 El problema que satisface a una o varias de las tres siguientes condiciones se llama mal puesto: 1) El problema no tiene solución 2) El problema tiene varias o un número infinito de soluciones 3) Cualquiera sea pequeñas cambios de los datos necesarios para solucionar el problema cambian drásticamente el resultado Generalmente, los problemas mal puestos son problemas inversos. En un problema directo unidimensional se sugiere hallar una tabla de correspondencia ( ) , 1, 2, , i i y f x i N = = sobre una malla dada a partir de una dependencia () y f x = dada en una forma explícita (dependencia funcional) o una forma implícita mediante una regla (como una solución de una ecuación algebraica, diferencial o integral o un algoritmo o pseudocódigo). En un problema inverso unidimensional se sugiere hallar una dependencia () y f x = definida en una forma explícita (dependencia funcional) o una forma implícita mediante una regla (como una solución de una ecuación algebraica, diferencial o integral, o un algoritmo o pseudocódigo) usando una tabla de correspondencia ( ) i i y f x = dada sobre una malla discreta. El problema de interpolación igual como el problema de la diferenciación numérica a partir de una tabla dada sobre una malla discreta presentan unos ejemplos más claros de problemas inversos y mal puestos. Está claro que la interpolación satisface las condiciones 2 y 3 y por eso es un problema mal puesto. Para transformarlo en un problema bien puesto es indispensable imponer algunas restricciones sobre tipos de funciones que estamos buscando o en otros palabras disminuir de alguna manera el número de posibles funciones que sean “razonables”. El significado del término “razonable” puede variarse de problema a problema y trataremos definirlo en una forma matemáticamente rigurosa. Consideremos el conjunto de todas las funciones que pueden considerarse en calidad las funciones interpolantes como un espacio completo de dimensión infinito, en que cada función cumple N condiciones. En este espacio completo el problema de interpolación es mal puesto. Entonces, la única opción para transformarlo en un problema bien puesto es restringir la búsqueda dentro un subespacio donde existe la solución única de este problema. Esta idea se entiende mejor al considerar un ejemplo de un problema similar en el espacio de Euclides de vectores 3D. Un espacio Fig.1.3.1 Un ejemplo de interpolación unidimensional

1.3 INTERPOLACIÓN Y DERIVACIÓN NUMÉRICA Methods/APUNTES...Existe una variedad grande de diferentes algoritmos de interpolación que se clasifican por los tipos de las mallas usadas

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • 1.3 INTERPOLACIÓN Y DERIVACIÓN NUMÉRICA

    Toda información numérica guardada en la memoria de un

    computador siempre tiene una forma discreta. Particularmente, la

    dependencia funcional entre dos variables, en un computador se define

    sobre una malla discreta ( ) , 1,2, ,i iy f x i N= = . El conjunto de los

    puntos , 1,2, ,ix i N= ordenados en una orden creciente se llaman los

    nodos de la malla y el conjunto de los números , 1,2, ,iy i N= son

    valores de una función sobre esta malla discreta. Si estos conjuntos

    tienen una información escasa y se necesita para algunos objetivos

    completarla, es decir reponer los valores de esta función en los puntos adicionales (por ejemplo, para graficar esta función) entonces hay

    que elaborar los métodos matemáticos para realizar esta operación llamada interpolación. Para funciones de una sola variable esta

    operación se llama la operación unidimensional, de dos variables interpolación bidimensional, etc.

    Definición 1 Dados los valores de una función desconocida ( )y f x= sobre una malla ( ) , 1,2, ,i iy f x i N= = , el problema de

    interpolación unidimensional consiste en la búsqueda de los valores de esta función en los puntos x que están localizados fuera de esta

    malla. En Fig.1 se muestra un ejemplo de complementación de los puntos adicionales usando la interpolación lineal y cúbica. En el

    primer caso esta complementación se realiza usando las líneas rectas que forman un polígono y en el segundo caso usando pedazos las

    curvas dadas por las funciones cubicas. Esta figura nos da una ilustración que el problema de interpolación no tiene la solución única. Al

    revés, hay un número infinito de posibles soluciones de este problema, ya que los datos faltantes se pueden completar de manera arbitraria,

    procurando cada vez que las curvas deben pasar por los algunos puntos fijos correspondientes a los datos sobre la malla discreta. Los

    problemas de este tipo en las matemáticas se llaman mal puestos-

    Definición 2 El problema que satisface a una o varias de las tres siguientes condiciones se llama mal puesto:

    1) El problema no tiene solución

    2) El problema tiene varias o un número infinito de soluciones

    3) Cualquiera sea pequeñas cambios de los datos necesarios para solucionar el problema cambian drásticamente el resultado

    Generalmente, los problemas mal puestos son problemas inversos. En un problema directo unidimensional se sugiere hallar una tabla de

    correspondencia ( ) , 1,2, ,i iy f x i N= = sobre una malla dada a partir de una dependencia ( )y f x= dada en una forma explícita

    (dependencia funcional) o una forma implícita mediante una regla (como una solución de una ecuación algebraica, diferencial o integral o

    un algoritmo o pseudocódigo). En un problema inverso unidimensional se sugiere hallar una dependencia ( )y f x= definida en una forma

    explícita (dependencia funcional) o una forma implícita mediante una regla (como una solución de una ecuación algebraica, diferencial o

    integral, o un algoritmo o pseudocódigo) usando una tabla de correspondencia ( ) i iy f x= dada sobre una malla discreta. El problema de

    interpolación igual como el problema de la diferenciación numérica a partir de una tabla dada sobre una malla discreta presentan unos

    ejemplos más claros de problemas inversos y mal puestos.

    Está claro que la interpolación satisface las condiciones 2 y 3 y por eso es un problema mal puesto. Para transformarlo en un

    problema bien puesto es indispensable imponer algunas restricciones sobre tipos de funciones que estamos buscando o en otros palabras

    disminuir de alguna manera el número de posibles funciones que sean “razonables”. El significado del término “razonable” puede variarse

    de problema a problema y trataremos definirlo en una forma matemáticamente rigurosa. Consideremos el conjunto de todas las funciones

    que pueden considerarse en calidad las funciones interpolantes como un espacio completo de dimensión infinito, en que cada función

    cumple N condiciones. En este espacio completo el problema de interpolación es mal puesto. Entonces, la única opción para

    transformarlo en un problema bien puesto es restringir la búsqueda dentro un subespacio donde existe la solución única de este problema.

    Esta idea se entiende mejor al considerar un ejemplo de un problema similar en el espacio de Euclides de vectores 3D. Un espacio

    Fig.1.3.1 Un ejemplo de interpolación unidimensional

  • formado por todos vectores unitarios (de longitud uno) en 3D 2 2 2 1, 1,2,3,4k k x k y k z k k kx y z x y z k= + + + + = =r e e e tiene un

    número infinito de elementos, que consiste en todos vectores con diferentes orientaciones y sentidos posibles de longitud uno. Pero si

    nosotros en el espacio completo 3D consideremos un subespacio 1D de vectores paralelos al eje X entonces en este subespacio (una parte

    del espacio 3D) existe solo un único vector unitario x=r e .

    Usando esta analogía se puede esperar que el problema de interpolación pudiera tener la única solución y transformarse en un

    problema bien puesto si la búsqueda de su solución restringir en un subespacio de dimensión N (una parte del espacio completo).

    Siguiendo nuestra analogía podemos definir un subespacio de dimensión N, como un conjunto de todas funciones que pueden expresarse

    como una combinación lineal de N funciones de base ( ) , 1,2, ,k x k N = . Cualquiera función ( )NP x perteneciente a este subespacio

    puedes expresarse como una combinación de estas funciones de base

    ( ) ( )1

    N

    N k k

    k

    P x C x=

    = , (1.3.1)

    donde los coeficientes kC pueden interpretarse como las proyecciones correspondientes de sobre las funciones de base ( )k x . En

    adelante, llamaremos las funciones ( )NP x los polinomios generalizados y cualquiera función que puede representarse en esta forma

    consideremos como una proyección sobre subespacio elegido.

    Ahora bien, si nosotros queremos transformar el problema de interpolación de una función ( )y f x= sobre una malla

    ( ) , 1,2, ,i iy f x i N= = en un problema bien puesta restringimos nuestra búsqueda con la condición que la función interpolante debe

    tener una forma de un polinomio generalizado, ( )NP x y esta función, definida de esta manera puede considerarse como una proyección de

    la función incógnita ( )y f x= sobre un subespacio seleccionado. Además, la función interpolante en los nodos de la malla debe cumplir

    cumple las condiciones adicionales

    ( ) ( ) ( ) ( ) ( )1 1

    ; ; 1,2, ,N N

    N k k N i k k i i

    k k

    y f x P x C x P x C x y i N = =

    = = = = = (1.3.2)

    Según las fórmulas (1.3.2) el proceso de construcción de la función interpolante ( )NP x un una forma de un polinomio generalizado

    consiste en la selección del conjunto de N funciones de base ( ) , 1,2, ,k x k N = y en la búsqueda posterior de N coeficientes kC . Si el

    número de los nodos de la malla N en el problema de interpolación coincide con el número de las funciones de base ( ) , 1,2, ,k x k N =

    escogidas entonces en la mayoría de los casos los coeficientes n C se definen uniformemente. En realidad, la función interpoladora (1.3.1)

    debe satisfacer los N condiciones (1.3.1) las cuales corresponden corresponden un sistema de ecuaciones algebraicas lineales que se puede

    escribir en la siguiente forma matricial:

    Según las formulas (1.3.3) y (1.3.4), en el caso cuando la función interpoladora se busca en la forma de una combinación lineal (1.3.2) de

    las funciones de base ( ) , 1,2, ,k x k N = dadas, el algoritmo de la interpolación es muy simple y consiste en solamente de dos pasos:

    1) calcular los valores de las funciones de la base en los nodos de la malla ( ); , 1,2, ,k ix i k N = que son los elementos matriciales de la

  • construir la matriz ˆA, invertir la matriz ˆA y después hallar los coeficientes C multiplicando la matriz inversa por el vector Y f según la

    formula (1.3.3) formado por valores de la función , 1,2, ,iy i N= en los nodos de la malla. Hay que anotar que este algoritmo se puede

    realizar solo cuando el determinante de la matriz A no es igual a cero, es decir det 0A

    Más corta es la tabla , , 1,2, ,i ix y i N= , el menor es la dimensión del subespacio y más rápido pueden calcularse los valores de la

    función usando la fórmula (1.3.1). Los objetivos del uso de las fórmulas de interpolación son múltiples, pero objetivo principal consiste en

    la elaboración de un algoritmo rápido para encontrar los valores de una función fuera de una tabla , , 1,2, ,i ix y i N= dada. Funciones

    interpoladoras se utilizan también para calcular las derivadas y las integrales, y lo que es más importante estas funciones se utilizan para

    elaboración diferentes algoritmos de los métodos numéricos para resolver diferentes tipos de ecuaciones tanto algebraicas como

    diferenciales e integrales.

    Existe una variedad grande de diferentes algoritmos de interpolación que se clasifican por los tipos de las mallas usadas y por el

    tipo de las funciones de base que se utilizan. En la mayoría de los algoritmos se utiliza la malla equidistante con un paso fijo h (distancia

    entre dos nodos adyacentes) para la cual las coordenadas de los nodos están definidas mediante la relación:

    ( )1 1 ; 1,2, ,ix x i h i N= + − = (1.3.5)

    En calidad de las funciones de base más frecuentemente se utilizan los polinomios, las funciones trigonométricas o los splines cúbicos.

    Respectivamente las fórmulas de interpolación se llaman el interpolante polinomial, el interpolante trigonométrico o la interpolación

    mediante Splines cúbicos.

    Si, por ejemplo, en calidad de las funciones de base se escogen las funciones de potencias

    ( ) 1, 1,2, ,kk x x k N −= = (1.3.6)

    la función interpoladora es un polinomio de potencias. Si como las funciones de base se escogen las funciones trigonométricas

    ( ) ( )( ) ( ) ( ) 2 1 2sin 2 1 , cos , 1,2, ,k kx k x x kx k N − = − = = (1.3.7

    la función interpoladora es un polinomio trigonométrico.

    En la interpolación segmentaria a diferencia de la interpolación global, todo el intervalo analizado con N nodos se divide en varios

    segmentos con un número de nodos reducido y la función interpolante se construye dentro cada segmento de manera independiente con la

    única condición que en las fronteras de segmentos las funciones interpolantes de diferentes segmentos se ajusten de manera mejor posible.

    En el caso más sencillo, cuando cada segmento tiene solo dos nodos, la función interpolante presenta un polígono, similar a que se ve in

    Fig. 1.3.1. Pero más usada en las diferentes aplicaciones de los métodos numéricos es la interpolación segmentaria con los splines

    cúbicos, cuando cada segmento tiene 4 puntos. Diferentes técnicas de la interpolación segmentaria, incluyendo mediante del uso elementos

    finitos discutiremos al final de este capítulo.

    1.3.1 Interpolación polinomial.

    La clase más importante de las funciones de base para la interpolación es el conjunto de los polinomios algebraicos. Para esto hay

    varias razones; los polinomios es fácil de evaluar directamente, sumar, multiplicar, integrar y derivar. Por supuesto y otras clases de

  • funciones pueden tener todas las ventajas anteriores y pudieran utilizarse también para este objetivo. Afortunadamente, hay otra razón

    para escoger los polinomios a consecuencia del siguiente teorema de Weierstrass: “Para cualquiera función ( )y f x= continua dentro del

    segmento ,a b y para cualquier pequeño valor existe un polinomio de orden ( )N N = , para el cual dentro del segmento se cumple la

    desigualdad ( ) ( )Nf x P − .

    A pesar de que este teorema dice que las funciones pueden aproximarse a través de polinomios estos polinomios son generalmente de

    alto grado, tal que es poco práctico el uso de este teorema. Por otra parte, el teorema de Weierstrass nos dice nada acerca de un criterio para

    seleccionar un polinomio de interpolación satisfactorio para un determinado conjunto de datos , , 1,2, ,i ix y i N= . En la consecuencia

    de la ausencia de este criterio la interpolante polinomial es muy sensible a los pequeños errores en los datos de la entrada. Sin embargo, la

    interpolación polinomial es un instrumento importante para la elaboración de diferentes algoritmos de lo los métodos numéricos para

    cálculo de las integrales y para solución de las ecuaciones diferenciales e integrales.

    La fórmula para la interpolación polinomial se obtiene al sustituir las funciones de base consigue si nosotros en la formula (2.1)

    escogeremos las funciones de base (1.3. 6) ( ) 1, 1,2, ,kk x x k N −= = en las ecuaciones (1.3.2. En este caso la función interpoladora es

    un polinomio del orden N-1:

    ( ) ( ) ( ) 2 11 2 31

    NN

    N k k N

    k

    f x P x C x C C x C x C x −

    =

    = = + + + + (1.3.9)

    Como ningunos dos nodos de la malla , 1,2, ,ix i N= no coinciden, el determinante no es igual a cero, det 0A el sistema de

    ecuaciones lineales (2.5) siempre tiene solución única la que permite encontrar un polinomio interpolador. Esto demuestra que existe la

    única función polinomial de orden N-1 la que satisface la condición

    ( )1

    11

    1

    ; 1,2, ,N

    kN i k i i

    k

    P x C x y i N−

    −−

    =

    = = = . (1.3.12)

    Sin embargo, se puede demostrar que cuando el número de nodos es grande la matriz A casi siempre es mal condicionada, es

    decir, cuando nosotros tratamos encontrar un polinomio interpolante global, cualquier pequeño error en los valores dados de la función en

    los nodos de la malla conduce a un cambio brusco en el comportamiento de la función interpoladora. En otras palabras unas variaciones

    locales muy pequeñas en los datos producen unos cambios fuertes en el comportamiento global de la función interpoladora. Por esta razón,

    en los casos cuando los datos pueden tener algunos errores es preferible usar una interpolación segmentaria (i. e. analizar la información

    parte por parte) que una interpolación global.

    Los resultados anteriores se pueden formular en una forma del siguiente teorema “Dados los valores de una función

    desconocida ( )y f x= sobre una malla ( ) , 1,2, ,i iy f x i N= = , existe una y solo una la función interpolante polinomial de la forma

  • ( ) ( ) 2 11 2 3N

    N Nf x P x C C x C x C x− = + + + + cuyos coeficientes ; 1,2, ,kC k N= son las soluciones de un sistema de las ecuaciones

    algebraicas lineales (1.3.10).

    1.3.2 Formula de Lagrange

    Aplicando las formulas (1.3.9) y teniendo en cuenta que la matriz inversa para este caso según las formulas (1.3.10), (1.3.11) los

    coeficientes ; 1,2, ,kC k N= se puede encontrar en la forma analítica y derivar la siguiente fórmula para la función interpolante

    polinomial conocida como interpolador de Lagrange:

    La demostración de la fórmula de Lagrange es simple. En realidad, por un lado, existe solo un polinomio interpolador de orden N-

    1, y, por otro lado, las fórmulas (1.3.13) definen precisamente el polinomio de orden N-1, que satisface las condiciones (1.3.12). Por esta

    razón, las fórmulas (1.3.13) presentan este único interpolador polinomial y no existe ninguno otro.

    La fórmula de Lagrange en los casos más importantes para los interpolantes lineales y cuadráticos que se usan en la interpolación

    segmentaria que discutiremos más adelante se ve mucho mas simple. En el caso cuando la malla consiste de solo dos nodos, el polinomio

    de Lagrange es lineal

    ( ) ( ) ( ) 2 11 1 1 2 2 1 21 2 2 1

    x x x xP x x y x y y y

    x x x x

    − −= + = +

    − − (1.3.14)

    Para una malla con tres nodos el polinomio de Lagrange presenta una función cuadrática:

    ( ) ( ) ( ) ( ) 3 32 1 1 22 1 1 2 2 3 3 1 2 31 2 1 3 2 1 2 3 3 1 3 3

    x x x xx x x x x x x xP x x y x y x y y y y

    x x x x x x x x x x x x

    − −− − − −= + + = + +

    − − − − − − (1.3.15)

    A pesar de que la fórmula de Lagrange a primera vista parece muy complicada incluso una monstruosa, el algoritmo

    correspondiente es muy simple y como se puede ver del pseudocódigo que presentamos a continuación el no contiene más que una decena

    de las instrucciones. (¡Estúdielo con mucha atención con su cada paso y aprenda con este ejemplo como se puede unas fórmulas largas

    transformar en un algoritmo muy corto!)

    ( ) ( ) _ ( , , , )

    (*Se calcula el valor de la interpolante de Lagrange en el punto x

    para una función cuyos valores ye(i) estan dados sobre la malla ( ), 1,2,3,...,

    Paráme

    Function Fun lagrnge xe ye ne x

    xe i i ne

    =

    ( )

    ( )

    tros de entrada : ( ), ( ), , ; Parámetro de salida _ *)

    0; 1;

    (*buclesobre nodos de la malla*)

    (* Cálculo del factor de Lagrange*)

    1; 1; (*buclesobre nodos de la malla*)

    (

    xe i ye i ne x Fun lagrnge

    s i

    while ï ne do

    l j while j ne do

    if

    ) ( - ( )) / ( ( ) - ( )) ;

    (*Cálculo de la suma *)

    * ( ) ;

    _

    j i then l l x xe j xe i xe j

    s

    s s l ye i

    Fun lagrnge s

    =

    +

  • A continuación se presenta un ejemplo de aplicación el algoritmo para definir un polinomio interpolador para la función ( ) sinf x x=

    dada en una tabla dentro del intervalo 0

  • ( ) ( ) ( ) ( )2 21 1 1 122

    ;2

    i i i i ii i i i

    y y y y yy f x O h y f x O h

    h h

    + − + −− − + = = + = = + (1.3.18)

    Estas fórmulas permiten evaluar las derivadas con una precisión hasta segunda orden de pequeñez respecto del paso de la malla h para las

    funciones definidas sobre una malla discreta y forman una base para diferentes técnicas computacionales llamadas diferencias finitas. La

    procedencia de este término está relacionada con la siguiente definición.

    Definición 1. Dadas los valores de una función sobre una malla discreta ( ); 1,2, ,i iy f x i N= = se llaman las diferencias finitas de la

    primera orden, progresiva p iy , regresiva r iy y centrada c iy definidas como

    ( ) ( )1 1 1 1; ; 0.5 0.5 ; 1,2, , 1p i i i r i i i c i p i r i i i iy y y y y y y y y y y y i N+ − + − = − = − = + = − = − , (1.3.19)

    que caracterizan los valores del incremento de la función posterior, anterior y el promedio alrededor del nodo número i.

    se llama la diferencia finita dela primera orden progresiva en el nodo número i.

    Para N valores de la función dada en N nodos se puede calcular diferencias finitas de primera orden, la progresiva (posterior) y la regresiva

    (anterior) en diferentes N-1 nodos:

    1 2 1 2 3 2 3 4 3 1 1

    2 2 1 3 3 2 4 4 3 1

    ; ; ; ;

    ; ; ;

    p p p p N N N

    a a a a N N N

    y y y y y y y y y y y y

    y y y y y y y y y y y y

    − −

    = − = − = − = −

    = − = − = − = −

    La diferencia finita centrada se puede calcular solamente en N-2 nodos

    ( ) ( ) ( ) ( )2 3 1 3 4 2 4 5 3 1 20.5 ; 0.5 ; 0.5 ; 0.5c c c c N N Ny y y y y y y y y y y y− − = − = − = − = −

    Comparando las fórmulas (1.3.19) y (1,3.18) se puede ver que la primera derivada de la función en cada nodo de la malla se

    aproxima con la precisión de la segunda orden a través de la diferencia finita centrada

    ( ) ( ) ( )2 1 1; 0.5c ii i c i i iy

    y f x O h y y yh

    + −

    = = + = − (1.3.20)

    Hay que anotar que la primera derivada se puede aproximar también usando las diferencias finitas posterior o anterior, pero en este caso

    la precisión de cálculo es solamente de la primera orden respecto de h es decir es ( )O h . Similarmente, para estimar la segunda derivada

    mediante la fórmula (¡.3.18) es mejor usar la diferencia finita centrada de segunda orden

    Definición 2. Dadas los valores de una función sobre una malla discreta ( ); 1,2, ,i iy f x i N= = se llaman las diferencias finitas de la

    segunda orden, progresiva 2p iy , regresiva 2r iy y centrada

    2c iy definidas como

    2 21 2 1 1 1 2

    21

    2 ; 2 ;

    2 ; 1,2, , 1

    p i p i p i i i i r i r i r i i i i

    c i p i r i i i i

    y y y y y y y y y y y y

    y y y y y y i N

    + + + − − −

    + −

    = − = − + = − = − +

    = − = − + = −, (1.3.21)

    Comparando las fórmulas (1.3.20) y (1,3.18) se puede ver que la segunda derivada de la función en cada nodo de la malla se aproxima con

    la precisión de la segunda orden a través de la diferencia finita centrada

    ( ) ( )2

    2 21 12

    ; 2 ; 1,2, , 1c ii c i i i iy

    f x O h y y y y i Nh

    + −

    = + = − + = − (1.3.22)

    La primera y más evidente aplicación de diferencias finitas es operación básica de la derivación numérica de las funciones dados en forma

    de una tabla sobre malla equidistante. Como hemos mencionado anteriormente para este fin es mejor usar las diferencias finitas centradas

    que permiten hall

  • sesta se presentan las diferencias entre los valores de las derivadas encontradas numéricamente y los valores exactos

    ( ) ( ) ( ) ( )2 22 exp ; 2 4 expi i i i i i i iy x x x y x x x = − − = − + − . Se puede ver las diferencias en todos casos es menor que 0.04

    parameter (np=21)

    real xp(np),yp(np),dy(np),d2y(np),d(np),d2(np)

    f(x)=x*x*exp(-x)

    df(x)=(2*x-x*x)*exp(-x)

    df2(x)=(2-4*x+x*x)*exp(-x)

    open(1, file='tab.dat')

    h=4.0/(np-1)

    do i =1,np

    x=h*(i-1)

    xp(i)=x

    yp(i)=f(x)

    d(i)=df(x)

    d2(i)=df2(x)

    end do

    do i =2,np-1

    dy(i)=(yp(i+1)-yp(i-1))/(2*h)

    end do

    do i =2,np-1

    d2y(i)=(yp(i+1)-2*yp(i)+yp(i-1))/(h*h)

    end do

    do i=2,np-1

    write(1,3) xp(i), yp(i),dy(i),d(i)-dy(i),d2y(i),d2(i)-d2y(i)

    3 format(3x,f6.2,5f8.4)

    end do

    close(1)

    stop

    end

    1.3.4 Diferencias finitas progresivas de órdenes superiores. Potencia generalizada.

    Si en los métodos numéricos para solucionar de las ecuaciones diferenciales teoría

    casi siempre se utilizan las diferencias centradas, para interpolación se utilizan todos tres

    tipos de diferencias finitas. Las correspondientes fórmulas de interpolación se llaman

    respectivamente progresiva, regresiva y centrada. Cuál de estas tres tipos e

    interpolación usar para analizar los fenómenos físicos depende del aporte del futuro, pasado

    o presente de mayor aporte en este fenómeno. Todos tres tipos son matemáticamente son

    similares con unas pequeñas diferencias. A continuación, analizaremos solamente la

    aplicación las diferencias finitas progresivas.

    Para N valores de la función dada en N nodos se puede calcular diferencias finitas

    de diferentes órdenes, la progresiva (posterior en diferentes N-1 nodos: se definen en

    acuerdo con las siguientes relaciones

    21 1 2 1

    3 3 31 3 2 1

    11

    ; 1, 1; 2 ; 1, 2;

    3 3 ; 1, 3;

    ; 1, 1

    i i i i i i i i i

    i i i i i i i

    k k ki i i

    y y y i N y y y y y y i N

    y y y y y y y i N

    y y y i N k

    + + + +

    + + + +

    ++

    = − = − = − = − + = −

    = − = − + − = −

    = − = − −

    (1.3.23)

  • En el ejemplo a continuación se muestra como se calculan las diferencias finitas de primera y segunda órdenes y sus gráficos

    correspondientes.

    En las fórmulas (1.3.23), las

    diferencias finitas de segunda y tercera

    orden se expresan en términos de los valores

    de la función en los nodos de la malla- Para

    obtener una fórmula similar para una

    diferencia finita de orden arbitraria

    introducimos un operador de traslación T̂ el cual definimos de la siguiente manera.

    ( ) ( ) ( ) ( ) ( ) ( )1 1ˆ ˆ ˆ ˆ;n n

    i i i ï i i i i n ï i nTf x f x h f x Ty y T f x f x n h f x T y y+ + + += + = = = + = = (1.3.24)

    Entre el operador de tralación T̂ y el operador de la diferencia finita existen las siguientes relaciones evidentes

    ( )( ) ( )( ) ( ) ( )

    ( )( )1 1 2

    ˆ ˆ 1;

    1 1 2 1ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1

    1! 2! 3! 1 !

    n nn n n n n n k

    T

    n n n n n n n n knT T T T T T

    k

    − − − −

    = −

    − − − − − = − = − + − + + + + −

    +

    (1.3.25)

    Estas dos fórmulas nos permiten obtener una expresión explicita para las

    diferencias finitas de las ordenes arbitrarias

    ( )( )

    ( )( ) ( )

    ( )( )

    1 2

    1ˆ ˆ 1

    1! 2!

    11 1

    1 !

    nn

    i i i n i n i n

    k n

    i n k i

    n nny T y y y y

    n n n ky y

    k

    + + − + −

    + −

    − = − = − + +

    − −+ − + + −

    +

    (1.3.26)

    En esta relación se utilizó la fórmula del binomio de Newton en la cual los

    coeficientes de la expansión forman un triángulo de Pascal. Las fórmulas

    explícitas para las diferencias finitas progresivas hasta la séptima orden se

    presentan en la tabla anexa. Consideremos el contenido de esta tabla suponiendo

    que nosotros disponemos una malla con un paso equidistante h y los valores ( ) ( )1; 1 ; 1,2, ,7i i iy f x x x h i i= = + − = de una función

    en los nodos de la malla están dados. Partiendo de estos siete valores de la función en los nodos uno puede calcular las siete diferencias

    finitas progresivas en el punto inicial usando las fórmulas del triangulo de Pascal. La pregunta es ¿es posible resolver el problema inverso,

    hallar los valores de función a partir de las diferencias finitas de la función dadas en el punto inicial? La respuesta es “si”, para esto se

    necesita solo invertir las fórmulas anteriores.

    ( )( )

    1 2 2 2 21 1 1 1 1 1

    !ˆ 1 ; ; 1,2, , ; 1, 2, , k! !

    kk k k mk ï ï k k k k k

    ky T y y y C y C y C y C y C k n m

    m k m+ = = + = + + + + + + + = = =

    − (1.3.26)

    La fórmula (1.3.26) muestra que las derivadas progresivas en el punto inicial definen uniformemente los valores en todos los nodos de la

    malla y esto da a nosotros una esperanza que estas mismas derivadas nos permiten encontrar los valores de la función en los puntos entre

    los nodos, es decir resolver el problema de interpolación. El último problema como sabemos es mal puesto y tiene la solución única solo

    si nosotros restringimos la búsqueda de una función interpolante entre los polinomios, que presentan una combinación lineal de las

    funciones de potencia y este polinomio debe coincidir con una expansión de la función en una serie de Taylor truncada en la cual las

    derivadas de la función en los los coeficientes deben ser reemplazadas por las diferencias finitas y las potencias ordinarias por las potencias

    generalizadas.

    Definición. Dada la malla discreta equidistante ( )1 1 ; 1,2,3.ix x h i i= + − = la potencia generalizada progresiva sobre esta malla se

    define como ( ) ( ) ( ) ( )( ) ( )( )1

    1 1 1 2 1 ; 1,2,3.n n

    n n nx x x x x x x x x x x x x x n−

    −− = − − = − − − − = , siendo ( ) 0

    1 1x x− =

  • Según esta definición

    ( ) ( ) ( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( ) ( ) ( ) ( )( )( )

    2

    1 1 1 1 2 1 1

    3

    1 1 2 3 1 1 1

    4

    1 1 2 3 4 1 1 1 1

    ; ;

    3 ,

    3 4 , etc

    nx x x x x x x x x x x x x x h

    x x x x x x x x x x x x h x x h

    x x x x x x x x x x x x x x h x x h x x h

    − = − − = − − = − − −

    − = − − − = − − − − −

    − = − − − − = − − − − − − −

    La introducción de este nuevo tipo de potencia esta relacionada con el siguiente teorema:

    Teorema La diferencia finita de la potencia generalizada es igual a: ( ) ( ) 1

    1 1

    n nx x h n x x

    − − = − (¡demuéstrelo!)

    Este teorema explica porque la interpolante polinomial sobre una malla equidistante llamada la fórmula de Newton representa una

    combinación lineal de las potencias generalizadas y los coofficientes de esta combinación contienen las diferencias finitas de diferentes

    ordenes

    1.3.5 Polinomio interpolador para malla equidistante. Formula de Newton.

    Siguiendo El método propuesto por Newton, buscaremos un polinomio interpolado de orden N-1 sobre una malla equidistante

    ( )1 1 ; 1,2,3, ,ix x h i i N= + − = en la forma:

    ( ) ( ) ( ) ( )( ) ( )( ) ( )1

    1 0 1 1 2 1 2 1 1 2 1

    0

    Nn

    N n n N N

    n

    P x a x x a a x x a x x x x a x x x x x x−

    − − −

    =

    = − = + − + − − + + + − − − (1.3.27)

    Nuestra tarea consiste en encontrar n coeficientes del polinomio (1.3.27) el cual satisface además las siguientes n condiciones,

    ( ) ( ) ( )( ) ( )( ) ( )1 0 1 1 2 1 2 1 1 2 1 ; 1,2, ,i N i i i i N i i i Ny P x a a x x a x x x x a x x x x x x i N− − −= = + − + − − + + + − − − = (1.3.28a)

    La coincidencia de los valores del polinomio con los valores de la función desconocida debe conducir a la coincidencia de las diferencias

    finitas de estas dos funciones, y por eso estas n condiciones pueden ser reescritas en otra forma equivalente en los términos de las

    diferencias finitas:

    ( )1 1 ; 0,2, , 1m m

    i Ny P x m N− = = − (1.3.28b)

    Utilizando las expresiones explicitas para las diferencias finitas dadas por el triángulo de Pascaly para las potencias generalizadas

    la formula (1.3.29) puede ser representada como la siguiente expansión explicita para losd términos hasta la tercera orden:

    ( ) ( ) ( )( ) ( )( )( )

    ( ) ( )

    3 2 1 4 3 2 12 11 1 1 1 2 1 2 32 3

    1

    2 3 3

    1! 2! 3!

    1 ; ; 1, 2,3, ,

    N

    i i i

    y y y y y y yy yP x y x x x x x x x x x x x x

    h h h

    x x h i y f x i N

    − + − + −−= + − + − − + − − − +

    = + − = =

    (1.3.29a)

    En realidad, la fórmula general de Newton en los cálculos actuales computacionales casi no se usa, excepto para la interpolación

    segmentaria en la forma (1.3.29a) guardando en esta expansión solamente varios términos iniciales, la cual la discutiremos en la siguiente

  • sección. Sin embargo, la fórmula general (1.3.29) se utiliza en la teoría de los métodos numéricos para elaboración de diferentes

    algoritmos para calcular las integrales y para solucionar las ecuaciones diferenciales e integrales.

    1.3.6 Interpolación segmentaria.

    Hasta ahora, el foco de nuestra discusión ha sido la interpolación de una función, cuyos valores están dados sobre una malla

    dentro un intervalo [a, b], mediante un polinomio de Lagrange o de Newton, o usando otros tipos de funciones de base. En todos casos la

    función interpolante tenía un carácter global es decir está definida por la misma expresión analítica en todo el intervalo [a, b]. Una

    alternativa que permite aproximar una función de una manera más flexible consiste en separar el intervalo [a, b] global en una serie de

    subintervalos (segmentos) locales y buscar una aproximación a trozos por polinomios de menor grado. El método de interpolar una

    función mediante un conjunto de interpolantes por los trozos independientes para cada segmento se llama la interpolación segmentaria. La

    interpolación segmentaria de una manera más sencilla puede realizarse por ejemplo a través de polinomios interpolantes de Newton

    (1.3.29a) de ordenes uno, dos o tres y se llaman respectivamente las interpolaciones lineal, cuadrática o cúbica segmentarias.

    En el primer caso, en la formula (1.3.29) aceptemos N=2 para obtener la fórmula del interpolador lineal dentro del segmento

    ( )1, , 1,2, , 2k kx x k N+ = − considerando como el punto inicial del segmento el valor , 1,2, , 2kx x k N= = −

    ( ) ( ) ( )( )1

    1 11!

    kk kk k k k k

    x xy yP x y x x y y y

    h h

    ++

    −−= + − = + − (1.3.30a)

    Para realizar una interpolación segmentaria lineal en cualquier punto x dentro del intervalo [a, b], inicialmente hay que definir el número k

    del nodo, el cual define la coordenada correspondiente a la frontera izquierda del segmento donde está comprendido el punto x a través de

    la relación ( )( )k Integer x a h= − y procurar que este número pertenece al conjunto 1,2, . 2k N − . A continuación, se presenta un

    pseudocódigo que realiza el algoritmo de la interpolación lineal segmentaria.

    ( )

    ( )

    ( ) ( ) ( )1

    _ , , , ,

    (* Interpolador lineal para un Interpolador Lineal para una función en el punto

    cuyos valores están dadossobre la malla equidistante 1 * ,

    FunctionPolinomio Lineal a h ye ne ne x

    P x x

    ye i xe i a i h

    = + −

    ( )

    ( )1

    1, 2,3,...,

    Parámetros de entrada: - inicio de intervalo , distancia entre nodos,

    valores de función en nodos, número de nodos

    Parámetro de salida: _ Interpolador Lineal e

    i ne

    a h

    ye i ne

    Polinomio Lineal P x

    =

    ( )( )

    ( )

    ( )

    n punto *)

    (* encontrar el número de segmen to donde se ubica el punt

    ; ( 1

    o *)

    /

    (*La frontera izquierda delsegmento*)

    ) 1 ; ( 2) 2 :

    1 * :

    _

    x

    x

    k Int x a h

    xk a k h

    Polinomio Lineal y

    if k k if k k N

    e

    N

    k

    + −

    − −

    + ( ) ( )( ) ( )

    1 * /ye k ye k x xk h+ − −

    En el segundo caso, en la formula (1.3.29) aceptemos N=3 para obtener la fórmula del interpolador cuadrático dentro del

    segmento ( )1, , 1,2, , 3k kx x k N+ = − considerando como el punto inicial del segmento el valor , 1,2, , 3kx x k N= = −

    ( ) ( ) ( ) ( )

    ( )( )

    ( )( ) ( )

    1 2 12 12

    11 2 1 2

    2

    1! 2!

    22

    k k k k kk k k k

    k k kk k k k k k

    y y y y yP x y x x x x x x

    h h

    x x x x x xy y y y y y

    h h

    + + ++

    ++ + +

    − − += + − + − − =

    − − −= + − + − +

    (1.3.30b)

    Para realizar una interpolación segmentaria cuadrática en cualquier punto x dentro del intervalo [a, b] iicialmente hay que definir el número

    k del nodo, el cual define la coordenada correspondiente a la frontera izquierda del segmento donde está comprendido el punto x a través de

  • la relación ( )( )k Integer x a h= − y procurar que este número pertenece al conjunto 1,2, . 3k N − . A continuación se presenta un

    pseudocódigo que realiza el algoritmo de la interpolación lineal segmentaria.

    ( )

    ( )

    ( ) ( ) ( )1

    _ , , , ,

    (* Interpolador lineal para un Interpolador Lineal para una función en el punto

    cuyos valores están dadossobre la malla equidistante 1

    FunctionPolinomio Cuadratico a h ye ne ne x

    P x x

    ye i xe i a i

    =

    +

    ( )

    * , 1, 2,3,...,

    Parámetros de entrada: - inicio de intervalo , distancia entre nodos,

    valores de función en nodos, número de nodos

    Parámetro de salida: _ Interpolador Lineal

    h i ne

    a h

    ye i ne

    Polinomio Lineal

    =

    ( )

    ( )( )

    ( )

    1 en punto *)

    (* encontrar el número de segmen to donde se ubica el punto *)

    /

    (*La frontera izquierda delsegmen

    ; ( 1) 1 ; (

    to*) 1 * :

    3) 3 :

    _

    P x x

    x

    k Int x a h

    xk a k h

    Polinomio L

    if k k if k N k N

    ineal

    + −

    − −

    ( ) ( ) ( )( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( )

    1 / 2 2 1 / 2ye k ye k ye k x xk h ye k ye k ye k x xk x xk h h+ + − − + + − −− + −+

    1.3.7 Interpolación con splines cúbicos

    El método considerado anteriormente para realizar la interpolación segmentaria tiene un defecto esencial relacionada con

    imposibilidad en el marco de este método garantizar alguna suavidad de la función controlada. Si uno quiere realizar una interpolación

    segmentaria con una suavidad de la función interpolador controlada en este cso se puede utilizar funciones Splines.

    El término "spline" hace referencia a una amplia clase de funciones que son utilizadas en aplicaciones que requieren la

    interpolación de datos, o un suavizado de curvas. Los splines son utilizados para trabajar tanto en una como en varias dimensiones. Las

    funciones para la interpolación por splines normalmente se determinan como minimizadores de la aspereza sometidas a una serie de

    restricciones.

    En el subcampo matemático del análisis numérico, un spline es una curva definida en cada segmento mediante polinomios. En

    los problemas de interpolación, se utiliza a menudo la interpolación mediante splines porque da lugar a resultados similares requiriendo

    solamente el uso de polinomios de bajo grado, evitando así las oscilaciones, indeseables en la mayoría de las aplicaciones, encontradas

    al interpolar mediante polinomios de grado elevado.

    Para el ajuste de curvas, los splines se utilizan para aproximar formas complicadas. La simplicidad de la representación y la

    facilidad de cómputo de los splines los hacen populares para la representación de curvas en informática, particularmente en el terreno de

    los gráficos por ordenador.

    http://es.wikipedia.org/wiki/Matem%C3%A1ticahttp://es.wikipedia.org/wiki/An%C3%A1lisis_num%C3%A9ricohttp://es.wikipedia.org/wiki/Funci%C3%B3n_definida_a_trozoshttp://es.wikipedia.org/wiki/Funci%C3%B3n_definida_a_trozoshttp://es.wikipedia.org/wiki/Polinomioshttp://es.wikipedia.org/wiki/Interpolaci%C3%B3nhttp://es.wikipedia.org/wiki/Polinomiohttp://es.wikipedia.org/wiki/Fen%C3%B3meno_de_Rungehttp://es.wikipedia.org/wiki/Ajuste_de_curvashttp://es.wikipedia.org/wiki/Inform%C3%A1tica

  • A continuación nos referiremos con el término "spline" a su versión restringida en una dimensión y polinomial, que es la

    más comúnmente utilizada. Volveremos a analizar la interpolación segmentaria en términos de función de spline (es decir, una

    interpolación con suavidad controlada). Iniciamos como siempre con una interpolación más simple:

    Interpolación Segmentaria Lineal

    Este es el caso más sencillo. En él, vamos a interpolar una función f(x) de la que se nos dan un número N de pares (x, f(x)) por los que

    tendrá que pasar nuestra función polinomial P(x). Esta serie de funciones nuestras van a ser lineales, esto es, con grado 1: de la forma

    P(x) = ax + b.

    Definiremos una de estas funciones por cada par de puntos adyacentes, hasta un total de (N-1) funciones, haciéndolas pasar

    obligatoriamente por los puntos que van a determinarlas, es decir, la función P(x) será el conjunto de segmentos que unen nodos

    consecutivos; es por ello que nuestra función será continua en dichos puntos, pero no derivable en general.

    Interpolación Segmentaria Cuadrática

    En este caso, los polinomios P(x) a través de los que construimos el Spline tienen grado 2. Esto quiere decir, que va a tener la forma

    P(x) = ax² + bx + c

    Como en la interpolación segmentaria lineal, vamos a tener N-1 ecuaciones (donde N son los puntos sobre los que se define la

    función). La interpolación cuadrática nos va a asegurar que la función que nosotros generemos a trozos con los distintos P(x) va a ser

    continua, ya que para sacar las condiciones que ajusten el polinomio, vamos a determinar cómo condiciones:

    • Que las partes de la función a trozos P(x) pasen por ese punto. Es decir, que las dos Pn(x) que rodean al f(x) que queremos aproximar, sean igual a f(x) en cada uno de estos puntos.

    • Que la derivada en un punto siempre coincida para ambos "lados" de la función definida a trozos que pasa por tal punto común.

    Esto sin embargo no es suficiente, y necesitamos una condición más. ¿Por qué?. Tenemos 3 incógnitas por cada P(x). En un caso

    sencillo con f(x) definida en tres puntos y dos ecuaciones P(x) para aproximarla, vamos a tener seis incógnitas en total. Para resolver

    esto necesitaríamos seis ecuaciones, pero vamos a tener tan sólo cinco: cuatro que igualan el P(x) con el valor de f(x) en ese punto

    (dos por cada intervalo), y la quinta al igualar la derivada en el punto común a las dos P(x).

    Se necesita una sexta ecuación, ¿de dónde se extrae? Esto suele hacerse con el valor de la derivada en algún punto, al que se fuerza

    uno de los P(x).

    Interpolación Segmentaria Cúbica

    En este caso, cada polinomio P(x) a través del que construimos los Splines en [m,n] tiene grado 3. Esto quiere decir, que va a tener la

    forma P(x) = ax³ + bx² + cx + d

    En este caso vamos a tener cuatro variables por cada intervalo (a,b,c,d), y una nueva condición para cada punto común a dos

    intervalos, respecto a la derivada segunda:

    • Que las partes de la función a trozos P(x) pasen por ese punto. Es decir, que las dos Pn(x) que rodean al f(x) que queremos aproximar, sean igual a f(x) en cada uno de estos puntos.

    • Que la derivada en un punto siempre coincida para ambos "lados" de la función definida a trozos que pasa por tal punto común.

    • Que la derivada segunda en un punto siempre coincida para ambos "lados" de la función definida a trozos que pasa por tal punto común.

    Como puede deducirse al compararlo con el caso de splines cuadráticos, ahora no nos va a faltar una sino dos ecuaciones

    (condiciones) para el número de incógnitas que tenemos.

    La forma de solucionar esto, determina el carácter de los splines cúbicos. Así, podemos usar:

    • Splines cúbicos naturales: La forma más típica. La derivada segunda de P se hace 0 para el primer y último punto sobre el que está definido el conjunto de Splines, esto son, los puntos m y n en el intervalo [m,n].

    • Dar los valores de la derivada segunda de m y n de forma "manual", en el conjunto de splines definidos en el intervalo [m,n].

    • Hacer iguales los valores de la derivada segunda de m y n en el conjunto de splines definidos en el intervalo [m,n] Splines cúbicos sujetos: La derivada primera de P debe tener el mismo valor que las derivada primera de la función para el

    primer y último punto sobre el que está definido el conjunto de Splines, esto son, los puntos m y n en el intervalo [m,n].

    1.3.7 Funciones B-spline cúbicas.

    En el subcampo matemático de análisis numérico, una B-spline es una función spline que tiene el mínimo apoyo con respecto a

    un determinado grado, suavidad y partición del dominio. Un teorema fundamental establece que cada función spline de un determinado

    grado, suavidad y partición del dominio, se puede representar como una combinación lineal de B-splines del mismo grado y suavidad, y

    sobre la misma partición El término B-spline fue acuñado por Isaac Jacob Schoenberg y es la abreviatura de spline básica. Las B-splines

    pueden ser evaluadas de una manera numéricamente estable por el algoritmo de Boor.

    En el subcampo de la informática de diseño asistido por computadora y de gráficos por computadora, el término B-spline se refiere con

    frecuencia a una curva spline paramétrica por funciones spline que se expresan como combinaciones lineales de B-splines (en el sentido

    matemático anterior).

  • -2 -1 0 1 20,0

    0,2

    0,4

    0,6

    1/6 1/6

    2/3

    B3(x

    )

    x

    -2 0 2 4 60,0

    0,2

    0,4

    0,6

    0,8

    1,0

    i=5i=0 i=3i=2i=1

    B(x

    ,i,1

    )

    X

    Función B-spline cúbica se define a través de la fórmula:

    ( ) ( )

    3 2

    3

    3

    2 1; 0 1

    3 2

    12 ; 1 2

    6

    0; 2

    x x x

    B x x x

    x

    + −

    = −

    (1.1)

    El grafico de esta función se presenta en la Fig.1 Fig. 1. Función B-spline cúbica

    Las propiedades de B-Splines cúbicas:

    1) La función B3(x) y sus dos primeras derivadas son continuas, es decir ( ) ( )+− ,CxB 23 2) La función B3(x) se difiere del cero solo dentro del intervalo (-2,2) 3) La función B3(x) esta cosida con cuatro diferentes polinomios cúbicos en los puntos x = -1,

    x = 0 y x = 1 de tal manera que la misma función y sus dos primeras derivadas en estos

    puntos son continuas.

    4) En los puntos 2=x la función B3(x) y sus derivadas ( )xB'3 y ( )xB''

    3 son iguales a cero.

    5) Valores de la función en los puntos de coser son: ( ) ( )3

    20

    6

    11 33 == ByB

    6) El área bajo de la función B3(x) es igual a uno, es decir ( ) 12

    2

    3 =+

    dxxB

    El subprograma que realiza el cálculo de la función B-Spline en FORTRAN se presenta a continuación:

    function Bspln(x)

    Bspln=0.0

    if(x.lt.-1.0.and.x.gt.-2.0) then

    Bspln=(x+2)**3/6.0

    else if(x.lt.0.0.and.x.gt.-1.0) then

    Bspln=0.6666667-0.5*x**3-x**2

    else if(x.lt.1.0.and.x.gt.0.0) then

    Bspln=0.6666667+0.5*x**3-x**2

    else if(x.lt.2.0.and.x.gt.1.0) then

    Bspln=(2.0-x)**3/6.0

    end if

    return

    end

    Las funciones ( )h,x,xB i definidas sobre una malla equidistante ( ) ,...,,i,ihxx mini 3211 =−+= como

    ( )

    −=

    h

    xxBh,x,xB ii 3 (1.2)

    se utilizan en adelante como las funciones de base para resolver

    problemas de interpolación y aproximación. Estas funciones se

    difieren del cero dentro del intervalo ( )hx,hxx ii 22 +−

    Fig.2 Funciones ( ), ,iB x x h

    Propiedades de las funciones de base:

    1) ( ) ( )jiBh

    xxBh,x,xB

    ij

    ij −=

    −= 33 ; (1.3)

    2) La matriz B̂ con los elementos ( ) ( )jiBh,x,xBB̂ ijij −== 3 es una matriz simétrica y de tres diagonales

    106

    1

    3

    21 −=== jiparaB̂;B̂;B̂ ijiiii

  • (1.4)

    3) El área bajo de la función B(x, xi, h) es igual a h, es decir ( ) hdxhx,xBhx

    hx

    i

    i

    i

    =+

    2

    2

    2. Interpolación de funciones de una variable usando B-Splines cúbicas

    Supongamos que están dados los valores yi de una función y = f(x) incógnita sobre una malla

    ( ) ( ) n,...,,,i,ihax,b,ax,xfy iiii 3211 =−+== encontraremos la aproximación para esta función en una forma de combinación lineal de B-Splines cúbicas:

    ( ) ( ) ( )=

    =n

    j

    jj ;h,x,xBCxSxf1

    (2.1)

    Esta aproximación se realiza por medio de la siguiente subroutina en FORTRAN:

    c Función interpolante B-Spline, que define valor aproximada en un punto x arbitrario

    c de la función definida sobre la malla equidistante xexp(i), i=1,2,...,n con el paso h

    function FBspln(x,xexp,n,h,C)

    dimension xexp(n),C(n)

    S=0.0

    do i=1,n

    y=(x-xexp(i))/h

    S=S+C(i)*Bspln(y)

    end do

    FBspln=S

    return

    end

    Los coeficientes Cj pueden ser encontrados utilizando la condición de que las funciones S(x) y f(x) deben coincidir por lo menos en los

    puntos de la malla, es decir:

    ( ) ( )=

    ===n

    j

    jjiii CB̂Y;h,x,xBCyxSy1

    (2.2)

    donde CyY

    son vectores y B

    es la matriz cuadrada del orden n. La matriz B

    tiene la estructura (1.4), los elementos del vector

    Y

    son los valores dados de la función en los nodos de la malla y del vector C

    son los coeficientes en la combinación lineal (2.2)

    Para encontrar los coeficientes según (2.2) hay que hallar la matriz inversa para B

    y multiplicarla al vectorY

    :

    YB̂C

    1−= (2.3) Siguiente subroutina en FORTRAN realiza el cálculo de los coeficientes Cj:

    c Subprograma de cálculo de los coeficientes C(i), i=1,2,3,..,n para la función interpolante

    c a través de B-Splines cúbicas para una función cuyos valores en los nodos de la malla son yexp(i)

    subroutine coef(n,yexp,c)

    c Arreglos necesarios para realizar cálculo: b para guardar matriz B y la inversa, L y M vectores

    c Tamaño del arreglo b no debe ser menor que n x n , tamaños de L y M no menor quen. En el

    c ejemplo a continuación pueden realizarse cálculos pa las mallas con el número de nodos

    c no superior que 100

    dimension B(10000),L(100),M(100),c(n),yexp(n)

    c Definición de la matriz B

    k=0

    do i=1,n

    do j=1,n

    k=k+1

    B(k)=0.0

    if(i.eq.j) B(k)=2.0/3.0

    if(j.lt.n.and.i.eq.j+1) B(k)=1.0/6.0

    if(j.gt.1.and.i.eq.j-1) B(k)=1.0/6.0

    end do

    end do

    2 3 1 6 0 0 0 0 0

    1 6 2 3 1 6 0 0 0 0

    0 1 6 2 3 1 6 0 0 0

    0 0 1 6 2 3 0 0 0ˆ

    0 0 0 0 2 3 1 6 0

    0 0 0 0 1 6 2 3 1 6

    0 0 0 0 0 1 6 2 3

    B

    • •

    • = • • • • • • • •

    • •

  • c Inversión de la matriz B

    CALL MINV(B,N,D,L,M)

    c Cálculo de los coeficients C(i)

    k=0

    do i=1,n

    a=0.0

    do j=1,n

    k=k+1

    a=a+b(k)*yexp(j)

    end do

    C(i)=a

    end do

    return

    end A continuación presentamos el texto del programa principal del programa que calcula la función interpolante para famosa función de Runge

    ( )2251

    1

    xxf

    +=

    la cual fue utilizada para ilustrar los defectos de la interpolación polinomial:

    $debug

    c np –número de los puntos para graficar, nexp –el número de los nodos de la malla

    parameter (np=200)

    parameter (nexp=11)

    c

    c MAIN PROGRAM

    character*10 name

    real xp(np),yp(np),xexp(nexp),yexp(nexp),c(nexp)

    c Función de Runge

    fun(x)=1.0/(1.0+25.0*x*x)

    c Preparación de los archivos para guardar los resultados del cálculo

    write(*,*)' Teclee el titulo del archivo para salvar tabla'

    read(*,'(a)') name

    open(1,file=name)

    write(*,*)' Teclee el titulo del archivo para salvar'

    write(*,*)' el grafico con extension .pcx '

    read(*,'(a)') name

    c Extremos del intervalo para analizar la función

    xmin=-1.5

    xmax=1.5

    c el paso entre los nodos

    h=(xmax-xmin)/(nexp-1.0)

    c Malla y valores de la función de Runge en los nodos de la malla

    do i=1,nexp

    xexp(i)=xmin+h*(i-1)

    xx=xexp(i)

    yexp(i)=fun(xx)

    end do

    c Cálculo de los coficientes C(j)

    call coef(nexp,yexp,c)

    c Calcular los valores aproximados de la función en np puntos usando B-splines

    eps=0.05

    h1=(xmax-xmin)-2*eps)/(np-1)

    do j=1,np

    x =xmin+eps+h1*(j-1)

    xp(j)=x

    yp(j)=FBspln(x,xexp,Nexp,h,c)

    c Guardar los resultados de cálculo en el archivo

    write(1,*) xp(j),yp(j)

    end do

  • close(1)

    c Inicio del proceso de Graficación

    c Calculo xmax,xmin,ymin , ymax

    xmin=xp(1)

    xmax=xp(1)

    ymin=yp(1)

    ymax=yp(1)

    do i=1,np

    if(xp(i).lt.xmin) xmin=xp(i)

    if(xp(i).gt.xmax) xmax=xp(i)

    if(yp(i).lt.ymin) ymin=yp(i)

    if(yp(i).gt.ymax) ymax=yp(i)

    end do

    ymin=ymin-0.1

    c Regimen grafico

    CALL GRINIT

    c Pagina

    CALL PAGE(30.,20.,'GRAF',4,0)

    c Mapping

    call limits(xmin,xmax,ymin,ymax)

    CALL REGION(8.,8.,18.,10.,0,0,0)

    c Color

    CALL SETPEN(4)

    c Ejes

    call axes(0,0,0.,0,0,0,0.,0,0)

    c color del grafico

    call setpen(1)

    c Graficar los puntos calculados a través de B-Splines

    call linnum(xp,yp,np)

    c Graficar con markers los valores exactos de función de Runge en los nodos de la malla

    call setpen(2)

    do i=1,nexp

    xe=8.0+(xexp(i)-xmin)/(xmax-xmin)*18.0

    ye=8.0+(yexp(i)-ymin)/(ymax-ymin)*10.0

    call move(xe,ye,0)

    call marker(1)

    end do

    c salvar del grafico

    call wrpcx(16#a000,name)

    c Salir del regimen grafico

    CALL ENDPG(0)

    CALL MODA(3)

    stop

    end

    Para comparar los resultados obtenidos a través B-Spline interpolación con la interpolación polinomial usando por ejemplo la formula

    de Lagrange se puede utilizar el programa similar a anterior que presenta a continuación

    $debug

    parameter (np=100)

    parameter (nexp=11)

    c

    c MAIN PROGRAM

    character*10 name

    real xp(np),yp(np),xexp(nexp),yexp(nexp)

    fun(x)=1.0/(1.0+25.0*x*x)

    write(*,*)' Teclee el titulo del archivo para salvar tabla'

    read(*,'(a)') name

    open(1,file=name)

    xmin=-1.0

    xmax=1.0

  • -1,0 -0,5 0,0 0,5 1,00,0

    0,5

    1,0

    1,5

    2,0

    B-Spline Interpolación

    Interpolación Polinomial

    n=11

    y=1.0/(1+25*x2)

    Y

    X

    -4 -2 0 2 4

    -0,2

    0,0

    0,2

    0,4

    0,6

    0,8

    1,0

    1,2

    n=11

    Interpolación Polinomial

    B-Spline Interpolación y=exp(-x

    2)

    X

    Y

    h=(xmax-xmin)/(nexp-1.0)

    do i=1,nexp

    xexp(i)=xmin+h*(i-1)

    xx=xexp(i)

    call random(eps)

    yexp(i)=fun(xx)+0.0*(eps-0.5)

    end do

    h1=(xmax-xmin)/(np-1.0)

    do j=1,np

    x =xmin+h1*(j-1)

    xp(j)=x

    yp(j)=Fun_lagrnge(xexp,yexp,nexp,x)

    yexact=fun(x)

    write(1,*) xp(j),yp(j),yexact

    end do

    do j=1,nexp

    write(1,*) xexp(j),yexp(j)

    end do

    close(1)

    stop

    end

    c---------------------------------------

    Function Fun_lagrnge(xe,ye,ne,x)

    c Función de interpolación de Lagrange para una función

    c definida ye(i) sobre la malla xe(i), i=1,2,3,...,ne

    dimension xe(ne),ye(ne)

    s=0.0

    do i=1,ne

    p=1.0

    do j=1,ne

    if(j.ne.i) p=p*(x-xe(j))/(xe(i)-xe(j))

    end do

    s=s+p*ye(i)

    end do

    Fun_lagrnge=s

    return

    end

    Los resultados obtenidos con estos dos programas se pueden comparar de la Fig.3.

    Fig. 4 Resultados de interpolación de la función de Gauss a través de B-spline

    y polinomios usando la malla con 11nodos

    Los gráficos presentados no necesitan ningún comentario para explicar las ventajas que tiene la interpolación a través de B-Splines

    cúbicas comparando con la interpolación polinomial.

    Fig.3 Resultados de interpolación de la función

    Runge a través de B-spline

    y polinomios usando la malla con 11nodos

  • PROBLEMAS

    I Valores de la función ( ) 1y f x x= = + están dadas en la tabla 1 con 1 el paso 1h = .

    Encuéntrese: a) Diferencias finitas 21 1, ,y y . b) El polinomio interpolante global de

    Newton. c) valores del polinomio interpolante en los puntos 0.25, 0.75 y 1.0x = y compárese los

    resultados con los valores exactos (1.5ptos)

    Solución

    a)

    21 2 1 1 3 2 1

    31 4 3 2 1

    0.41421; 2 1.73205 2 1.41421 1 0.09637

    3 3 2 3 1.73205 3 1.41421 1 0.04648

    y y y y y y y

    y y y y y

    = − = = − + = − + = −

    = − + − = − + − =

    b)

    ( ) ( ) ( ) ( )

    ( ) ( ) ( )

    ( ) ( )( )( )

    2 31 1 1

    3 1 2 22

    1! 2! 3!

    1 0.41421 0.04819 0.007747 2

    1 0.41421 1 0.04819 0.007747 2

    y y yP x y x x x h x x h x h

    h h h

    x x x h x x h x h

    x x x

    = + + − + − − =

    = + − − + − − =

    = + − − − −

    c)

    II Valores de la función ( ) 1y f x x= = + están dadas en la tabla 2 con nodos no equidistantes. Encuéntrese a) el polinomio

    interpolante global de Lagrange. c) valores del polinomio interpolante en los puntos 1, 5, y 7x = y compárese resultados con los

    valores exactos (1.5ptos)

    Solución

    a) Polinomio de Lagrange

    ( ) ( ) ( )( )( )

    ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

    ( )( )

    ( )

    ( )

    ( )( ) ( ) ( )

    ( )( )

    ( )

    ( )

    ( )( ) ( )

    ( )( )

    ( )

    ( )

    ( )( ) ( )

    1

    1

    2 1 1 2 2 3 3 4 4 1 2 3

    1

    2

    3

    ; :

    1 2 3

    3 81 24 3 8 ;

    0 3 0 8

    0 81 15 8 ;

    3 0 3 8

    0 31 40 3

    8 0 8 3

    nnj

    n i i i

    i j i i j

    x xP x y x x

    x x

    P x y x y x y x y x x x x

    x xx x x

    x xx x x

    x xx x x

    =

    −= =

    = + + + = + +

    − −= = − −

    − −

    − −= = − −

    − −

    − −= = −

    − −

    b) x ( )1 x ( )2 x ( )3 x ( )2P x 1 x+

    1 7/12 7/15 -1/20 1.37 1.41

    5 -1/4 1 1/4 2.5 2.45

    7 -1/6 7/15 7/10 2.87 2.83

    III Considere función ( )f x dada en la lista al final de esta tarea dentro del intervalo (a, b) señalado en la lista

    a) Encuéntrese valores de la función sobre la malla equidistante 1 11, 1,2, ,11; ,ix i x a x b= = = con errores aleatorios

    ( ) 1i iy f x rnd= + una vez con la precisión 0.1 = y otra vez con la precisión6

    10−

    = y con número aleatorio rnd con la

    distribución homogénea dentro del intervalo [0,1] y organice 2 tablas

    Tabla 1 0.1 = Tabla 2 6

    10−

    =

    b) usando estas dos tablas como valores de una función desconocida calcúlese valores de la función sobre la malla equidistante

    1 201, 1,2, ,201; ,ix i x a x b= = = usando la fórmula de interpolación de Lagrange global y comparese los resultados con los valores exactos de la función ( )f x

    i ix iy

    1 0.0 1.0

    2 3.0 2.0

    3 8.0 3.0

    i 1 2 ….. 10 11

    ix

    i

    y

    i 1 2 …. 10 11

    ix

    iy

  • c) Repitiese el cálculo del punto anterior usando las interpolaciones segmentarias lineal y parabólica y explíquese las diferencias que

    aparecen en estos cálculos.

    1. ( )2

    cos , 0, f x x x a b = = =

    2. ( )2 2

    sin , 0, 2f x x b x a b= − = =

    3. ( ) ( )2

    cos ln 1 , 1, 5f x x x a b= + = =

    4. ( )2 2

    cos , 0, 20.0f x x b x a b= − = =

    5. ( ) sin , 0, x

    f x x xe a b −

    = = =

    6. ( )4

    , 0, 6x

    f x x e a b−

    = = =

    7. ( )2

    sin , 0, x

    f x e x a b −

    = = =

    8. ( )2 2

    sin 2 , 0, 2f x x b x a b= − = =

    9. ( )2

    ln(1 )cos , 0, f x x x a b = + = =

    10. ( )2

    2

    sin, 0,

    1

    xf x a b

    x= = =

    +

    11. ( )2

    2, 0, 4

    xf x x e a b

    −= = =

    IV Valores de la función ( )siny x= están dadas en la tabla 2 con nodos no equidistantes.

    Encuéntrese a) el polinomio interpolante de Lagrange de segundo orden. c) valores del polinomio interpolante en los puntos

    2 y 3x = y compárese resultados con los valores exactos (1.2pto)

    Solución

    a) Polinomio de Lagrange

    ( ) ( ) ( )( )( )

    ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

    ( )( )

    ( )

    ( )

    ( )( ) ( )

    ( )

    ( )

    ( )

    ( )( )

    ( ) ( ) ( )

    1

    1

    2 1 1 2 2 3 3 4 4 1 2 3 2 3

    2 32 2

    22 2 2 2

    ; :

    0 0.5 1 0.5 1

    0 2 0 618 62 ; 6

    6 0 6 2 2 0 2 6

    9 6 32 6 3 3 2

    nnj

    n i i i

    i j i i j

    x xP x y x x

    x x

    P x y x y x y x y x x x x x x

    x x x xx x x x x x

    P x x x x x x

    =

    −= =

    = + + + = + + = +

    − − − −= = − − = = −

    − − − −

    = − − + − = − +

    ( ) ( )2 23

    2 3 7 6x

    x x x x

    + − = − +

    ( ) ( ) ( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( )

    2 22 2

    2 2

    3 3 4 37 6 4 4 7 6 11 12 11 16 0.6875; sin 4 0.7071

    4

    3 3 13 3 7 6 5 6 5 6 0.8333; sin 3 0.8660

    xP x x P

    P

    = − + = − + = = = =

    = − + = = =

    V Definida una función sobre una malla equidistante dada en la tabla encuéntrese polinomio interpolante de tercera orden

    usando fórmula de Newton (1.2pto)

    Solución

    1 1 2 3 4

    2 32 1 3 2 1 4 3 2 1

    1; 0; 9

    3; 2 2;

    0

    6

    3

    3 3

    8h x y y y y

    y y y y y y y y y y y y

    = = = = = =−

    = − = − = − + = − = − + −

    =

    ( ) ( ) ( ) ( ) ( ) ( ) ( )2 3

    1 1 13 1 2 2

    2 3 2

    2 0 3 1 1 21! 2! 3!

    3 1 3 2 4

    y y yP x y x x x h x x h x h x x x x x x

    h h h

    x x x x x x

    = + + − + − − = − − − + − − =

    = − − + + − + = −

    Respuesta

    ( )3 2

    34P x x x= −

    i 1 2 3 4

    ix 0 1 2 3

    iy 0 -3 -8 -9

  • V Valores de la función ( )y f x x= = están dadas en la tabla con nodos no equidistantes. Encuéntrese a) el interpolador

    polinomial global de Lagrange. c) valores del polinomio en los puntos 3, 5 y 7x x x= = = y compárese resultados con los valores

    exactos (1.5ptos)

    Solución

    a) Polinomio de Lagrange

    ( ) ( ) ( )( )( )

    ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )

    ( )( )

    ( )

    ( )

    ( )( ) ( ) ( )

    ( )

    ( )

    ( )

    ( )( ) ( ) ( )

    ( )

    ( )

    ( )

    ( )( ) ( )

    ( ) ( ) ( ) ( ) ( )

    3

    1

    1

    2 1 1 2 2 3 3 4 4 1 2 3

    1 2 3

    2

    ; :

    1 2 3

    4 9 1 9 1 41 1 14 9 ; 1 9 ; 1 4

    1 4 1 9 24 4 1 4 9 15 9 1 9 4 40

    1 2 34 9 1 9

    24 15 40

    nj

    n i i i

    i j i i j

    x xP x y x x

    x x

    P x y x y x y x y x x x x

    x x x x x xx x x x x x x x x

    P x x x x x x

    =

    −= =

    = + + + = + +

    − − − − − −= = − − = = − − − = = − −

    − − − − − −

    = − − − − − + −

    ( ) ( )1 4x −

    b) x ( )1 x ( )2 x ( )3 x ( )2P x x 3 1/4 4/5 -1/20 1.7 1.73

    5 -1/6 16/15 1/10 2.27 2.24

    7 -1/4 4/5 9/20 2.7 2.66

    VI Valores de la función ( )y f x x= = están dadas en la tabla con el paso 1h = . Encuéntrese:

    a) Diferencias finitas 2 31 1 1, ,y y y . b) El polinomio interpolante global de Newton. c) valores del

    polinomio interpolante en los puntos 0.5, 1.5 y 2.5x = y compárese los resultados con los valores exactos

    (1.5ptos)

    Solución

    a)

    21 2 1 1 3 2 1

    31 4 3 2 1

    0.414; 2 1.732 2 1.414 1 0.096

    3 3 2 3 1.732 3 1.414 1 0.046

    y y y y y y y

    y y y y y

    = − = = − + = − + = −

    = − + − = − + − =

    b) ( ) ( ) ( ) ( ) ( ) ( )( )

    ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )( )( )

    2 31 1 1

    3 1 1 1 2 1 2 32 21! 2! 3!

    1 0.414 1 0.048 1 2 0.0077 1 2 3 1 1 0.414 2 0.048 0.0077 3

    y y yP x y x x x x x x x x x x x x

    h h h

    x x x x x x x x x

    = + − + − − + − − − =

    = + − − − − + − − − = + − − − − −

    c)

    ( ) ( ) ( ) ( )( )( ) ( )( )3 0.5 1 0.5 1 0.414 0.5 2 0.048 0.0077 0.5 3 1 0.5 0.414 1.5 0.048 0.019 0.743; 0.5 0.71P = + − − − − − = − + + = =

    ( ) ( ) ( ) ( )( )( ) ( )( )3 1.5 1 1.5 1 0.414 1.5 2 0.048 0.0077 1.5 3 1 0.5 0.414 0.5 0.048 0.012 1.21; 1.5 1.22P = + − − − − − = + + + = =

    3) Valores de la función ( ) ( )1 1y f x x= = + están dadas en la tabla con 1 el paso 1h = .

    Usando fórmulas para la derivación numérica encuéntrese la primera y segunda derivadas en el punto 2x = y compárese el resultado

    con los valores exactos. ¿Cómo cambia el error de cálculo si el paso de la malla disminuir hasta 0.5h = . (0.5pto)

    Solución

    ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( )

    2

    3 4 2

    2 2

    2 2

    3 4 3 2

    3 3

    2 2 0.25 0.5 2 0.125

    1 1 2 1 1 2 1 9 0.111; 0.014

    2 2 0.25 2 0.333 0.5 2 0.0415

    2 1 2 2 1 2 2 27 0.074; 0.033

    Aproximado f x y y h O h f

    Exacto f x x f

    Aproximado f x y y y h O h f

    Exacto f x x f

    = − + = − = −

    = − + = − + = − = − =

    = − + + = − + =

    = + = + = = =

    Error se disminuye en 4 veces

    VII Para valores de la función ( ) ( )1 1y f x x= = + dadas en la tabla anterior encuéntrese: a) diferencias finitas 2 3 4

    1 1 1 1, , ,y y y y . b) El polinomio interpolante global de Newton. c) valores del polinomio interpolante en los puntos

    0.5 y 1.5x = y compárese los resultados con los valores exactos

    (1.5ptos)

    Solución

    i ix iy

    1 1.0 1.0

    2 2.0 1.414

    3 3.0 1.732

    4 4.0 2.0

  • a)

    21 2 1 1 3 2 1

    31 4 3 2 1

    0.5; 2 0.333 2 0.5 1 0.333

    3 3 0.25 3 0.333 3 0.5 1 0.25

    y y y y y y y

    y y y y y

    = − = − = − + = − + =

    = − + − = − + − = −

    b)

    ( ) ( ) ( )( )

    ( ) ( )( ) ( ) ( )( )( )

    ( ) ( ) ( )( )( )( ) ( )

    2 31 1 1

    3 1 2 2

    3

    21! 2! 3!

    1 0.5 0.167 1 0.042 1 2 1 0.5 1 0.167 0.042 2

    0.5 0.5 1 0.5 0.5 0.5 1 0.167 0.042 0.5 2 0.6925;

    0.5 1 1 0.5 0.6667; 0.6925 0.6667 0.026

    1.

    y y yP x y x x x h x x h x h

    h h h

    x x x x x x x x x

    x P

    f

    x

    = + + − + − − =

    = − + − − − − = + − + − − −

    = = + − + − − − =

    = + = = − =

    = ( ) ( ) ( )( )( )( ) ( )

    35 1.5 1 1.5 0.5 1.5 1 0.167 0.042 1.5 2 0.391;

    0.5 1 1 1.5 0.4; 0.4 0.391 0.009

    P

    f

    = + − + − − − =

    = + = = − =

    VIII Valores de la función ( ) ( )1 1y f x x= = + están dadas en la tabla 2 con nodos no equidistantes 1 2 30, 2; , 5x x x= = = .

    Encuéntrese a) el polinomio interpolante de Lagrange. b) valores del polinomio interpolante en los puntos 1, y 4x x= = y

    compárese resultados con los valores exactos (1.5pto)

    Solución

    a) Polinomio de Lagrange

    ( ) ( ) ( )( )( )

    ( ) ( ) ( ) ( )

    ( )( )

    ( )

    ( )

    ( )( )( )

    ( )( )

    ( )

    ( )

    ( )( )

    ( )( )

    ( )

    ( )

    ( )( )

    ( ) ( ) ( ) ( ) ( )( ) ( )

    1

    1

    2 1 1 2 2 3 3

    1

    2

    3

    2 1 2 3

    ; :

    2 50.1 2 5 ;

    0 2 0 5

    0 50.167 5 ;

    2 0 2 5

    0 20.067 2

    5 0 5 2

    1 0.333 0.167 0.1 2 5 0.056 5 0.011

    nnj

    n i i i

    i j i i j

    x xP x y x x

    x x

    P x y x y x y x

    x xx x x

    x xx x x

    x xx x x

    P x x x x x x x x

    =

    −= =

    = + +

    − −= = − −

    − −

    − −= = − −

    − −

    − −= = −

    − −

    = + + = − − − − +

    ( )2x x −

    x ( )1 x ( )2 x ( )3 x ( )2P x ( ) ( )1 1f x x= + ( ) ( )2P x f x = −

    1 0.4 0.668 -0.067 0.62 0.5 0.12

    4 -0.2 0.668 0.536 0.11 0.2 0.09

    i ix iy

    1 0.0 1

    2 2 0.333

    3 5 0.167