You are on page 1of 5

PROYECTO DE ANLISIS NUMRICO

Edisson Quizhpe (representante)


Gabriel Gmez
Fernando Erazo

201022977
201020336
201018306

ediaquiz@espol.edu.ec
gegomez@espol.edu.ec
ferazo@espol.edu.ec

1. Para aproximar la profundidad de una ladera submarina se han hecho mediciones, las cuales relacionan la profundidad
de la ladera, expresada en m, con la distancia respecto a la orilla, expresada en km. Empleando los datos que se dan a
continuacin, construya el trazador cbico natural para aproximar la profundidad de la ladera a 1.5 km respecto a la
orilla.
Distancia respecto a la orilla
0
1
2
3
Profundidad de la ladera

170

235

320

Escriba el sistema de ecuaciones del cual se obtienen los valores de ci .


%Algoritmo para aproximar la profundidad de una ladera mediante Trazador cbico natural
clear;clc;
% Datos iniciales
x=[0 1 2 3];
f=[1 170 235 320];
plot(x,f,'*');xlabel('Distancia respecto a la orilla');ylabel('Profundidad de la
ladera');grid
% Cantidad n+1 de datos
n=length(f)-1;
% Qu ocurre si interpolamos con Lagrange?
p=polyfit(x,f,n);
t=min(x):0.01:max(x);
hold on;plot(t,polyval(p,t));axis([min(x)-15 max(x)+15 min(f)-40 max(f)+40]);grid off;
% Mo=Mn=0
M(1,1)=0;M(n+1,1)=0;
% Clculo de los hi's y mostramos
for i=0:n-1;
h(i+1)=x(i+2)-x(i+1);
end
h
% Construccin de la matriz A(n-1)x(n-1) y el vector del sistema (5.2.3) y los mostramos
A(1,1)=2*(h(1)+h(2));A(1,2)=h(2);
A(n-1,n-2)=h(n-1);A(n-1,n-1)=2*(h(n-1)+h(n));

B(1,1)=(6/h(2))*(f(3)-f(2))-(6/h(1))*(f(2)-f(1));
B(n-1,1)=(6/h(n))*(f(n+1)-f(n))-(6/h(n-1))*(f(n)-f(n-1));
for i=2:n-2
A(i,i-1)=h(i);
A(i,i)=2*(h(i)+h(i+1));
A(i,i+1)=h(i+1);
B(i)=(6/h(i+1))*(f(i+2)-f(i+1))-(6/h(i))*(f(i+1)-f(i));
end
A
B
% Calculamos el vector con los momentos M => resolver el sistema (5.2.3)
M(2:n,:)=A\B
% Construimos la matriz de coeficientes de los polinomios Pi=[di ci bi ai] y mostramos
for i=0:n-1
P(i+1,1)=(M(i+2)-M(i+1))/(6*h(i+1));
P(i+1,2)=M(i+1)/2;
P(i+1,3)=(f(i+2)-f(i+1))/h(i+1)-(h(i+1)/6)*(M(i+2)+2*M(i+1));
P(i+1,4)=f(i+1);
end
P

%
%
%
%

di
ci
bi
ai

% Graficamos los polinomios


figure;plot(x,f,'*','LineWidth',3);xlabel('Distancia respecto a la
orilla');ylabel('Profundidad de la ladera');axis([min(x)-15 max(x)+15 min(f)-40
max(f)+40])
for i=0:n-1
hold on
t=x(i+1):0.01:x(i+2);
if mod(i,2)==0
plot(t,polyval(P(i+1,:),t-x(i+1)),'black','LineWidth',3)
else
plot(t,polyval(P(i+1,:),t-x(i+1)),'red','LineWidth',3)
end
end
t=min(x):0.01:max(x);
hold on;plot(t,polyval(p,t));axis([min(x)-15 max(x)+15 min(f)-40 max(f)+40]);grid off;
%Calculamos la profundidad de la ladera a los 1.5 km
p1=P(1,4)+P(1,3)*(1.5)+P(1,2)*(1.5)^2+P(1,1)*(1.5)^3;
p1
p2=P(2,4)+P(2,3)*(1.5-1)+P(2,2)*(1.5-1)^2+P(2,1)*(1.5-1)^3;
p2
p3=P(3,4)+P(3,3)*(1.5-2)+P(3,2)*(1.5-2)^2+P(3,1)*(1.5-2)^3;
p3

2. Resolver el siguiente problema de valor inicial

1 x y ' xy x 1 x , y (0) 2 , 0 x 12
2

Usando el mtodo de Runge-Kutta de cuarto orden:


a) Escriba el algoritmo para la funcin especfica f ( x, y ) .
b) Escriba la tabla de resultados para h 0.1 .
%Algoritmo de aproximacion de PVI's
clc;
clear;
format long
%Datos iniciales:
f='(x*y)/(1-x^2)+x';
Y=[2];
T=[ ];
y=2;
t=0;
h=0.1;
%FI(hi,ti,xi)Runge-Kutta
%FI=1/6*(K1+2K2+2K3+K4); K1=f(t,y); K2=f(t+h/2,y+h/2*K1);
%K3=f(t+h/2,y+h/2*K2); K4=f(t+h,y+h*K3);
%Calculamos los Ki's ,FI's y Yi's.Utilizamos vectores para facilitar el manejo de los
calculos
K1=[ ];
K2=[ ];
K3=[ ];
K4=[ ];
FI=[ ];
N=5;
for i=0:N
T(i+1,1)=t+i*h;
K1(i+1,1)=(T(i+1)*Y(i+1))/(1-T(i+1)^2)+T(i+1);
K2(i+1,1)=((T(i+1)+(h/2))*(Y(i+1)+(h/2)*K1(i+1,1)))/(1-(T(i+1)+h/2)^2)+(T(i+1)+(h/2));
K3(i+1,1)=((T(i+1)+(h/2))*(Y(i+1)+(h/2)*K2(i+1,1)))/(1-(T(i+1)+h/2)^2)+(T(i+1)+(h/2));
K4(i+1,1)=((T(i+1)+h)*(Y(i+1)+h*K3(i+1,1)))/(1-(T(i+1)+h)^2)+(T(i+1)+h);
FI(i+1,1)=1/6*(K1(i+1,1)+2*K2(i+1,1)+2*K3(i+1,1)+K4(i+1,1));
Y(i+2,1)=Y(i+1)+h*FI(i+1);
end
%Agrupamos los datos en una matriz para poder presentarlos de manera
%conjunta
tabla=[];
for i=0:N
tabla=[tabla;T(i+1,1),Y(i+1,1),K1(i+1,1),K2(i+1,1),K3(i+1,1),K4(i+1,1),FI(i+1,1)];
end
tabla
%Graficamos T vs Y, para esto primero definimos t & y
t=[T(1),T(2),T(3),T(4),T(5),T(6)];
y=[Y(1),Y(2),Y(3),Y(4),Y(5),Y(6)];
plot(t,y,'*');xlabel('xi');ylabel('yi');grid

3. Calcular la siguiente integral, con el algoritmo de la integral doble de Simpson:


2
2
x
9

y
dA

Donde R es la regin acotada por: x 2 y 2 9 . Usar n m 4 .


%Algoritmo de Integracin Multiple
clc;
clear;
format long;
%Datos iniciales:
f='x^2*sqrt(9-y^2)';
%limites de integracin:
%Eje x Mtodo de Simpson Compuesto
%Aplicando simetra tomamos:
a=0;
b=3;
%Eje y Mtodo de Simpson Compuesto
u=0;
v='sqrt(9-x^2)';
n=4; m=4;
hx=(b-a)/n;
%g(x)=int(f,u,v);
%Calculamos los xi
x=[];
for i=0:n
x(i+1,1)=a+i*hx;
end
%Definimos vectores que nos facilitaran el manejo de los calculos
V=[];
y=[];
G=[];
hy=[];
%Evaluamos los xi en la funcin v
for k=0:n
V(k+1,1)=sqrt(9-(x(k+1,1))^2);
end
%Calculamos hy para cada calor de v
for i=0:n
hy(i+1,1)=(V(i+1,1)-u)/m;
end
%Procedemos a calcular los yi's correspondientes a cada xi
for j=0:m
y(j+1,1)=u+j*hy(1,1);
y(j+1,2)=u+j*hy(2,1);
y(j+1,3)=u+j*hy(3,1);
y(j+1,4)=u+j*hy(4,1);
y(j+1,5)=u+j*hy(5,1);
end
%Ahora calculamos G(x) para cada xi
for i=0:n

G(i+1,1)=(hy(i+1,1)/3)*(((x(i+1,1))^2*sqrt(9-(y(1,i+1))^2))+4*((x(i+1,1))^2*sqrt(9(y(3,i+1))^2)))+2*(((x(i+1,1))^2*sqrt(9-(y(2,i+1))^2))+((x(i+1,1))^2*sqrt(9(y(4,i+1))^2)))+((x(i+1,1))^2*sqrt(9-(y(5,i+1))^2));
end
%como tomamos a=0 y b=3 la integracin nos dar solo la mitad del resultado
%que debe ser obtenido, para solucionar esto multiplicamos por 2 a ITT
ITT=2*(hx/3)*(G(1,1)+4*(G(3,1))+2*(G(2,1)+G(4,1))+G(5,1));
x
y
G
ITT

You might also like