• No se han encontrado resultados

Newton y Lagrange

N/A
N/A
Protected

Academic year: 2021

Share "Newton y Lagrange"

Copied!
13
0
0

Texto completo

(1)

ESCUELA POLIT´

ECNICA DEL EJ´

ERCITO

INGENIER´

IA CIVIL

”M´

ETODOS NUM´

ERICOS”

Jos´

e Israel Gualavis´ı D´ıaz

Nivel IV - competencias

(2)

´

Indice

1. Interpolaci´on de Lagrange 3

1.1. Determine en los siguientes casos el polinomio interpolador de Lagrange para aproximar la funcion f (x) = x3. . . 3 1.2. Modificar el codigo dado para que realice el gr`afico de los nodos (puntos) y el

polinomio interpolador . . . 5 1.3. Cree su propio codigo para el m`etodo de Lagrange . . . 5 1.4. En el cuadro, se muestran temperaturas que fueron medidas cada hora, durante

un lapso total de 5 horas . . . 5

2. Interpolaci´on de Newton 7

2.1. En base a las funciones y datos que se muestran en el cuadro, realizar. . . 7 2.2. Considere M + 1 puntos (xo, yo),...,(xM, yM) . . . 10

2.3. En el c´odigo dado en la secci´on anterior, la matriz D se emplea para alamacenar la tabla de diferencias divididas: . . . 11

(3)

INTERPOLACI ´

ON

1.

Interpolaci´

on de Lagrange

1.1. Determine en los siguientes casos el polinomio interpolador de Lagrange

para aproximar la funcion f (x) = x3.

Figura 1: f (x) = x3

La resoluci´on de este problema se lo realiz´o mediante un pr´ograma creado en Matlab.

function [C,L] = Lagrange(x,y) w=length(x); n=w-1; L=zeros(w,w); for k=1:n+1 V=1; for j=1:n+1; if k~=j

(4)

V=conv(V,poly(x(j)))/(x(k)-x(j)); end end L(k,:)=V; end C=y; C=C.*L;

1. El polinomio Cuadr´atico P2(x) Para los nodos x0 = −1, x1 = 0 y x2 = 1.

Los resultados obtenidos con el programa son:

Punto xk f (xk) 1 −1 −1 2 0 0 3 1 1 L =   0,5000 −0,5000 0 −1,0000 0 1,0000 0,5000 0,5000 0   C = 0 1 0

2. El polinomio C´ubico P3(x) Para los nodos x0 = −1, x1= 0, x2= 1 y x3= 2

Los resultados obtenidos con el programa son:

Punto xk f (xk) 1 −1 −1 2 0 0 3 1 1 4 2 8 L =     −0,1667 0,5000 −0,3333 0 0,5000 −1,0000 −0,5000 1,0000 −0,5000 0,5000 1,0000 0 0,16670 −0,1667 0     C = 1 0 0 0

(5)

1.2. Modificar el codigo dado para que realice el gr`afico de los nodos (puntos) y el polinomio interpolador

Para que el programa anterior grafique los nodos y el Polinomio intepolador es necesisario a˜nadir este c´odigo luego de todo el c´odigo anterior:

x1=min(x):0.001:max(x); y1=polyval(C,x1); clf grid on hold on plot(x,y,’o’) plot(x1,y1,’red’) title(’Polinomio Interpolador’)

1.3. Cree su propio codigo para el m`etodo de Lagrange

function poli = lagmio(x,y) poli=0; syms w; n=length(x); for i=1:n L=1; for j=1:n if(i~=j) L=L*(w-x(j))/(x(i)-x(j)); end end poli=poli+L*y(i); poli=simplify(poli); end ezplot(poli); hold on; plot (x,y,’*’); hold on; grid;

1.4. En el cuadro, se muestran temperaturas que fueron medidas cada hora,

durante un lapso total de 5 horas

(6)

H T 13 18 14 18 15 17 16 16 17 15 18 14

1. Construir el polinomio interpolador de Lagrange correspondiente a los datos del cuadro. Empleando el programa anterior tenemos como resultado:

(x − 11) ∗ x

4− 69 ∗ x3+ 1796 ∗ x2− 2094 ∗ x + 93120

120

2. Estimar la temperatura media durante el periodo de 5 horas dado.

La temperatura media cuando el tiempo es de 5 horas, se obtiene evaluando el polinomio en x=5

El resultado de evaluar el polinomio en x=5 es -1260

3. Dibuje los datos del cuadro y el polinomio interpolador encontrado, en el mismo grafico. Discuta el erro que puede aparecer al usar dicho polinomio para estimar la temperatura media.

(7)

2.

Interpolaci´

on de Newton

2.1. En base a las funciones y datos que se muestran en el cuadro, realizar.

1. Calcular la tabla de diferencias divididas para las funciones y datos. 2. Escribir los polinomios interpoladoresde Newton P1, P2, P3 y P4.

3. Calcular los valores de los polinomios hallados, en el apartado anterior, para los valores de x dados.

4. Compare los valores obtenidos con los valores exactos.

Para f (x) = x12 x=4,5;7,5 k xk f (xk) 0 4 0 1 5 0,75 2 6 2,25 3 7 3,00 4 8 2,25 Para f (x) = 3 ∗ sin(π∗x6 )2 x=1,5;3,5 k xk f (xk) 0 0 2 1 1 2,23 2 2 2,44 3 3 2,64 4 4 2,82

Para la resoluci´on de este ejercicio hemos desarrollado el siguiente c´odigo en Matlab:

(8)

¡——-function [C,D]=newtonpoly(x,y) n=length(x); D=zeros(n,n); D(:,1)=y’; for(j=2:n) for(k=j:n) D(k,j)=(D(k,j-1)-D(k-1,j-1))/(x(k)-x(k-j+1)); end end C=D(n,n); for(k=n-1:-1:1) C=conv(C,poly(x(k))); m=length(C); C(m)=C(m)+D(k,k); end

Tabla de diferencias divididas obtenida a partir del programa:

P araf (x) = x12 D =       2 0 0 0 0 2,23 0,23 0 0 0 2,44 0,21 −0,01 0 0 2,64 0,2 0,005 0,0017 0 2,82 0,18 −0,01 −0,0018 −0,0008       P araf (x) = 3 ∗sin(π ∗ x 6 ) 2 D =       0 0 0 0 0 0,75 0,75 0 0 0 2,25 1,5 0,375 0 0 3,00 0,75 −0,375 −0,25 0 2,25 −0,75 −0,75 −0,125 0,0312       Polinomios Interpoladores Para f (x) = x12

(9)

P1(x) = 0,23x + 1,77 P2(x) = −0,1x2+ 0,26x + 1,75 P3(x) = 0,017x3− 0,112x2+ 0,447x + 1,648 P4(x) = −0,008x4+ 0,025x3− 0,14x2+ 0,487x + 1,6288 Para f (x) = 3 ∗ sin(π∗x6 )2 P1(x) = 0,75x − 0, 75 P2(x) = 0,375x2− 0,375x P3(x) = −0,25x3+ 1,875x2− 3,125x + 1,5 P4(x) = 0,0312x4− 0,562x3+ 2,967x2− 4,68x + 2,2

Valores de P(x) para los valores de x dados

Para f (x) = x12 P (x) 4,5 7,5 f (4, 5) = x1/2 f (7, 5) = x1/2 1 2,9357 3,495 2,12132 2,7386 2 2,625 3,1375 2,12132 2,7386 3 2,7175 3,495 2,12132 2,7386 4 2,805 5,42 2,12132 2,7386 Para f (x) = 3 ∗ sin(π∗x6 )2 P (x) 1,5 3,5 f (1, 5) = 3 ∗ sin(π∗x6 )2 f (3, 5) = 3 ∗ sin(π∗x6 )2 1 0,375 1,5775 5,636 ∗ 10−4 3,068 ∗ 10−3 2 0,2815 3,28125 5,636 ∗ 10−4 3,068 ∗ 10−3 3 0,1875 2,8125 5,636 ∗ 10−4 3,068 ∗ 10−3 4 0,1528 2,78325 5,636 ∗ 10−4 3,068 ∗ 10−3 Para f (x) = x12 P (x) Error en 4.5 Error en 7.5 4 0,383 0,356 3 0,237 0,1456 2 0,280 1,144 1 0,322 0,979

(10)

Para f (x) = 3 ∗ sin(π∗x6 )2 P (x) Error en 1.5 Error en 3.5 1 0,8945 0,4379 2 0,8123 0,1722 3 0,875 0,0048 4 0,898 0,0056 2.2. Considere M + 1 puntos (xo, yo),...,(xM, yM)

1. Pruebe que si las (N + 1)-´esimas diferencias son divididas son cero, entonces las siguientes hasta la M -´esimas tambi´en son cero.

Resloviendo el siguiente ejemplo se tiene:

x f (x) −2 −18 −1 −5 0 −2 2 −2 3 −7 6 142 D =         −18 0 0 0 0 0 −5 13 0 0 0 0 −2 3 −5 0 0 0 −2 0 −1 1 0 0 7 9 3 1 0 0 142 45 9 1 0 0        

con este ejemplo queda demostrado que si las (N + 1)-´esimas diferencias son divididas son cero, entonces las siguientes hasta la M -´esimas tambi´en son cero. 2. Pruebe que si las (N + 1)-´esimas diferencias son divididas son cero, entonces

existe un polinomio PN(x) de grado N tal que:

PN(x) = ykP arak = 0, 1, 2, ..., M

Evaluando en los polinomios resultantes se tiene: —-¿P3(x) = x3− 11x2+ 39x − 47

(11)

Para K = 3 =¿PN(x) = -2 =¿yk —-¿P2(x) = −5x2+ 28x + 41 Para K = 1 =¿PN(x) = -18 =¿yk Para K = 2 =¿PN(x) = -5 =¿yk —-¿P1(x) = −13x − 5 Para K = 1 =¿PN(x) = -18 =¿yk

con esto se puede concluir que existe un polinomio PN(x) de grado N tal que:

PN(x) = ykP arak = 0, 1, 2, ..., M

2.3. En el c´odigo dado en la secci´on anterior, la matriz D se emplea para

alamacenar la tabla de diferencias divididas:

1. Compruebe que la siguiente modificacion del c´odigo dado, es una forma equiv-alente de calcular el polinomio interpolador de Newton.

for k=0:N A(k) = y(k); end fori=1:N for k=N:-1:j A(k) = (A(k)-A(k-1))/(x(k)-x(k-j)); end end

El c´odigo proporcionado posee errores en el programa, ya que las dimensiones de la matriz que se dan en este c´odigo son incompatibles para realizar las operaciones necesarias para la resoluci´on del m´etodo. as´ı como tambi´en hace referencia a columnas inexistentes como es el caso de la columna 0 (cero)

(12)

El c´odigo corregido de la interpolaci´on de Newton es el siguiente for k=1:N A(k,1) = y(k); end for i = 1:N-1 for j=N:-1:i+1

y(j) = (y(j) - y(j-1)) / (x(j) - x(j-i)); end

2. Repita el primer ejericio e indique las diferencias.

Polinomios Interpoladores Para f (x) = x12 P1(x) = 0,23x + 1,77 P2(x) = −0,1x2+ 0,26x + 1,75 P3(x) = 0,017x3− 0,112x2+ 0,447x + 1,648 P4(x) = −0,008x4+ 0,025x3− 0,14x2+ 0,487x + 1,6288 Para f (x) = 3 ∗ sin(π∗x6 )2 P1(x) = 0,75x − 0, 75 P2(x) = 0,375x2− 0,375x P3(x) = −0,25x3+ 1,875x2− 3,125x + 1,5 P4(x) = 0,0312x4− 0,562x3+ 2,967x2− 4,68x + 2,2

Valores de P(x) para los valores de x dados

Para f (x) = x12

P (x) 4,5 7,5 f (4, 5) = x1/2 f (7, 5) = x1/2 1 2,9357 3,495 2,12132 2,7386 2 2,625 3,1375 2,12132 2,7386 3 2,7175 3,495 2,12132 2,7386

(13)

Para f (x) = 3 ∗ sin(π∗x6 )2 P (x) 1,5 3,5 f (1, 5) = 3 ∗ sin(π∗x6 )2 f (3, 5) = 3 ∗ sin(π∗x6 )2 1 0,375 1,5775 5,636 ∗ 10−4 3,068 ∗ 10−3 2 0,2815 3,28125 5,636 ∗ 10−4 3,068 ∗ 10−3 3 0,1875 2,8125 5,636 ∗ 10−4 3,068 ∗ 10−3 4 0,1528 2,78325 5,636 ∗ 10−4 3,068 ∗ 10−3 Para f (x) = x12 P (x) Error en 4.5 Error en 7.5 4 0,383 0,356 3 0,237 0,1456 2 0,280 1,144 1 0,322 0,979 Para f (x) = 3 ∗ sin(π∗x6 )2 P (x) Error en 1.5 Error en 3.5 1 0,8945 0,4379 2 0,8123 0,1722 3 0,875 0,0048 4 0,898 0,0056

La diferencia con el anterior programa es que no crea el polinomio de diferen-cias divididas de forma expl´ıcita, sino que opera directamente creando un vector equivalente a toda la matriz de diferencias divididas.

Referencias

Documento similar