Newton y Lagrange
Short Description
Download Newton y Lagrange...
Description
´ ´ ESCUELA POLITECNICA DEL EJERCITO
INGENIER´IA CIVIL
´ ´ ”METODOS NUMERICOS”
Jos´ e Israel Gualavis´ı D´ıaz
Nivel IV - competencias
Noviembre-2010
1
´Indice 1. Interpolaci´ on de Lagrange 1.1. Determine en los siguientes casos el polinomio interpolador de Lagrange para aproximar la funcion f (x) = x3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Modificar el codigo dado para que realice el gr`afico de los nodos (puntos) y el polinomio interpolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Cree su propio codigo para el m`etodo de Lagrange . . . . . . . . . . . . . . . . . 1.4. En el cuadro, se muestran temperaturas que fueron medidas cada hora, durante un lapso total de 5 horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2. Interpolaci´ on de Newton 2.1. En base a las funciones y datos que se muestran en el cuadro, realizar. . . . . . . 2.2. Considere M + 1 puntos (xo , yo ),.....,(xM , yM ) . . . . . . . . . . . . . . . . . . . . 2.3. En el c´ odigo dado en la secci´ on anterior, la matriz D se emplea para alamacenar la tabla de diferencias divididas: . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 7 10
2
3 5 5 5
11
´ INTERPOLACION 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 3
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 1 2 3
xk −1 0 1
f (xk ) −1 0 1
0,5000 −0,5000 0 0 1,0000 L = −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 1 2 3 4
xk −1 0 1 2
f (xk ) −1 0 1 8
−0,1667 0,5000 −0,3333 0 0,5000 −1,0000 −0,5000 1,0000 L= −0,5000 0,5000 1,0000 0 0,16670 −0,1667 0 C= 1 0 0 0
4
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
Cuadro de temperaturas:
5
H 13 14 15 16 17 18
T 18 18 17 16 15 14
1. Construir el polinomio interpolador de Lagrange correspondiente a los datos del cuadro. Empleando el programa anterior tenemos como resultado: (x − 11) ∗
x4 − 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.
Figura 2: f (x) = x3
6
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.
1
Para f (x) = x 2
x=4,5;7,5
Para f (x) = 3 ∗ sin( π∗x 6 )
k 0 1 2 3 4
xk 4 5 6 7 8
f (xk ) 0 0,75 2,25 3,00 2,25
k 0 1 2 3 4
xk 0 1 2 3 4
f (xk ) 2 2,23 2,44 2,64 2,82
2
x=1,5;3,5
Para la resoluci´ on de este ejercicio hemos desarrollado el siguiente c´odigo en Matlab: ´ ´ —–¿CODIGO DEL METODO DE INTERPOLACION DE NEWTON ¡——-
7
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: 1
P araf (x) = x 2
2 0 0 0 0 2,23 0,23 0 0 0 0 0 D = 2,44 0,21 −0,01 2,64 0,2 0,005 0,0017 0 2,82 0,18 −0,01 −0,0018 −0,0008 π ∗ x 2 ) P araf (x) = 3 ∗ sin( 6
0 0 0 0 0 0,75 0,75 0 0 0 1,5 0,375 0 0 D = 2,25 3,00 0,75 −0,375 −0,25 0 2,25 −0,75 −0,75 −0,125 0,0312
Polinomios Interpoladores 1
Para f (x) = x 2
8
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 2 Para f (x) = 3 ∗ sin( π∗x 6 )
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
1
Para f (x) = x 2
P (x) 1 2 3 4
4,5 2,9357 2,625 2,7175 2,805
7,5 3,495 3,1375 3,495 5,42
f (4, 5) = x1 /2 2,12132 2,12132 2,12132 2,12132
f (7, 5) = x1 /2 2,7386 2,7386 2,7386 2,7386
2 Para f (x) = 3 ∗ sin( π∗x 6 )
P (x) 1 2 3 4
1,5 0,375 0,2815 0,1875 0,1528
3,5 1,5775 3,28125 2,8125 2,78325
f (1, 5) = 3 ∗ sin( π∗x 6 ) −4 5,636 ∗ 10 5,636 ∗ 10−4 5,636 ∗ 10−4 5,636 ∗ 10−4
2
2 f (3, 5) = 3 ∗ sin( π∗x 6 ) 3,068 ∗ 10−3 3,068 ∗ 10−3 3,068 ∗ 10−3 3,068 ∗ 10−3
1
Para f (x) = x 2
P (x) 4 3 2 1
Error en 4.5 0,383 0,237 0,280 0,322
9
Error en 7.5 0,356 0,1456 1,144 0,979
2 Para f (x) = 3 ∗ sin( π∗x 6 )
P (x) 1 2 3 4
2.2.
Error en 1.5 0,8945 0,8123 0,875 0,898
Error en 3.5 0,4379 0,1722 0,0048 0,0056
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 −2 −1 0 2 3 6
f (x) −18 −5 −2 −2 −7 142
−18 0 0 0 0 0 −5 13 0 0 0 0 −2 3 −5 0 0 0 D= −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) = yk P arak = 0, 1, 2, ......., M
Evaluando en los polinomios resultantes se tiene: —-¿P3 (x) = x3 − 11x2 + 39x − 47
Para K = 1 =¿PN (x) = -18 =¿yk Para K = 2 =¿PN (x) = -5 =¿yk 10
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) = yk P 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 equivalente 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)
11
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 1
Para f (x) = x 2
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 2 Para f (x) = 3 ∗ sin( π∗x 6 )
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 1
Para f (x) = x 2
P (x) 1 2 3 4
4,5 2,9357 2,625 2,7175 2,805
7,5 3,495 3,1375 3,495 5,42
f (4, 5) = x1 /2 2,12132 2,12132 2,12132 2,12132 12
f (7, 5) = x1 /2 2,7386 2,7386 2,7386 2,7386
2 Para f (x) = 3 ∗ sin( π∗x 6 )
P (x) 1 2 3 4
1,5 0,375 0,2815 0,1875 0,1528
3,5 1,5775 3,28125 2,8125 2,78325
f (1, 5) = 3 ∗ sin( π∗x 6 ) −4 5,636 ∗ 10 5,636 ∗ 10−4 5,636 ∗ 10−4 5,636 ∗ 10−4
2
2 f (3, 5) = 3 ∗ sin( π∗x 6 ) 3,068 ∗ 10−3 3,068 ∗ 10−3 3,068 ∗ 10−3 3,068 ∗ 10−3
1
Para f (x) = x 2
P (x) 4 3 2 1
Error en 4.5 0,383 0,237 0,280 0,322
Error en 7.5 0,356 0,1456 1,144 0,979
Error en 1.5 0,8945 0,8123 0,875 0,898
Error en 3.5 0,4379 0,1722 0,0048 0,0056
2 Para f (x) = 3 ∗ sin( π∗x 6 )
P (x) 1 2 3 4
La diferencia con el anterior programa es que no crea el polinomio de diferencias divididas de forma expl´ıcita, sino que opera directamente creando un vector equivalente a toda la matriz de diferencias divididas.
13
View more...
Comments