Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en...

18
Unidad Unidad III III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico y Programación Primavera 2009 LMM1

Transcript of Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en...

Page 1: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

UnidadUnidad IIIIII

- Interpolación Polinomial de Newton en diferencias divididas

- Polinomios de interpolación de Lagrange

Análisis Númerico y Programación

Primavera 2009 LMM1

Page 2: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

AproximaciAproximacióónn polinomialpolinomial de Newton en de Newton en diferenciasdiferencias divididasdivididas

Tenemos n+1 datos xi, yi=f(xi)Por esos puntos pasa uno y solo un polinomio de

grado naproximamos a un polinomio de grado n

))...()((...))(()()(

110

102010

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

nn

n

xxxxxxbxxxxbxxbbxf

Encontramos los coeficientes bi en términos de diferencias divididas

n es el orden de la interpolación

Análisis Númerico y Programación

Primavera 2009 LMM2

Page 3: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

0

01111011

],,...,[],...,,[],,...,,[xx

xxxfxxxfxxxxfn

nnnnn −

−= −−

f(x) a orden n

],...,,[))...()((...],,[))((

],[)()()(

01110

01210

0100

xxxfxxxxxxxxxfxxxx

xxfxxxfxf

nnn

n

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

ji

jiji xx

xfxfxxf

−−

=)()(

],[

ki

kjjikji xx

xxfxxfxxxf

−−

=],[],[

],,[

Con las diferenciasdivididas

Análisis Númerico y Programación

Primavera 2009 LMM3

Page 4: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

EstimaciEstimacióónn de errorde error

nn

n

Raxn

afaxaf

axafaxafafxf

+−++−+

−+−+=

)(!

)(...)(!3

)(

)(!2

)(''))((')()(

)(3

)3(

2

1)1(

)()!1(

)( ++

−+

= nn

n axn

fR ξ

))...()(()!1(

)(10

)1(

n

n

n xxxxxxn

fR −−−+

=+ ξ

))...()(](,...,,,[ 1001 nnnn xxxxxxxxxxfR −−−= −

))...()(](,...,,,[ 10011 nnnnn xxxxxxxxxxfR −−−= −+

Serie de Taylor

Análogamentepara nuestro caso

Sustituyendo derivada por diferencia dividida

Residuo

Depende de f(x), si tenemos un datoadicional

PROCEDIMIENTO ITERATIVO error iterativo

Análisis Númerico y Programación

Primavera 2009 LMM4

Page 5: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

Fortran no maneja índices <1, corremos los índices por 1

],...,,[))...()((...],,[))((

],[)()()(

121221

12321

12111

xxxfxxxxxxxxxfxxxx

xxfxxxfxf

nnn

n

−−−

−−−++−−+−+=n datos

xi, yi=f(xi)

Polinomiogrado n-1

n términos n diferencias divididasEn el término j: productos de diferencias de x ()

es igual a 1 para j=1 producto del término j-1 multiplicado por (x-xj-1)

diferencia dividida f[xj,…,x1]es igual a f(x1) para j=1 tiene j argumentosse calcula con las diferencias del término j-1

Análisis Númerico y Programación

Primavera 2009 LMM5

Page 6: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

----------------f[xn,xn-1]f(xn-1)i=n-1----------------------f(xn)i=n

………………

-------…f[x5,x4,x3]f[x4,x3]f(x3)i=3

-------…f[x4,x3,x2]f[x3,x2]f(x2)i=2

f[xn,xn-1, …, x1]

…f[x3,x2,x1]f[x2,x1]f(x1)i=1j=n…j=3j=2j=1

Términos

iij xxjidjidjid

−−−−+

=−+ 1

)1,()1,1(),(

Dat

os

if=n if=n-1 if=n-j+1

Análisis Númerico y Programación

Primavera 2009 LMM6

Page 7: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

PseudocPseudocóódigodigo((basadobasado en en ChapraChapra, , adaptadoadaptado parapara Fortran)Fortran)

Subroutine NwtInt(x,y,n,xp,yint,ea)

Local fddn,n

DO FOR i=1,nfddi,1 = yi

END DO

Entrada:arreglos datos x,y; no. de datos y punto de evaluación

Salida: arreglo de yint(i), ea(i): interpolacion y error a orden i-1

Arreglo de diferenciasdivididas, tamaño n x n

INICIA CICLOPrimera columna tiene f(xi)

en renglón iFIN CICLO

Análisis Númerico y Programación

Primavera 2009 LMM7

Page 8: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

ConstrucciConstruccióónn de de matrizmatriz

DO FOR j=2,nDO FOR i=1,n-j+1fddi,j = (fddi+1,j-1 - fddi,j-1) / (xi+j-1 -xi)

END DOENDO

xterm= 1yint1=fdd1,1

INICIA CICLOColumna jRenglón i (=1 cuando j=n)Elemento i,j de matriz de

diferencias divididasFIN CICLO

xterm: valor inicial, orden 0yint(1) =f(x1)

Análisis Númerico y Programación

Primavera 2009 LMM8

Page 9: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

Suma de Suma de ttéérminosrminos. . CCáálculolculo de de erroreserrores

DOFOR j=2,nxterm=xterm*(xp-xj-1)

yint2=yintj-1 + fdd1,j*xterm

eaj-1= yint2-yintj-1

yintj = yint2endEND NwtInt

INICIA CICLOtérmino de orden jProducto acumulado de

diferenciasa y orden j-1 le suma

término jlo guarda en yint2

Error = valor nuevo –anteriorElemento j de yint tiene valor

interpolado a orden jFIN CICLOFIN NwtInt

Análisis Númerico y Programación

Primavera 2009 LMM9

Page 10: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

Ejercicios• Escriba un programa

para estimar el valor de ln 2= 0.6931472,

que utilice la subrutinaanterior.

• En programa principal -leer n datos de un archivo

-escribir erroresestimado y verdadero, la aproximacion hastagrado n-1.

• Utilice la siguientetabla de datos

1.25276303.50.91629072.50.40546411.51.098612331.609437951.791759561.3862944401f(x)= ln xx

Archivo interp_newton.for

Análisis Númerico y Programación

Primavera 2009 LMM10

Page 11: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

ResultadosResultados

0.6934390.6938980.6975140.6757220.6287690.5658440.4620980.00000

f(x)yint

---7-0.0004596-0.00361650.02179240.04695330.06292420.10374610.4620980

Errorea

gradoLocalice los resultados de interpolaciónen una gráficaen la que los datos se unancon líneasrectas.¿Qué observa?

Análisis Númerico y Programación

Primavera 2009 LMM11

Page 12: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

EjerciciosEjerciciosVerifique queErrores verdadero y estimado son similares

Difieren menos al aumentar el gradoDespués del quinto grado no mejora

sustancialmente la aproximaciónPosición y orden de datos es importante

* la mejoría es lenta si puntos distantes (x=4,6,5)* tener puntos cercanos a x=2 mejora la aproximación

ORDENE LOS DATOS (ASCENDENTE O DESCENDENTE) Y ANALICE EL CAMBIO EN LOS RESULTADOS (mejora?).

Problemas 1 al 5 del Cap. 183, 9 del Cap. 20 de Chapra

Análisis Númerico y Programación

Primavera 2009 LMM12

Page 13: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

A medida que aumenta el orden del polinomio, nos acercamos al valor verdadero

Orden 0

Orden 1

Análisis Númerico y Programación

Primavera 2009 LMM13

Page 14: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

PolinomiosPolinomios de de interpolaciinterpolacióónn de Lagrangede Lagrange

∑=

=n

iiin xfxLxf

0

)()()(

n+1 datos xi, yi, i=0,1,…,n

∏≠= −

−=

n

jij ji

ji xx

xxxL

0

)(

Escribimos la aproximación como

Donde el producto

Análisis Númerico y Programación

Primavera 2009 LMM14

Page 15: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

Notas

• Es solo una reformulación del polinomio de Newton. Ejemplo:

Rescribimos10

0

01

1

01

0101

)()()()(],[xx

xfxx

xfxx

xfxfxxf−

+−

=−−

=

⎟⎟⎠

⎞⎜⎜⎝

⎛−

+−

−+=

−+=

10

0

01

100

0100

)()()()(

],[)()()(

xxxf

xxxfxxxf

xxfxxxfxfn

)()()( 101

00

10

1 xfxxxxxf

xxxxxfn −

−+

−−

==

Sustituyendo

Rearreglando

Análisis Númerico y Programación

Primavera 2009 LMM15

Page 16: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

)()()( iii xfxfxL =

∏≠= −

−=

n

jij ji

ji xx

xxxL

0

)(Notar que, dado

Li(x=xi) = 1 y cero para cualquier otro punto.

Entonces para x=xi

Entonces el polinomio de Lagrange es el únicopolinomio que pasa por los n+1 puntos

Análisis Númerico y Programación

Primavera 2009 LMM16

Page 17: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

No siempre el orden más alto es el mejor

Entre más alto el orden del polinomio, tiende a oscilar más. Siempre debemos revisar lso datos

Grado más alto

Análisis Númerico y Programación

Primavera 2009 LMM17

Page 18: Unidad IIIlilia/numerico/III_interp.pdf · Unidad III - Interpolación Polinomial de Newton en diferencias divididas - Polinomios de interpolación de Lagrange Análisis Númerico

Pseudocódigoun solo grado (n-1 si n datos)

Function Lagrange(x,y,n,x0)sum=0DOFOR i=1,n

producto=yiDOFOR j=1,n

IF i≠j THENproducto =

producto*(x0-xj)/(xi-xj)ENDIF

END DOsum = sum + producto

ENDDOLagrange = sum

END Lagrange

x,y arreglos de n datosx0 punto donde se interpolaINICIA CICLO iValor inicial de producto es f(xi)

INICIA CICLO jsi no coincide con jacumula factor en producto

end ifFIN CICLO j

se suma el productoFIN CICLO IValor de funciónes la suma

FIN de función

Análisis Númerico y Programación

Primavera 2009 LMM18