You are on page 1of 8

Alumno: Caja Torre Brayner Andy

% Ejercicio 1
% Spline natural definido por el usuario
% Algoritmo Moderno
clc, clear all, x=[1 2 4 5],y=[2 10 7
2],n=length(x)
dh=x(2:n)-x(1:n-1) % calculo de hi
yp=(y(2:n)-y(1:n-1))./dh % diferencias divididas
de 1er orden
a=2*(dh(1:n-2)+dh(2:n-1)) % diagonal
b=dh(2:n-2) % diagonal desplazada
TD=diag(a)+diag(b,1)+diag(b,-1) % Matriz
tridiagonal
VC=6*(yp(2:n-1)-yp(1:n-2))' % Vector derecho
VS=TD\VC % Contiene los M intermedios TD*VS=VC
M=[0 VS' 0] % Vector M completo Mi=S"(xi)
% Calculo de los coefientes
a=(M(2:n)-M(1:n-1))./(6*dh)
b=M(1:n-1)/2
c=yp-dh/6.*(2*M(1:n-1)+M(2:n))
d=y(1:n-1)
syms z
S0=a(1)*(z-1)^3+b(1)*(z-1)^2+c(1)*(z-1)+d(1)
S1=a(2)*(z-2)^3+b(2)*(z-2)^2+c(2)*(z-2)+d(2)
S2=a(3)*(z-4)^3+b(3)*(z-4)^2+c(3)*(z-4)+d(3)
subs(S0,1),subs(S0,2),subs(S1,2),subs(S1,4)
s0=expand(S0)
s1=expand(S1)
s2=expand(S2)
% Comprobar al condicion de spline natural
v1=subs(diff(diff(s0)),1) % 0
v2=subs(diff(diff(s2)),5) % 0
v3=subs(diff(diff(s0)),2) %-75/8
v4=subs(diff(diff(s1)),2) % en x=2 la funcion es
continua y differneciable
% comprobar las demas condiciones del spline
% interpolacion, continuidad de S, S' y S"
e1=subs(s0,1)
xi=input('xi=')
if xi>=1 && xi<=2
e=double(subs(s0,xi))
elseif xi>=2 && xi<=4
e=double(subs(s1,xi))
elseif xi>=4 && xi<=5
e=double(subs(s2,xi))
else
disp('Fuera de Rango!!!')
end
% Ejercicio 1 : Graficar los Splines entre [1,5]
x1=1:0.1:2; x2=2:0.1:4; x3=4:0.1:5;
y1=subs(S0,x1); y2=subs(S1,x2); y3=subs(S2,x3)
plot(x1,y1,x2,y2,x3,y3), grid
%FORMULA 1
%Modifique para la segunda derivada usando 2
formulas
clc
clear all
format long
syms z
g=exp(-z)*cos(5*z-1)
ezplot(g,[0,1])
dg=diff(diff(g))
xi=1
dye=double(subs(dg,xi))
tabla=[];
for i=1:16
h=10^-i
dya=double(subs(g,xi+h)-subs(g,xi)+subs(g,xi-
h))/(h^2)
err=abs(dye-dya)
tabla=[tabla; h dya err]
end
loglog(tabla(:,1),tabla(:,3),'*')
disp('h dya err')
disp(tabla)
[men,pos]=min(tabla(:,3))
hcritico=tabla(pos,1)
%FORMULA 2
%Modifique para la segunda derivada usando 2
formulas
clc
clear all
format long
syms z
g=exp(-z)*cos(5*z-1)
ezplot(g,[0,1])
dg=diff(diff(g))
xi=1
dye=double(subs(dg,xi))
tabla=[];
for i=1:16
h=10^-i
dya=double(-subs(g,xi-2*h)+16*subs(g,xi-h)-
30*subs(g,xi)+16*subs(g,xi+h)-
subs(g,xi+2*h))/(12*h^2)
err=abs(dye-dya)
tabla=[tabla; h dya err]
end
loglog(tabla(:,1),tabla(:,3),'*')
disp('h dya err')
disp(tabla)
[men,pos]=min(tabla(:,3))
hcritico=tabla(pos,1)
% Ejercicio 03
% integrfacion de un polinomio interpolante
% trapecio
clc
clear all
syms z
g=exp(-z)*cos(5*z-1)
Iindef1=int(g)
Ie=double(int(g,0,1))
%m=8 trapecio, n=8 particion
n=8
h=1/n
Ia4a=h/2*double(subs(g,0)+subs(g,1/8))
Ia4b=h/2*double(subs(g,1/8)+subs(g,1/4))
Ia4c=h/2*double(subs(g,1/4)+subs(g,3/8))
Ia4d=h/2*double(subs(g,3/8)+subs(g,1/2))
Ia4e=h/2*double(subs(g,1/2)+subs(g,5/8))
Ia4f=h/2*double(subs(g,5/8)+subs(g,3/4))
Ia4g=h/2*double(subs(g,3/4)+subs(g,7/8))
Ia4h=h/2*double(subs(g,7/8)+subs(g,1))
Ia4=Ia4a+Ia4b+Ia4c+Ia4d+Ia4e+Ia4f+Ia4g+Ia4h
e4=abs(Ie-Ia4)
eporcentual=e4/Ie*100
% Ejercicio 4
% integracion mediante la formula
% del trapecio compuesta para n particiones
clc
clear all
syms z
g=exp(-z)*cos(5*z-1)
Iindef=int(g)

Ie=double(int(g,0,1)) % 0.138309957100809
n=input('Ingrese Numero de particiones=')
h=(1-0)/n
x=0:h:1, y=double(subs(g,x))
Ia=h/2*(y(1)+2*sum(y(2:n))+y(n+1))
err=abs(Ie-Ia)

% n h Ia err
% 1 1 0.149920127949778
0.011610170848969
% 2 1/2 0.096412204771758
0.041897752329051
% 4 1/4 0.127701158503610
0.010608798597199
% 8 1/8 0.135659569976087
0.002650387124722
% 16 1/16 0.137647589312073
6.623677887359347e-04
% 32 1/32 0.138144381137718
1.655759630913023e-04
% 64 1/64 0.138268564134666
4.139296614333321e-05
%128 1/128 0.138299608923711
1.034817709821834e-05

% programa 08
%integracuion mediante la formyla de simpson 1/3
clc
clear all
syms z
g=exp(-z)*cos(5*z-1)
Iindef=int(g)
Ie=double(int(g,0,1))
% m=1 parabola, n=2 particion
n=2
h=1/n
Ia1=h/3*double(subs(g,0)+4*subs(g,1/2)+subs(g,1))
e1=abs(Ie-Ia1) %0.059733726721725
% m=2 parabola, n=4 particion
n=4
h=1/n
Ia2a=h/3*double(subs(g,0)+4*subs(g,1/4)+subs(g,1/2
))
Ia2b=h/3*double(subs(g,1/2)+4*subs(g,3/4)+subs(g,1
))
Ia2=Ia2a+Ia2b
e2=abs(Ie-Ia2) %1.791473532483656e-04

%Ejercicio 5
%m=4 parabolas, 8 particiones
n=8
h=1/n
Ia3a=h/3*double(subs(g,0)+4*subs(g,1/8)+subs(g,2/8
))
Ia3b=h/3*double(subs(g,2/8)+4*subs(g,3/8)+subs(g,4
/8))
Ia3c=h/3*double(subs(g,4/8)+4*subs(g,5/8)+subs(g,6
/8))
Ia3d=h/3*double(subs(g,6/8)+4*subs(g,7/8)+subs(g,1
))
Ia3=Ia3a+Ia3b+Ia3c+Ia3d
e3=abs(Ie-Ia3) % 2.416699437152170e-06

You might also like