Está en la página 1de 3

% Integracion Numerica

% Metodo del Trapecio


clc, clear all, syms x, format long
% Usa de la Matematica Simbolica
f=x^3/(1+x^(1/2))
int1=int(f),pretty(int1) % integral indefinida
int2=int(f,1,2)
Ie=double(int2)
% Trapecio
h=1
I1=h/2*double(subs(f,1)+subs(f,2)),e1=abs(Ie-I1)
h=0.5
I2a=h/2*double(subs(f,1)+subs(f,1.5))
I2b=h/2*double(subs(f,1.5)+subs(f,2))
I2=I2a+I2b,e2=abs(Ie-I2)

% Integracion Numerica
% Metodo del Trapecio Compuesto
% Para "n" particiones
clc, clear all, syms x, format long
f=exp(-x)*cos(x)*x, int2=int(f,0,1), Ie=double(int2)
% Trapecio Compuesto
n=input('Numero de Particiones, n=')
h=(1-0)/n
xx=0:h:1
yy=double(subs(f,xx))
Ia=h/2*(yy(1)+2*sum(yy(2:n))+yy(n+1))
err=abs(Ie-Ia)

% Integracion Numerica
% Metodo de Simpson 1/3
clc, clear all, syms x, format long
f=exp(-x)*cos(x)*x
int1=int(f),pretty(int1) % integral indefinida
int2=int(f,0,1),Ie=double(int2)
% Simpson 1/3
h=0.5
I1=h/3*double(subs(f,0)+4*subs(f,0.5)+subs(f,1)),e1=abs(Ie-I1)
% I1=0.210554595129626 e1 =3.777746497199697e-04
h=0.25
I2a=h/3*double(subs(f,0)+4*subs(f,0.25)+subs(f,0.5))
I2b=h/3*double(subs(f,0.5)+4*subs(f,0.75)+subs(f,1))
I2=I2a+I2b,e2=abs(Ie-I2)

% prueba09.m
% Integracion Numerica
% Metodo de Simpson Compuesto para
% Para "n" particiones (par)
clc, clear all, syms x, format long
f=exp(-x)*cos(x)*x, int2=int(f,0,1), Ie=double(int2)
% Trapecio Compuesto
n=input('Numero de Particiones, n=')
if rem(n,2)==0
h=(1-0)/n
xx=0:h:1
yy=double(subs(f,xx))
Ia=h/3*(yy(1)+4*sum(yy(2:2:n))+2*sum(yy(3:2:n-1))+yy(n+1))
err=abs(Ie-Ia)
% n h err
% 2 0.5 3.777746497199697e-04
% 4 0.25 3.256613048108203e-05
% 8 0.125 2.173030777874452e-06
% 16 0.0625 1.379539571466637e-07
else
disp('N debe ser par!!!')

% Metodo de Simpson 3/8


clc, clear all, syms x, format long
f=exp(-x)*cos(x)*x
int1=int(f),pretty(int1) % integral indefinida
int2=int(f,0,1),Ie=double(int2)
% Simpson 3/8
h=1/3 % 3 particiones
I1=3*h/8*double(subs(f,0)+3*subs(f,1/3)+3*subs(f,2/3)+subs(f,1))
e1=abs(Ie-I1)

% prueba01.m
% EDO de primer orden, PVI, MEtodo de Euler
% solucion analitica
% y'=(1+x)^2*y y(1)=2 x en [1,2]
clc, clear all
y=dsolve('Dy=(1+x)^2*y','y(1)=2','x') % Var. indep.:x
n=input('Numero de particiones, n='), h=(2-1)/n
xx=1:h:2; yy=double(subs(y,xx));
f=inline('(1+x)^2*y'), xe(1)=1, ye(1)=2
for i=1:n
xe(i+1)=xe(i)+h;
ye(i+1)=ye(i)+h*f(xe(i),ye(i));
end
disp('X yEuler yExacta ')
disp([xe' ye' yy']) % EJ.Graficar Exacta vs Aprox
plot(xx,yy,'d',xe,ye,'*'), grid
err_max=max(abs(yy-ye))
% Probar para n=10, 100, 1000 y Hallar el err_max

% prueba07.m Sistema de 2 EDO de primer orden


% x'=t+2*x+3*y x(1)=2 y'=2*t-5*x+y y(1)=-3
% Euler
clc,clear all,
f=inline('t+2*x+3*y','t','x','y')
g=inline('2*t-5*x+y','t','x','y'), t(1)=1, x(1)=2, y(1)=-3
n=input('Numero de particiones, n=')
h=1/n
for i=1:n
t(i+1)=t(i)+h;
x(i+1)=x(i)+h*f(t(i),x(i),y(i));
y(i+1)=y(i)+h*g(t(i),x(i),y(i));
end
plot(t,x,t,y),grid,legend('x(t)','y(t)'), title('Metodo de Euler')

% prueba02.m
% EDO de primer orden, PVI - Taylor 2
% solucion analitica
% y'=(1+x)^2*y y(1)=2 x en [1,2]
clc, clear all
y=dsolve('Dy=(1+x)^2*y','y(1)=2','x') % Var. indep.:x
n=input('Numero de particiones, n='), h=(2-1)/n
xx=1:h:2; yy=double(subs(y,xx));
f=inline('(1+x)^2*y'), xe(1)=1, ye(1)=2
ff=inline('(1+x)^4*y+2*(1+x)*y')
for i=1:n
xe(i+1)=xe(i)+h;
ye(i+1)=ye(i)+h*f(xe(i),ye(i))+h^2/2*ff(xe(i),ye(i));
end
disp('X yTaylor2 yExacta ')
disp([xe' ye' yy']) % EJ.Graficar Exacta vs Aprox
plot(xx,yy,'d',xe,ye,'*'), grid
err_max=max(abs(yy-ye)), legend('Taylor2','Exacto')
% Probar para n=10, 100, 1000 y Hallar el err_max
% N 10 100 1000

También podría gustarte