Interpolación Polinomial

Documentos relacionados
Interpolación. Javier Segura. February 12, 2012

TEMA 5: INTERPOLACION NUMERICA

Capítulo 3. Polinomios

Ejercicios Temas 3 y 4: Interpolación polinomial. Ajuste de curvas.

Preliminares Interpolación INTERPOLACIÓN Y APROXIMACIÓN POLINOMIAL

Splines (funciones polinomiales por trozos)

Interpolación. Tema Introducción. 8.2 Interpolación polinómica Interpolación Lineal.

Splines Cúbicos. t 0 < t 1 < < t n (1)

Interpolación y aproximación polinomial

EJERCICIOS PROPUESTOS: Interpolación

Capítulo 5. Interpolación Introducción Método de interpolación de Lagrange

1. El Teorema de Rolle Generalizado.

EJERCICIOS RESUELTOS DE INTERPOLACION NUMERICA. 1) *Probar que si g interpola a la función f en,,, y h interpola a f en,,,,

INTERPOLACIÓN: Error en la la interpolación polinómica de Lagrange

Cuadratura de Newton-Cotes

Práctica 6 INTERPOLACIÓN

Cálculo Infinitesimal y Numérico. E.T.S. de Ingeniería Informática. Universidad de Sevilla1

Interpolación y aproximación

Dada f : [a, b] R R, continua, se plantea el problema de encontrar ceros de f, es decir raíces de la ecuación

TEMA 6: DERIVACION NUMERICA

Una matriz es un arreglo rectangular de números. Los números en el arreglo se llaman elementos de la matriz. ) ( + ( ) ( )

Auxiliar 6: Interpolación Mediante Spline Cúbicos

POLINOMIOS INTERPOLANTES O DE INTERPOLACIÓN

Polinomios de Chebyshev

Planteamiento General para Polinomios Ortogonales. 1. Producto interno genérico, norma y ortogonalidad

Algebra lineal y conjuntos convexos

Algunos Tipos de matrices. Matrices. Algunos Tipos de matrices. Algunos Tipos de matrices

Clase 4 Funciones polinomiales y racionales

CURSO CERO DE MATEMATICAS. Apuntes elaborados por Domingo Pestana Galván. y José Manuel Rodríguez García

Problemas Ampliación de Matemáticas. Sistemas lineales 1.- Encontrar la factorización L U de las siguientes matrices:

Ecuaciones e inecuaciones. Sistemas de ecuaciones e inecuaciones

Teorema III.1 Existen un único polinomio interpolante de grado a lo más n. y 1 y 2 y 3. y n 1 y n. c 1 c 2 c 3. c n 1 c n

III) INTERPOLACIÓN INTRODUCCIÓN

ANEXO 7. ALGORITMO PARA EL CÁLCULO DE SPLINES CÚBICOS NATURALES (

Métodos de Interpolación

E.T.S. Minas: Métodos Matemáticos Ejercicios Tema 2 Aproximación e interpolación

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

Para verificar que el sistema converge se deberán cumplir con las siguientes condiciones en las formulas con derivadas parciales: + 1

Tema 3 Algebra. Ecuaciones. Sistemas de ecuaciones: Inecuaciones Índice

M a t L a b. Oriol Roca POLINOMIOS EN MATLAB.

Métodos Interpolación con MatLab. El comando interp1 El comando interp1 se emplea para interpolar una serie de datos. El formato de este comando es:

Cónicas. Clasificación.

Lección 3: Aproximación de funciones. por polinomios. Fórmula de Taylor para

TEMA 5 LÍMITE DE FUNCIONES. CONTINUIDAD

2.2 Rectas en el plano

1 Método de la bisección. 1.1 Teorema de Bolzano Teorema 1.1 (Bolzano) Contenido

Ejercicios resueltos. 4 continua en R luego continua en cualquier. , [ 1,1] = 0 que equivale a decir 1,1

a) f(x) (x 1) 2 b) f(x) x c) h(x) 1 2 a) f (3) 8 0 f es creciente en x 3.

1. Matrices. Operaciones con matrices

CAPÍTULO. Métodos numéricos

La función, definida para toda, es periódica si existe un número positivo tal que

Ecuaciones Diferenciales. Conceptos Generales

IES Fco Ayala de Granada Sobrantes de 2011 (Modelo 4) Soluciones Germán-Jesús Rubio Luna

Apéndice sobre ecuaciones diferenciales lineales

Espacios Vectoriales. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Espacios Vectoriales 1 / 21

3. Interpolación polinomial

Examen final de Cálculo Numérico. Escuela Técnica Superior de Ingenieros Navales

2. Sistemas de ecuaciones lineales

Ejercicio 2 opción A, modelo 5 Septiembre 2010

1. Funciones de varias variables

La interpolación polinomial en el análisis de métodos iterativos

1. dejar a una lado de la igualdad la expresión que contenga una raíz.

Diagonalización de matrices

UNIDAD 3. La derivada. Objetivos. Al terminar la unidad, el alumno:

La recta en el plano.

Teóricas de Análisis Matemático (28) - Práctica 8 - Polinomio de Taylor

Derivación Numérica. 22 Derivada del polinomio interpolador

M a t L a b. Oriol R oca POLINOMIOS EN MATLAB.

tiene por límite L cuando la variable independiente x tiende a x , y se nota por L, cuando al acercarnos todo lo que queramos a x lím( x

Pruebas de Acceso a enseñanzas universitarias oficiales de grado Castilla y León

Opción A Ejercicio 1 opción A, modelo 5 Septiembre Reserva_ tan(x) - sen(x) [2 5 puntos] Calcula lim

Conjuntos de nivel, diagramas de contorno, gráficas. Funciones vectoriales de una y dos variables.

3. Ecuaciones Diferenciales Lineales Homogéneas de Orden Superior con Coeficientes Constantes. Ecuaciones Diferenciales de Segundo Orden

f(x) = x 2 Ejercicio 121 Para x = 1/2 formar los cocientes incrementales f/ x para los incrementos entre x = 1 y x = 1+ x de tres maneras diferentes:

Preliminares Problemas de Valor Inicial Problemas de Contorno ECUACIONES DIFERENCIALES ORDINARIAS

Espacios Vectoriales Euclídeos. Métodos de los mínimos cuadrados

1. GENERALIDADES SOBRE LOS POLINOMIOS.

PROPUESTA A. 3A. a) Despeja X en la ecuación matricial X A B = 2X donde A, B y X son matrices cuadradas

UNIDAD 10. DERIVADAS. APLICACIONES DE LAS DERIVADAS

7. Forma de Lagrange para el polinomio interpolador. 9. Forma de Newton para el polinomio interpolador

Sistemas de ecuaciones lineales

Examen de Selectividad Matemáticas JUNIO Andalucía OPCIÓN A

Asignaturas antecedentes y subsecuentes Análisis Numérico II

Matemáticas II Bachillerato Ciencias y Tecnología 2º Curso ESPACIO AFÍN Introducción Ecuaciones de la recta...

Derivada y diferencial

Sistemas de dos ecuaciones lineales de primer grado con dos incógnitas

(Límites y continuidad, derivadas, estudio y representación de funciones)

IES Fco Ayala de Granada Modelos del 2010 (Modelo 1) Soluciones Germán-Jesús Rubio Luna. Opción A

2. Distancia entre dos puntos. Punto medio de un segmento

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n )

CLAVE: MIS 206 PROFESOR: MTRO. ALEJANDRO SALAZAR GUERRERO

EXPRESIONES ALGEBRAICAS.

PROPUESTA A. b) Para el valor de a obtenido, calcula los puntos de inflexión de la función f(x). (1 25 puntos)

TEMA 2: DERIVADA DE UNA FUNCIÓN

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

Transcripción:

Tema 3 Interpolación Polinomial RESUMEN TEÓRICO El problema general de la interpolación es el siguiente: dados n + puntos distintos a x < x 2 < < x n+ b de un intervalo [a, b], llamados nodos de la interpolación, y n + números reales y, y 2,, y n+, llamados valores de la interpolación, se trata de encontrar una función f, en una cierta clase prefijada de funciones F, tal que f(x i ) = y i para i =, 2,, n + El caso particular más conocido es el problema de la interpolación polinómica, en el que F es el conjunto de los polinomios de grado menor o igual que n 3 La fórmula de interpolación de Lagrange Teorema Dados n+ puntos (x i, y i ) (i =, 2,, n+) de un problema de interpolación, existe un único polinomio p de grado menor o igual que n tal que p(x i ) = y i para todo i =, 2,, n + Dicho polinomio p viene dado por n+ p(x) = y i L i (x), i= (fórmula de interpolación de Lagrange) donde L i (x) viene dado por L i (x) = n+ j=,j i x x j x i x j = (x x ) (x x i )(x x i+ ) (x x n+ ) (x i x ) (x i x i )(x i x i+ ) (x i x n+ ) Teorema (Error en la interpolación polinomial) Sea f una función de clase C n+ [a, b] Consideremos el problema de interpolación correspondiente a unos nodos a x < x 2 < < x n+ b con valores y = f(x ), y 2 = f(x 2 ),,y n+ = f(x n+ ) y sea p el correspondiente polinomio interpolador Entonces para cada x [a, b] existe un punto α (a, b) (que depe de x) que satisface f(x) = p(x) + ω(x)f n+) (α), (n + )! sio ω(x) = (x x )(x x 2 ) (x x n+ )

TEMA 3 INTERPOLACIÓN POLINOMIAL La forma práctica de usar esta fórmula es acotar: Error(x) = f(x) p(x) ω(x) M n+, (n + )! donde M n+ es una cota de f n+) en [a, b] Hay que hacer una advertencia con respecto a esta fórmula: en el exterior del intervalo [a, b] el valor de ω(x) crece muy rápidamente En consecuencia el uso de interpolación para aproximar f(x) fuera de ese intervalo (extrapolación) debe evitarse En el caso particular de que los nodos esten equiespaciados x i = x + (i )h para i =,, n +, y el polinomio p(x) se utiliza sólo para interpolar en el intervalo [x, x n+ ] se tiene: Error(x) = f(x) p(x) M n+ (n + )! hn+ = Ch n+, donde M n+ es una cota de f n+) en [x, x n+ ] De la expresión anterior se deduce que cuando h tie a cero, el error tie también a cero a la misma velocidad que h n+, lo que se expresa como Error(x) = O ( h n+) Comandos de Matlab: polyfit(x,y,n) nos da los coeficientes, en sentido descente, del polinomio que interpola los nodos (x, y) donde x = [x, x 2,, x n+ ] y y = [y, y 2,, y n+ ] polyval(p,x) evalua el polinomio cuyos coeficientes vienen dados en sentido descente por el vector p = [a n, a n,, a ] en los valores dados por el vector x conv(p,q) calcula los coeficientes del producto de los polinomios cuyos coeficientes vienen dados en sentido descente por los vectores p y q deconv(p,q) calcula los coeficientes del cociente de los polinomios cuyos coeficientes vienen dados en sentido descente por los vectores p y q poly(r) calcula los coeficientes del polinomio cuyos raíces vienen dadas por el vector r 2 Análisis Numérico I

32 FÓRMULAS DE INTERPOLACIÓN DE NEWTON 32 Fórmulas de interpolación de Newton Uno de los inconvenientes de la fórmula de interpolación de Lagrange es que no hay relación entre la construcción del polinomio p n (x) (polinomio de grado menor o igual que n que pasa por los puntos (x i, y i ) con i =,, n + ) y la del polinomio p n+ (x) (polinomio de grado menor o igual que n + que pasa por los puntos (x i, y i ) con i =,, n + 2) Cada polinomio debe construirse individualmente y se necesitan muchas operaciones para calcular polinomios de grado elevado Los métodos de diferencias divididas sirven para generar sucesivamente estos polinomios mediante un esquema recursivo La idea es expresar el polinomio p n (x) en la forma: p n (x) = a + a (x x ) + a 2 (x x )(x x 2 ) + + a n (x x )(x x 2 ) (x x n ) para unas constantes apropiadas a, a,, a n Estas constantes se obtienen calculando las llamadas diferencias divididas 32 Algoritmo de las diferencias divididas El algoritmo para generar el polinomio de interpolación p n (x), para los datos {(x i, y i ) : i =, 2,, n + }, viene dado por p n (x) = f[x ] + f[x, x 2 ](x x ) + f[x, x 2, x 3 ](x x )(x x 2 ) + + +f[x, x 2,, x n+ ](x x )(x x 2 ) (x x n ) donde las diferencias divididas f[x, x 2,, x k ] para k =, 2,, n+, están definidas según el siguiente esquema recursivo: (Ddiv) f[x i ] := y i, i =, 2,, n + f[x i, x i+,, x i+k, x i+k ] := f[x i+,, x i+k, x i+k ] f[x i, x i+,, x i+k ] x i+k x i, Para calcular las diferencias divididas necesarias para obtener el polinomio interpolador p, construimos la siguiente tabla: x f(x) primeras diferen- segundas diferen- terceras diferencias divididas cias divididas cias divididas x f[x ] := y x 2 f[x 2 ] := y 2 f[x, x 2 ] := f[x 2 ] f[x ] x 2 x x 3 f[x 3 ] := y 3 f[x 2, x 3 ] := f[x 3 ] f[x 2 ] x 3 x 2 f[x, x 2, x 3 ] := f[x 2,x 3 ] f[x,x 2 ] x 3 x x 4 f[x 4 ] := y 4 f[x 3, x 4 ] := f[x 4 ] f[x 3 ] x 4 x 3 f[x 2, x 3, x 4 ] := f[x 3,x 4 ] f[x 2,x 3 ] x 4 x 2 f[x, x 2, x 3, x 4 ] := f[x 2,x 3,x 4 ] f[x,x 2,x 3 ] x 4 x 3 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL 33 Nodos de Chebyshev Como vimos anteriormente, el error depe de la función f, pero también de cómo se escojan los nodos Para cada valor de n, cuál será la mejor forma de elegir los nodos? Aquella para la cual el valor máximo de ω(x) sea lo más pequeño posible: mín {máx { (x x )(x x 2 ) (x x n+ ) : a x b} : a x < x 2 < < x n+ b} Para resolver esta cuestión podemos restringirnos, hacio una traslación y un cambio de escala si es necesario, al intervalo [, ] La solución viene dada mediante los polinomios de Chebyshev {T n+ (x)}, donde T n+ (x) = cos((n+) arc cos(x)) Recordemos que la función T n+ (x) es la solución polinómica de la ecuación diferencial ( x 2 )y xy + (n + ) 2 y = cuyo coeficiente lider es 2 n La forma más fácil de construirlos es mediante la relación de recurrencia: T (x) =, T (x) = x, T n+ (x) = 2xT n (x) T n (x), (n =, 2, ) Los polinomios de Chebyshev tienen muchas propiedades interesantes La que a nosotros nos concierne es que el valor absoluto máximo de 2 n T n+ (x) para x [, ] es 2 n y que, además, es el polinomio con menor máximo absoluto de entre todos los polinomios con coeficiente lider igual a ; en otras palabras, que 2 n T n+ (x) es la solución al problema anterior o, equivalentemente, que los mejores nodos posibles son las n + raíces simples de T n+ : x i = cos ( ) (2i )π, i =, 2,, n +, 2(n + ) que se llaman nodos de Chebyshev del intervalo [, ] Como ya hemos indicado, para trabajar en un intervalo cualquiera hay que hacer un cambio de variable lineal que nos lleve el intervalo [, ] a nuestro intervalo de trabajo [a, b]: x [ π, π] z(x) := b a 2 x + b + a [a, b], 2 entonces los nodos de Chebyshev en [a, b] son los puntos z(x i ) (i =, 2,, n + ) Observación: Interpolación de Hermite Para intentar mejorar el fenómeno de Runge, vease problema 3-, o eliminarlo se pensó en la posibilidad de que el polinomio interpolador no sólo coincidiese con la función en los valores que tomaba en los nodos, sino que también lo hagan los de su derivada primera en los nodos Al polinomio que interpola de esta forma se le denomina de Hermite, pero sin embargo, sigue manifestándose el fenómeno de Runge, es decir, se mejora el resultado en la parte central del intervalo, pero en los extremos la diferencia entre el polinomio interpolador y la función es considerable La manera de evitar el fenómeno de Runge es hacer una interpolación polinomial a trozos, es decir, lo que se conoce como una interpolación por splines 4 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA 34 Determinación de las funciones splines interpolantes Propiedades de convergencia Consideremos {x = a < x 2 < < x n < x n+ = b} un conjunto de nodos La interpolación por splines no es más que tomar un conjunto de nodos en cada subintervalo de la forma [x i, x i+ ] y construir un polinomio de interpolación, de grado no superior a k (para un k prefijado) sobre dicho conjunto de nodos, por lo que el método se conoce también como interpolación polinomial a trozos Definicion [Función spline interpolante] Una función spline interpolante de grado k con nodos {x, x 2,, x n, x n+ } es una función S(x) formada por varios polinomios, cada uno de ellos definido sobre un subintervalo y que se unen entre sí bajo ciertas condiciones de continuidad Las condiciones que debe cumplir S(x) son las siguientes: En cada intervalo [x i, x i+ ], S(x) es un polinomio de grado gr[s(x)] k 2 S(x) admite derivada continua de orden k en [x, x n+ ] En general pueden crearse funciones spline de grado k, pero la interpolación más frecuente es a través de funciones splines de grado 3, es decir, de splines cúbicos 34 Splines cúbicos Definicion [Spline cúbico] Dado el conjunto de nodos = {x = a, x 2,, x n, x n+ = b} del intervalo [a, b], diremos que la función S es un spline cúbico asociado a si cumple las siguientes condiciones: La restricción S i de S a cada intervalo [x i, x i+ ), para i =, 2,, n es un polinomio de grado no superior a tres 2 S(x) C 2 ([a, b]), es decir, S es una función continua, dos veces derivable y con derivadas continuas en el intervalo [a, b] Definicion [Spline cúbico interpolante] Diremos que S es un spline cúbico interpolante para el conjunto de nodos, si : S es un spline cúbico asociado a 2 S (x i ) = f(x i ) = y i para i =, 2,, n +, es decir, cumple las condiciones de interpolación Antes de construir un spline cúbico vamos a ver cuántas condiciones ha de cumplir y cuántas incógnitas van a hacernos falta Si en cada subintervalo de intentamos construir un polinimio de grado tres que aproxime a la función, deberemos calcular cuatro incógnitas (los cuatro coeficientes del polinomio de grado tres) por subintervalo, es decir 4n incógnitas Por otro lado, estos polinomios deben cumplir, en cada uno de los nodos las condiciones: S i (x i+ ) = S i+ (x i+ ) S i (x i+) = S i+ (x i+) S i (x i+) = S i+ (x i+) i =,, n (3) 5 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL Es decir, se deben cumplir un total de 3(n ) condiciones además de las n + de interpolación: S i (x i ) = f(x i ) = y i i =, 2,, n + Dado que tenemos un total de 4n incógnitas para 4n 2 condiciones, debemos imponer dos nuevas condiciones para poder determinar los coeficientes de la función spline Depio de las condiciones que impongamos, obtremos un tipo de spline u otro Si exigimos que la derivada segunda se anule en los extremos, es decir, si S (a) = S (b) =, diremos que S (x) es el spline natural asociado al conjunto de nodos Si exigimos que la derivada primera tome un determinado valor en los extremos, es decir, si S (a) = y, S (b) = y n+, diremos que S (x) es el spline sujeto asociado al conjunto de nodos Si, suponio que y = y n+, exigimos que S (a) = S (b), S (a) = S (b), diremos que se trata de un spline periódico Nos centraremos en el cálculo de los splines naturales y con el fin de simplificar la notación, llamaremos : h i = x i+ x i, i =,, n M i = S i (x i ), i =,, n + Los valores M i se denominan momentos y determinarán completamente los splines cúbicos Observemos en primer lugar, que como en cada subintervalo [x i, x i+ ], i =,, n, el spline S es un polinimio de grado tres, su segunda derivada es una recta (un polinomio de grado uno) En consecuencia, al imponer las condiciones (3) sobre la igualdad de derivadas segundas en los nodos, obligamos a que la segunda derivada de la función spline S (x) constituya un conjunto de rectas que se cortan en los nodos del conjunto elegido Ahora bien, dado que cada recta queda determinada por dos puntos, podemos escribir el valor de las restricciones (3) sobre S i como S i x i+ x x x i (x) = M i + M i+ i =,, n h i h i Integrando respecto a x obtenemos el valor de la primera derivada del spline en este intervalo : S i(x) = M i (x i+ x) 2 + M i+ (x x i ) 2 + A i 2 h i 2 h i Volvio a integrar respecto a x obtenemos: S i (x) = M i 6 (x i+ x) 3 + M i+ (x x i ) 3 + A i (x x i ) + B i h i 6 h i 6 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA Si imponemos ahora las condiciones de interpolación: S i (x i ) = y i, S i (x i+ ) = y i+, obtenemos M i 6 h2 i + B i = y i B i = y i M i 6 h2 i, M i+ 6 h2 i + A i h i + B i = y i+ A i = y i+ y i h i h i 6 (M i+ M i ) Podemos, por tanto, determinar los valores de las constantes A i y B i, que determinan el valor de S (x) en el intevalo [x i, x i+ ], i =,, n, en función de los momentos Sio: S i (x) = M i (x i+ x) 3 + M i+ (x x i ) 3 6h i 6h [ i yi+ y i + h ] i 6 (M i+ M i ) (x x i ) + y i M i 6 h2 i, h i o en términos de x x i y denotando e i = y i+ y i h i resulta: S i (x) = M i+ M i (x x i ) 3 + M [ i 6h i 2 (x x i) 2 + e i h ] i 6 (M i+ + 2M i ) (x x i ) + y i El problema se reduce, por tanto, a calcular los momentos para cada uno de los intervalos, para lo que utilizaremos la única condición de (3) que no hemos utilizado: S i(x i+ ) = S i+(x i+ ) Esta condición nos da, para cada i =,, n una ecuación: h i M i + 2(h i + h i+ )M i+ + h i+ M i+2 = u i, donde hemos denotado u i = 6(e i+ e i ), para i =,, n Si conocemos M y M n+ entonces obtenemos el sistema tridiagonal de n ecuaciones con n incógnitas: 2(h + h 2 ) h 2 h 2 2(h 2 + h 3 ) h 3 h n h n 2(h n + h n ) M 2 M 3 M n = u h M u 2 u n 2 u n h n M n+ En el caso del spline natural tenemos que M = S (a) = y M n+ = S (b) = 7 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL En el caso del spline sujeto S (x ) = y y S n(x n+ ) = y n+, con y y y n+ obtienen dos nuevas ecuaciones: conocidos, se 2h M + h M 2 = 6(e y ), h n M n + 2h n M n+ = 6(y n+ e n ), dando lugar a un sistema tridiagonal de n + ecuaciones con n + incógnitas: 2h h M h 2(h + h 2 ) h 2 M 2 = h n 2(h n + h n ) h n M n h n 2h M n n+ 6(e y ) u u 2 u n 6(y n+ e n) Ambos sistemas se pueden resolver por cualquiera de los métodos iterados estudiados ya que al ser la matriz del sistema diagonal dominante, tenemos la seguridad de que convergen y tienen una única solución El siguiente programa halla los coeficientes en potencias de x x i para el caso spline natural function S=splinenatural(X,Y) % Este programa calcula los coeficientes del trazador cubico que interpola los % nodos (X,Y) y tiene derivadas segundas en los extremos nulas, es decir % el spline natural % Datos de entrada % -X es un vector x(n+) que contiene las abscisas % -Y es un vector x(n+) que contine las ordenadas % Datos de salida % - S: las filas de S son los coeficientes de las potencias de % (x-x(i)), en orden descente, de cada uno de los polinomios N=length(X)-; H=diff(X); E=diff(Y)/H; diagsupinf=h(2:n-); diagprinc=2*(h(:n-)+h(2:n)); U=6*diff(E); % restricciones del spline natural Minicial=; Mfinal=; % construccion de la matriz de los coeficientes para el calculo de los % momentos A=diag(diagprinc)+diag(diagsupinf,)+diag(diagsupinf,-); % construccion del vector indepiente para el calculo de los momentos B=U ; B()=B()-H()*Minicial; B(N-)=B(N-)-H(N)*Mfinal; % resolvemos el sistema y hallamos los momentos 8 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA M=A\B; % a~nadimos los dos momentos naturales extremos y lo escribimos como vector % fila M=[Minicial,M,Mfinal]; % calculo de los coeficientes del polinomio cubico i-esimo en potencias % de (x-x_i) for i=:n S(i,)=(M(i+)-M(i))/(6*H(i)); S(i,2)=M(i)/2; S(i,3)=E(i)-H(i)*(M(i+)+2*M(i))/6; S(i,4)=Y(i); Por último en el caso del spline periódico S (x ) = S n(x n+ ) y S (x ) = S n(x n+ ), se obtenien las ecuaciones: M n+ = M, 2(h + h n )M + h M 2 + h n M n = 6(e e n ) El sistema de n ecuaciones con n incógnitas resultante, que en este caso no es tridiagonal ni diagonal dominante, es: h 2(h + h 2 ) h 2 h n h n h n 2(h n + h n ) 2(h + h n ) h h n M M 2 M 3 M n M n = u u 2 u 3 u n 6(e e n ) y un programa que calcula los coeficientes, en potencias de x x i, del spline periódico es function S=splineperiod(X,Y) % Este programa calcula los coeficientes del trazador cúbico que interpola los % nodos (X,Y) con condiciones periodicas S (a)=s (b)y S (a)=s (b) % Datos de entrada % -X es un vector x(n+) que contiene las abscisas % -Y es un vector x(n+) que contine las ordenadas % Datos de salida % -S es una matriz cuyas filas son los coeficientes, en orden descente, % de cada trazador cúbico N=length(X)-; H=diff(X); E=diff(Y)/H; diagprinc=h(:n); diagsup=2*(h(:n-)+h(2:n)); diagsup2=h(2:n-);, 9 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL U=6*diff(E); % construccion de la matriz de los coeficientes para el calculo de los % momentos A=diag(diagprinc)+diag(diagsup,)+diag(diagsup2,2); A(N,)=2*(H()+H(N)); A(N-,)=H(N); A(N,2)=H(); % construccion del vector indepiente para el calculo de los momentos B=[U ;6*(E()-E(N))]; % resolvemos el sistema y hallamos los momentos M(),,M(N) M=A\B; % ya sabemos que M(N+)=M() lo a~nadimos y lo escribimos como vector fila M=[M,M()] % calculo de los coeficientes del polinomio cubico i-esimo en potencias % de (x-x_i) for i=:n S(i,)=(M(i+)-M(i))/(6*H(i)); S(i,2)=M(i)/2; S(i,3)=E(i)-H(i)*(M(i+)+2*M(i))/6; S(i,4)=Y(i); Teorema [Unicidad del spline cúbico natural] Si f es una función definida en [a, b], entonces f tiene un único spline cúbico natural interpolante, es decir, que cumple S (a) = S (b) = Teorema [Convergencia] Sea f C 4 ([a, b]) con máx a x b f (4 (x) = M Si S es el único interpolante cúbico natural de f con respecto a los nodos a = x < x 2 < < x n+ = b que satisface S (a) = S (b) =, entonces existe una constante A R tal que máx f(x) S(x) AM máx (x j+ x j ) 4 a x b j n Comandos de Matlab: spline(x,y) Halla los trazadores cúbicos que interpolan los nodos (x i, y i ) i =,, n + cuyas coordenadas estan dadas por los vectores x e y de dimensión n + Estos trazadores son los llamados not-a-knot, (no nodo) es decir, impone como condiciones adicionales que los trazadores cúbicos en los intervalos [x, x 2 ] y [x 2, x 3 ] sean el mismo y en los intervalos [x n, x n ] y [x n, x n+ ] también sean el mismo spline(x,y) Para vectores x = [x, x 2,, x n+ ] de dimensión n + e y = [y, y,, y n+, y n+ ] de dimensión n+3 entonces calcula el trazador cúbico sujeto con S (x ) = y y S n(x n+ ) = y n+ en los nodos (x, y ),, (x n+, y n+ ) dados por todas las componentes del vector x y las componentes del vector y excepto la primera y la última Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA yy = ppval(spline(x,y),xx) Halla los valores que toma el trazador cúbico que interpola los nodos dados por los vectores x e y en los valores dados por el vector xx yy = spline(x,y,xx) Tiene el mismo efecto que la orden yy=ppval(spline(x,y),xx) y=ppval(mkpp(x,s),x) Evalua en los valores dados por el vector x el trazador cúbico a trozos en los intervalos [X(i), X(i + )] dados en el vector X con coeficientes S(i, :) obtenidos por cualquier función spline [BREAKS,COEFS,L,K,D]=UNMKPP(S) Extrae información de un polinomio a trozos en concreto BREAKS muestra los nodos que limitan los trozos, X(),,X(n+) y COEFS muestra el vector de coeficientes de cada uno de los trozos expresado en potencias de x X(i) Referencias básicas: Burden y Faires [985, Cap 3]; Kincayd y Cheney [994, 6-62 y 64]; Henrici [972, Cap 4 y 5]; Henrici [982, Cap 9]; Mathews y Fink [2,Cap 4]; Nakamura [997, Cap 4 y 9]; Scheid y Di Contanzo [99, Cap9]; Stoer y Bulirsch [98, 2 y 24] Ejercicios Resueltos Tema 3 PROBLEMA 3-: El fenómeno de Runge es un problema, debido a la falta de convergencia puntual de los polinomios interpoladores con respecto a la función considerada al aumentar el número de nodos, que puede darse cuando los nodos están igualmente espaciados Para observar este fenómeno consideramos la función f(x) = + 2x 2 Sean P n(x) y Q n (x) los polinomios que interpolan a f(x), en n + nodos igualmente espaciados y en los nodos de Chebyshev respectivamente, en el intervalo [, ] () Hacer un gráfico comparativo de f(x) y P n (x) para n = 5,, 5, 2 Lo mismo para f(x) y Q n (x) (2) Para cada uno de los valores n = 2, 3,, 2 estimar el error máximo EP n = max{ f(x) P n (x) : x }, aproximándolo mediante el cálculo de la diferencia f(x) P n (x) en 2 puntos igualmente espaciados del intervalo [, ](máximo discreto) Cómo se comporta EP n conforme n crece? (3) Repetir el apartado (2) con EQ n = max{ f(x) Q n (x) : x } Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL SOLUCIÓN PROBLEMA 3-: Contenido del fichero frungem (donde tenemos definida la función f(x) = /( + 2x 2 ), que le llamaremos a partir de ahora frunge) function y=frunge(x) y=(+2*x^2)^(-); Apartado () El programa que sigue hace un gráfico en la esquina superior izquierda subplot(2,2,), plot(x,y) de la función f(x) = /( + 2x 2 ) en [, ] y de su polinomio de interpolación con 6 nodos igualmente espaciados en [, ] %numero de nodos es n+ n=5; %eleccion de n+ puntos igualmente espaciados en [-,] nodos=linspace(-,,n+); %valores de la funcion en los nodos valores=frunge(nodos); %polinomio de interpolacion p=polyfit(nodos,valores,n); %5 puntos del intervalo [-,] igualmente espaciados t=linspace(-,,5); %dibujo de la funcion, los nodos y su polinomio interpolador subplot(2,2,),plot(t,frunge(t), b,nodos,valores, r*,t,polyval(p,t), k ) %ventana grafica, x en [-,] e y en [-2,2] axis([-,,-2,2]) %le ponemos titulo title( n=5 ) El programa que sigue hace un gráfico en la esquina superior izquierda subplot(2,2,2), plot(x,y) de la función f(x) = /( + 2x 2 ) en [, ] y de su polinomio de interpolación con nodos igualmente espaciados en [, ] %numero de nodos es n+ n=; %eleccion de n+ puntos igualmente espaciados en [-,] nodos=linspace(-,,n+); %valores de la funcion en los nodos valores=frunge(nodos); %polinomio de interpolacion p=polyfit(nodos,valores,n); %5 puntos del intervalo [-,] igualmente espaciados t=linspace(-,,5); %dibujo de la funcion, los nodos y su polinomio interpolador subplot(2,2,2),plot(t,frunge(t), b,nodos,valores, r*,t,polyval(p,t), k ) %ventana grafica, x en [-,] e y en [-2,2] 2 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA axis([-,,-2,2]) %le ponemos titulo title( n= ) De igual forma se hace para n = 5 (6 puntos), y para que el gráfico salga en la esquina inferior izquierda la instrucción subplot(2,2,3), plot(x,y)(subplot(2,2,4), plot(x,y)) Los resultados aparecen representados en la figura 3 n=5 n= 8 6 4 2 2 5 5 8 6 4 2 2 5 5 n=5 n=2 8 6 4 2 2 5 5 8 6 4 2 2 5 5 Figura 3: Gráfico de la función f(x) = +2x 2 y de su polinomio de interpolación con (6,, 6, 2) nodos igualmente espaciados en [, ] La codificación que sigue hace un gráfico en la esquina superior izquierda de la ventana subplot(2,2,),plot(x,y), de la función /( + 2x 2 ) en [, ] y de su polinomio de interpolación con nodos de Chebyshev con 5 puntos De igual forma se hace para n =, 5 y 2, dibujándolas en distintas esquinas subplot(2,2,2), plot(x,y) para n =, subplot(2,2,3), plot(x,y) para n = 5 y subplot(2,2,4), plot(x,y) para n = 2 %numero de nodos es n+ n=5; %calculo de los nodos de Chebyshev para el polinomio de grado 5 en [-,] for i=:n+ nodosche5(i)=cos(((2*i-)*pi)/(2*(n+))); %valores de la funcion en los nodos valorche5=frunge(nodosche5); 3 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL %polinomio de interpolacion p5=polyfit(nodosche5,valorche5,n); %repetimos con nodos n=; for i=:n+ nodosche(i)=cos(((2*i-)*pi)/(2*(n+))); valorche=frunge(nodosche); p=polyfit(nodosche,valorche,n); %repetimos con 6 nodos n=5; for i=:n+ nodosche5(i)=cos(((2*i-)*pi)/(2*(n+))); valorche5=frunge(nodosche5); p5=polyfit(nodosche5,valorche5,n); %repetimos con 2 nodos n=2; for i=:n+ nodosche2(i)=cos(((2*i-)*pi)/(2*(n+))); valorche2=frunge(nodosche2); p2=polyfit(nodosche2,valorche2,n); %5 puntos del intervalo [-,] igualmente espaciados t=linspace(-,,5); %dibujo de la funcion, los nodos y su polinomio interpolador subplot(2,2,),plot(t,frunge(t), b,nodosche5,valorche5, r*,t,polyval(p5,t), k ) %ventana grafica, x en [-,] e y en [-2,2] axis([-,,-2,2]) %le ponemos titulo title( n=5 ) %repetimos lo mismo en la segunda subventana grafica subplot(2,2,2),plot(t,frunge(t), b,nodosche,valorche, r*,t,polyval(p,t), k ) axis([-,,-2,2]) title( n= ) %repetimos lo mismo en la tercera subventana grafica subplot(2,2,3),plot(t,frunge(t), b,nodosche5,valorche5, r*,t,polyval(p5,t), k ) axis([-,,-2,2]) title( n=5 ) %repetimos lo mismo en la cuarta subventana grafica subplot(2,2,4),plot(t,frunge(t), b,nodosche2,valorche2, r*,t,polyval(p2,t), k ) axis([-,,-2,2]) title( n=2 ) Los resultados aparecen en la figura 32 4 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA n=5 n= 8 6 4 2 2 5 5 8 6 4 2 2 5 5 n=5 n=2 8 6 4 2 2 5 5 8 6 4 2 2 5 5 Figura 32: Gráfico de la función f(x) = +2x 2 y de su polinomio de interpolación con (6,, 6, 2) nodos de Chebyshev en [, ] Apartado (2) Gráfico del máximo discreto (2 puntos igualmente espaciados en [, ]) de f(x) p n (x) donde f(x) = /( + 2x 2 ) y p n (x) es el polinomio de interpolación de grado n con n + nodos igualmente espaciados %contador c=; for n=2:2 %define la abscisa del error c=c+; absc(c)=n; %ponemos el maximo de f(x)-p(x) a cero Max(c)=; %calculo del polinomio de interpolacion con n+ nodos igualmente %espaciados en [-,] nodos=linspace(-,,n+); valores=frunge(nodos); p=polyfit(nodos,valores,n); %calculo del maximo discreto de frunge(k)-p(k) tomando 2 puntos %igualmente espaciados en [-,] for k=-:: 5 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL 8 7 6 5 4 3 2 2 4 6 8 2 4 6 8 2 Figura 33: Error discreto (max dis f(x) p n (x) ) frente a n (n + nodos igualmente espaciados) if abs(frunge(k)-polyval(p,k))>max(c) Max(c)=abs(frunge(k)-polyval(p,k)); %dibuja n frente al error cometido para dicho n plot(absc,max) Los resultados aparecen representados en la figura 33 Apartado (3) Gráfico del máximo discreto (2 puntos igualmente espaciado de [, ]) de f(x) q n (x) donde f(x) = /( + 2x 2 ) y q n (x) es el polinomio de interpolación de grado n con n + nodos de Chebyshev %contador c=; for n=2:2 %define la abscisa del error c=c+; absc(c)=n; %ponemos el maximo de f(x)-p(x) a cero Max(c)=; %calculo del polinomio de interpolacion con nodos de Chebishev %en [-,] for i=:n+ 6 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA 6 5 4 3 2 2 4 6 8 2 4 6 8 2 Figura 34: Error discreto (max dis f(x) q n (x) ) frente a n (n + nodos de Chebyshev) nodosche(i)=cos(((2*i-)*pi)/(2*(n+))); valoresche=frunge(nodosche); q=polyfit(nodosche,valoresche,n); %calculo del maximo discreto de frunge(k)-q(k) tomando 2 puntos %igualmente espaciados en [-,] for k=-:: if abs(frunge(k)-polyval(q,k))>max(c) Max(c)=abs(frunge(k)-polyval(q,k)); %dibuja n frente al error cometido para dicho n plot(absc,max) Los resultados aparecen representados en la figura 34 7 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL PROBLEMA 3-2: datos: Considera el problema de interpolación definido por los siguientes Nodos: 2 3 4 5 6 7 8 9 Valores: 8 9 6 4 6 2 6 9 3 () Calcula el spline cúbico interpolador de tipo periódico Representar el polinomio interpolador y sus nodos (2) Calcula el spline cúbico interpolador de tipo natural Representar el polinomio interpolador y sus nodos (3) Calcula el spline cúbico interpolador de tipo sujeto cuya derivada en el primer nodo es - y en el último nodo es Representar el polinomio interpolador y sus nodos (4) Calcula el spline cúbico interpolador de tipo no-nodo Representar el polinomio interpolador y sus nodos SOLUCIÓN PROBLEMA 3-2: Apartado () Para resolverlo escribimos en la ventana de comandos: X=::; Y=[,8,9,6,4,6,2,6,9,3,]; S=splineperiod(X,Y) obteniéndose los siguientes coeficientes: -578 978 399 25-747 63 8 287-9 -296 9 746-23 -357 6-4273 5 263 4 5344-789 -536 6-35 8225-2 2-923 -9 64 6 2799-686 -938 9 2727 536-7263 3 Para representarlo creamos el fichero de función trazadorcubicoperiodm cuyo contenido es el siguiente: function y=trazadorcubicoperiod(x,y,x) % Aqui hallamos el valor en x del trazador cubico periodico % determinado por los nodos (X,Y) % Datos de entrada 8 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA 2 8 6 4 2 2 2 4 6 8 Figura 35: trazador cúbico periódico y sus nodos % -X es un vector x(n+) que contiene las abscisas % -Y es un vector x(n+) que contine las ordenadas % -x es el valor donde queremos calcular su valor % Datos de salida % -y es el valor de la función en x % trazador cubico periodico S=splineperiod(X,Y); y=ppval(mkpp(x,s),x); y al escribir X=::; Y=[,8,9,6,4,6,2,6,9,3,]; h=linspace(x(),x(),); yperiod=trazadorcubicoperiod(x,y,h); plot(h,yperiod, -,X,Y, * ) aparece la figura 35 9 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL Apartado (2) Para resolverlo escribimos el comando: S=splinenatural(X,Y) obteniose los siguientes coeficientes: -6 96 5-483 4798 8 582-789 -794 9 666-42 -3624 6-4246 4956 29 4 538-7782 -536 6-325 87-46 2-229 -93 622 6 39-7559 -234 9-38 44-576 3 Para representarlo creamos el fichero de función trazadorcubiconaturalm cuyo contenido es el siguiente: function y=trazadorcubiconatural(x,y,x) % Aqui hallamos el valor en x del trazador cubico natural % determinado por los nodos (X,Y) % Datos de entrada % -X es un vector x(n+) que contiene las abscisas % -Y es un vector x(n+) que contine las ordenadas % -x es el valor donde queremos calcular su valor % Datos de salida % -y es el valor de la funcion en x % trazador cubico natural S=splinenatural(X,Y); y=ppval(mkpp(x,s),x); Escribio en la ventana de comandos X=::; Y=[,8,9,6,4,6,2,6,9,3,]; h=linspace(x(),x(),); ynatural=trazadorcubiconatural(x,y,h); plot(h,ynatural, -,X,Y, * ) aparece la figura 36 2 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA 9 8 7 6 5 4 3 2 2 4 6 8 Figura 36: trazador cúbico natural y sus nodos Apartado (3) Para resolverlo escribimos los comandos: Y=[-,Y,]; S=spline(X,Y); [BREAKS,COEFS,L,K,D] = UNMKPP(S); obteniose los siguientes coeficientes: COEFS = -595 3395-4849 -39 5 8-448 649-32 9 942-695 -3247 6-432 532 9 4 5344-7833 -5 6-353 898-45 2-232 -96 693 6 358-7357 -2225 9-94 3388-694 3 Para representarlo escribimos X=::; Y=[,8,9,6,4,6,2,6,9,3,]; Y=[-,Y,]; h=linspace(x(),x(),); 2 Análisis Numérico I

TEMA 3 INTERPOLACIÓN POLINOMIAL 2 8 6 4 2 2 2 4 6 8 Figura 37: trazador cúbico sujeto y sus nodos ysujeto=spline(x,y,h); plot(h,ysujeto, -,X,Y, * ) Los resultados aparecen representados en la figura 37 Apartado (4) Para resolverlo escribimos los comandos: S=spline(X,Y); [BREAKS,COEFS,L,K,D] = UNMKPP(S); obteniose los siguientes coeficientes: COEFS = 454-4862 248 454-35 446 8 73-238 -592 9 628 5-3679 6-424 4934 37 4 5336-7789 -548 6-34 822-6 2-92 -92 62 6 2784-6852 -932 9 2784 5-7284 3 22 Análisis Numérico I

34 DETERMINACIÓN DE LAS FUNCIONES SPLINES INTERPOLANTES PROPIEDADES DE CONVERGENCIA 2 8 6 4 2 2 2 4 6 8 Figura 38: trazador cúbico no-nodo y sus nodos Para representarlo escribimos X=::; Y=[,8,9,6,4,6,2,6,9,3,]; h=linspace(x(),x(),); ynonodo=spline(x,y,h); plot(h,ynonodo, -,X,Y, * ) Los resultados aparecen representados en la figura 38 NOTA: Los splines que calcula MATLAB son los llamados not-a-knot, es decir, impone como condiciones adicionales que los trazadores cúbicos en los intervalos [x, x 2 ] y [x 2, x 3 ] sean el mismo y en los intervalos [x n, x n ] y [x n, x n+ ] también sean el mismo Por esta razón los trazadores cúbicos en los intervalos [, ] y [, 2], S (x) =,454x 3,4862x 2 +,248x, y S 2 (x) =,454(x ) 3,35(x ) 2 +,446(x ) +,8 coinciden Y en los intervalos [8, 9] y [9, ], S 9 (x) =,2784(x 8) 3,6852(x 8) 2,932(x 8) +,9, y S (x) =,2784(x 9) 3 +,5(x 9) 2,7284(x 9) +,3 también coinciden 23 Análisis Numérico I