Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INGENIERÍA CIVIL
”MÉTODOS NUMÉRICOS”
Nivel IV - competencias
Noviembre-2010
1
Índice
1. Interpolación 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àfico de los nodos (puntos) y el
polinomio interpolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Cree su propio codigo para el mètodo 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ón 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ódigo dado en la sección anterior, la matriz D se emplea para alamacenar
la tabla de diferencias divididas: . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2
INTERPOLACIÓN
1. Interpolación de Lagrange
Figura 1: f (x) = x3
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;
Punto xk f (xk )
1 −1 −1
2 0 0
3 1 1
0,5000 −0,5000 0
L = −1,0000 0 1,0000
0,5000 0,5000 0
C= 0 1 0
Punto xk f (xk )
1 −1 −1
2 0 0
3 1 1
4 2 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àfico de los nodos (puntos)
y el polinomio interpolador
Para que el programa anterior grafique los nodos y el Polinomio intepolador es necesisario
añadir este código luego de todo el código 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’)
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;
Cuadro de temperaturas:
5
H T
13 18
14 18
15 17
16 16
17 15
18 14
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ón de Newton
1
Para f (x) = x 2
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
2
Para f (x) = 3 ∗ sin( π∗x
6 )
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
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
1
P araf (x) = x 2
2 0 0 0 0
2,23 0,23 0 0 0
D = 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
π ∗ x 2
P araf (x) = 3 ∗ sin( )
6
0 0 0 0 0
0,75 0,75 0 0 0
D = 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
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
1
Para f (x) = x 2
2
Para f (x) = 3 ∗ sin( π∗x
6 )
2 2
P (x) 1,5 3,5 f (1, 5) = 3 ∗ sin( π∗x
6 ) f (3, 5) = 3 ∗ sin( π∗x
6 )
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
1
Para f (x) = x 2
9
2
Para f (x) = 3 ∗ sin( π∗x
6 )
1. Pruebe que si las (N + 1)-ésimas diferencias son divididas son cero, entonces
las siguientes hasta la M -ésimas también son cero.
x f (x)
−2 −18
−1 −5
0 −2
2 −2
3 −7
6 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)-ésimas diferencias son
divididas son cero, entonces las siguientes hasta la M -ésimas también son cero.
2. Pruebe que si las (N + 1)-ésimas diferencias son divididas son cero, entonces
existe un polinomio PN (x) de grado N tal que:
10
Para K = 3 =¿PN (x) = -2 =¿yk
con esto se puede concluir que existe un polinomio PN (x) de grado N tal que:
1. Compruebe que la siguiente modificacion del código 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
11
El código corregido de la interpolación 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
Polinomios Interpoladores
1
Para f (x) = x 2
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
1
Para f (x) = x 2
12
2
Para f (x) = 3 ∗ sin( π∗x
6 )
2 2
P (x) 1,5 3,5 f (1, 5) = 3 ∗ sin( π∗x
6 ) f (3, 5) = 3 ∗ sin( π∗x
6 )
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
1
Para f (x) = x 2
2
Para f (x) = 3 ∗ sin( π∗x
6 )
13