Anda di halaman 1dari 12

Pontificia Universidad Católica de Chile

Escuela de Ingeniería
Departamento de Ingeniería Estructural y Geotécnica.
IMM2650 Métodos Matemáticos aplicados a la Ingenieria

Tarea 1-2º semestre 2006

Héctor Zuilt Z.
Pregunta i)
Error de aproximación con 21 nodos: 28.8670
f(x) y su polinomio interpolante de Lagrange N=20

4 Funcion f(x)
Polinomio Pn(t)
3.5

2.5

1.5

0.5

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Error de aproximación con 31 nodos: 155.8259


f(x) y su polinomio interpolante de Lagrange N=30

4 Funcion f(x)
Polinomio Pn(t)
3.5

2.5

1.5

0.5

-0.5
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Pregunta ii)
Error de aproximación con 21 nodos: 0.0185

f(x) y su polinomio interpolante de Lagrange a tramos N=20


3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Error de aproximación con 31 nodos: 0.0056
f(x) y su polinomio interpolante de Lagrange a tramos N=30
3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Pregunta iii)
Error de aproximación con 21 nodos: 0.0096

f(x) y su polinomio interpolante de Hermite a tramos N=20


3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Error de aproximación con 31 nodos: 0.0020
f(x) y su polinomio interpolante de Hermite a tramos N=30
3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Pregunta i) con puntos de Tchebycheff
Error de aproximación con 21 nodos: 0.2531
f(x) y su polinomio interpolante de Lagrange N=20
3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Error de aproximación con 21 nodos: 0.0128


f(x) y su polinomio interpolante de Lagrange N=30
3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Pregunta ii) con puntos de Tchebycheff
Error de aproximación con 21 nodos: 0.0240
f(x) y su polinomio interpolante de Lagrange a tramos N=20
3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Error de aproximación con 31 nodos: 0.0158

f(x) y su polinomio interpolante de Lagrange a tramos N=30


3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Pregunta iii) con puntos de Tchebycheff
Error de aproximación con 21 nodos: 0.0509
f(x) y su polinomio interpolante de Hermite a tramos N=20
3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Error de aproximación con 31 nodos: 0.0083

f(x) y su polinomio interpolante de Hermite a tramos N=30


3
Funcion f(x)
Polinomio Pn(t)
2.5

1.5

0.5

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Comentarios:

- Como era de esperarse, el polinomio de Lagrange empieza a oscilar en las orillas de


manera abrupta, desmejorando la aproximación (se ajusta en el centro pero se aleja
mucho en los extremos del intervalo).

- Como era de esperarse, en la medida que aumenta el número de nodos, aumenta la


precisión de la aproximación, excepto en el caso de la interpolación mediante el
polinomio de Lagrange (por el problema de oscilación).

- Claramente al aumentar el orden del polinomio de interpolación de cada sub-


intervalo, aumenta la precisión de la aproximación (Hermite es interpolación cúbica
y es mejor que la realizada usando parábolas).

- El uso de los nodos de Tchebycheff, mejora la aproximación del polinomio de


Lagrange, pues disminuye la oscilación en las orillas de estos. No obstante lo
anterior, empeora la aproximación de la aproximación por sub-intervalos en el resto
de los casos. También en este caso, al aumentar el número de nodos, aumenta la
calidad de la interpolación, con la diferencia que ahora este fenómeno es de carácter
generalizado.

Anexos

Tarea1.m
clc,close all,clear all
for N=20:10:30
%inicializacion de espacio x
x=linspace(-1,1,10001);
fx=(2+sin(6*pi*x))./(1+10*x.^2);
t=linspace(-1,1,N+1);
pk=(2+sin(6*pi*t))./(1+10*t.^2);

%PREGUNTA i)
figure,hold,title(['Polinomios de Lagrange N=' num2str(N)])
for k=1:length(t)
for n=1:length(x)
for l=1:length(t) %pitatoria
if l~=k
pit(l)=(x(n)-t(l))/(t(k)-t(l));
else
pit(l)=1;
end
end
fi(k,n)=prod(pit);
end
plot(x,fi(k,:))
end
figure,hold,title(['f(x) y su polinomio interpolante de Lagrange N='
num2str(N)])
Pn=pk*fi;
[Error1]=norm1trap(x,fx,Pn)
plot(x,fx,x,Pn,'r')
legend('Funcion f(x)','Polinomio Pn(t)')

%PREGUNTA ii)
for k=1:length(t)-1
xm(k,:)=linspace(t(k),t(k+1),3);
end
for k=1:size(xm,2)
for n=1:length(x)
for i=1:size(xm,1)
for l=1:size(xm,2) %pitatoria
if l~=k
pit2(i,l)=(x(n)-xm(i,l))/(xm(i,k)-xm(i,l));
else
pit2(i,l)=1;
end
end
end
fi2(k,n,:)=prod(pit2,2);
end
end
pm=(2+sin(6*pi*xm))./(1+10*xm.^2);
for i=1:size(xm,1)
pmt=pm(i,:);
fit=fi2(:,:,i);
Pmn(i,:)=pmt*fit;
end
for n=1:length(x)
for i=1:size(xm,1)
if x(n) <= xm(i,size(xm,2)) & x(n) >= xm(i,1)
Pn2(n)=Pmn(i,n);
end
end
end
[Error2]=norm1trap(x,fx,Pn2)
figure,hold,title(['f(x) y su polinomio interpolante de Lagrange a
tramos N=' num2str(N)])
plot(x,fx,x,Pn2,'r')
legend('Funcion f(x)','Polinomio Pn(t)')

%PREGUNTA iii)
for k=1:length(t)-1
for n=1:length(x)
fi3(k,n)=-(x(n)-t(k+1))^2*(2*x(n)-3*t(k)+t(k+1))/(t(k)-
t(k+1))^3;
fi31(k,n)=-(x(n)-t(k))^2*(2*x(n)-3*t(k+1)+t(k))/(t(k+1)-
t(k))^3;
psi(k,n)=(x(n)-t(k))*(x(n)-t(k+1))^2/(t(k)-t(k+1))^2;
psi1(k,n)=(x(n)-t(k+1))*(x(n)-t(k))^2/(t(k+1)-t(k))^2;
end
end
ppk=6*pi*cos(6*pi*t)./(1+10*t.^2)-(1+10*t.^2).^(-
2)*20.*t.*(2+sin(6*pi*t));
for n=1:length(x)
for k=1:length(t)-1
Pn3(n,k)=pk(k)*fi3(k,n)+pk(k+1)*fi31(k,n)+ppk(k)*psi(k,n)
+ppk(k+1)*psi1(k,n);
if x(n) <= t(k+1) & x(n) >= t(k)
Pn4(n)=Pn3(n,k);
end

end
end
[Error3]=norm1trap(x,fx,Pn4)
figure,hold,title(['f(x) y su polinomio interpolante de Hermite a
tramos N=' num2str(N)])
plot(x,fx,x,Pn4,'r')
legend('Funcion f(x)','Polinomio Pn(t)')
if N==20, clear all, end
end

Tchebycheff.m

clc,close all,clear all


% Puntos de Tchebycheff

for N=20:10:30
%inicializacion de espacio x
x=linspace(-1,1,1001);
fx=(2+sin(6*pi*x))./(1+10*x.^2);
i=[0:N];
t=-cos((2*i+1)*pi/(2*(N+1)));
t(1)=-1;
t(length(t))=1;
pk=(2+sin(6*pi*t))./(1+10*t.^2);

%PREGUNTA i)
figure,hold,title(['Polinomios de Lagrange N=' num2str(N)])
for k=1:length(t)
for n=1:length(x)
for l=1:length(t) %pitatoria
if l~=k
pit(l)=(x(n)-t(l))/(t(k)-t(l));
else
pit(l)=1;
end
end
fi(k,n)=prod(pit);
end
plot(x,fi(k,:))
end
figure,hold,title(['f(x) y su polinomio interpolante de Lagrange N='
num2str(N)])
Pn=pk*fi;
[Error1]=norm1trap(x,fx,Pn)
plot(x,fx,x,Pn,'r')
legend('Funcion f(x)','Polinomio Pn(t)')

%PREGUNTA ii)
for k=1:length(t)-1
xm(k,:)=linspace(t(k),t(k+1),3);
end
for k=1:size(xm,2)
for n=1:length(x)
for i=1:size(xm,1)
for l=1:size(xm,2) %pitatoria
if l~=k
pit2(i,l)=(x(n)-xm(i,l))/(xm(i,k)-xm(i,l));
else
pit2(i,l)=1;
end
end
end
fi2(k,n,:)=prod(pit2,2);
end
end
pm=(2+sin(6*pi*xm))./(1+10*xm.^2);
for i=1:size(xm,1)
pmt=pm(i,:);
fit=fi2(:,:,i);
Pmn(i,:)=pmt*fit;
end
for n=1:length(x)
for i=1:size(xm,1)
if x(n) <= xm(i,size(xm,2)) & x(n) >= xm(i,1)
Pn2(n)=Pmn(i,n);
end
end
end
[Error2]=norm1trap(x,fx,Pn2)
figure,hold,title(['f(x) y su polinomio interpolante de Lagrange a
tramos N=' num2str(N)])
plot(x,fx,x,Pn2,'r')
legend('Funcion f(x)','Polinomio Pn(t)')

%PREGUNTA iii)
for k=1:length(t)-1
for n=1:length(x)
fi3(k,n)=-(x(n)-t(k+1))^2*(2*x(n)-3*t(k)+t(k+1))/(t(k)-
t(k+1))^3;
fi31(k,n)=-(x(n)-t(k))^2*(2*x(n)-3*t(k+1)+t(k))/(t(k+1)-
t(k))^3;
psi(k,n)=(x(n)-t(k))*(x(n)-t(k+1))^2/(t(k)-t(k+1))^2;
psi1(k,n)=(x(n)-t(k+1))*(x(n)-t(k))^2/(t(k+1)-t(k))^2;
end
end
ppk=6*pi*cos(6*pi*t)./(1+10*t.^2)-(1+10*t.^2).^(-
2)*20.*t.*(2+sin(6*pi*t));
for n=1:length(x)
for k=1:length(t)-1
Pn3(n,k)=pk(k)*fi3(k,n)+pk(k+1)*fi31(k,n)+ppk(k)*psi(k,n)
+ppk(k+1)*psi1(k,n);
if x(n) <= t(k+1) & x(n) >= t(k)
Pn4(n)=Pn3(n,k);
end

end
end
[Error3]=norm1trap(x,fx,Pn4)
figure,hold,title(['f(x) y su polinomio interpolante de Hermite a
tramos N=' num2str(N)])
plot(x,fx,x,Pn4,'r')
legend('Funcion f(x)','Polinomio Pn(t)')
if N==20, clear all, end
end

norm1trap.m
function [Error]=norm1trap(x,fx,Pn)

d = abs(fx-Pn);
for i=1:length(x)-1
s(i)=(d(i)+d(i+1))/2*(x(i+1)-x(i));
end
Error=sum(s);
return

Anda mungkin juga menyukai