Académique Documents
Professionnel Documents
Culture Documents
INGRID MILAN CARO COD 273648 RAFAEL TORRES COD 214747 MANUEL VEGA COD 214992
UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERA DEPARTAMENTO DE INGENIERA CIVIL Y AGRCOLA MTODOS NUMERICOS BOGOT D.C. MAYO DE 2011
1) Mdulo que tiene el mtodo numrico a utilizar 2) Mdulo que tiene la funcin a investigar 3) Mdulo que tiene los datos de entrada y que ejecuta el mtodo numrico con la funcin a investigar
MODULO CON EL METODO A UTILIZAR REGLA COMPUESTA DEL TRAPECIO function s=trap(f, a, b, M) h=(b-a)/M; s=0; for k=1:(M-1) x=a+h*k; s=s+f(x); end s=h*(f(a)+f(b))/2+h*s; endfunction
MODULO CON LOS DATOS DE ENTRADA Y LA FUNCION DEL METODO EVALUA endfunction a=5 b=10 M=10 m=10 s=trap(f,a,b,M)
QUE LOS
// // // // //
print(%io(2),s,M,a,b); RESULTADOS
Punto 2
Realizar en MATLAB, OCTAVE o SCILAB un programa que efecte los clculos de la primera derivada de tan(x) en x = 1 utilizando las cinco aproximaciones que aparecen a continuacin (las ecuaciones (1), (2) y (3) y las ecuaciones (A) y (B)), utilizando h=0.1, 0.05 y 0.02. El programa tambin debe evaluar el error relativo verdadero de cada aproximacin.
Es obligatorio usar vectores para almacenar el clculo de cada una de las frmulas. Los resultados deben quedar consignados primero en una matriz. Por tanto los resultados deben ser presentados al final en forma matricial. (1) f ' 0 }
f 0 f 1 h
Cdigo
function [L, n]=difflim(f, x) //entrada - f es la funcion // - x ws el punto de derivacion //salida - L=[H' D' E']: H es el valor de los incrementos // D es el vector de las aproximaciones a las derivadas // E es el vector de los errores relativos max1=15; h=.01; H(1)=h; D(1)=(f(x)-f(x-h))/(h); E(1)=0; R(1)=0; for n=1:2 h=.02; H(n+1)=h; D(n+1)=(f(x)-f(x-h))/(h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); for n=1:1 h=.05; H(n+1)=h; D(n+1)=(f(x)-f(x-h))/(h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); end end n=length(D)-1;
// Funcin a evaluar
function z=f(x) z=tan(x) endfunction x=1
(2)
f '0 }
f1 f 0 h
Cdigo
function [L, n]=difflim(f, x) //entrada - f es la funcion // - x ws el punto de derivacion //salida - L=[H' D' E']: H es el valor de los incrementos // D es el vector de las aproximaciones a las derivadas // E es el vector de los errores relativos max1=15; h=.01; H(1)=h; D(1)=(f(x+h)-f(x))/(h); E(1)=0; R(1)=0; for n=1:2 h=.02; H(n+1)=h; D(n+1)=(f(x+h)-f(x))/(h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); for n=1:1 h=.05;
H(n+1)=h; D(n+1)=(f(x+h)-f(x))/(h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); end end n=length(D)-1; L=[H'; D'; E']; endfunction
// Funcin a evaluar
function z=f(x) z=tan(x) endfunction x=1
(3) f '0 }
f 1 f 1 2h
Cdigo
max1=15; h=.01; H(1)=h; D(1)=(f(x+h)-f(x-h))/(2*h); E(1)=0; R(1)=0; for n=1:2 h=.02; H(n+1)=h; D(n+1)=(f(x+h)-f(x-h))/(2*h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); for n=1:1 h=.05; H(n+1)=h; D(n+1)=(f(x+h)-f(x-h))/(2*h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); end end n=length(D)-1; L=[H'; D'; E'];
Endfunction
//Funcion a evaluar
function z=f(x) z=tan(x) endfunction x=1
(A)
f '0 }
3 f 0 4 f 1 f 2 2h
function [L, n]=difflim(f, x) //entrada - f es la funcion // - x ws el punto de derivacion //salida - L=[H' D' E']: H es el valor de los incrementos // D es el vector de las aproximaciones a las derivadas // E es el vector de los errores relativos max1=15; h=.01; H(1)=h; D(1)=(3*f(x)-4*f(x-h)+f(x-2*h))/(2*h); E(1)=0; R(1)=0;
for n=1:2 h=.02; H(n+1)=h; D(n+1)=(3*f(x)-4*f(x-h)+f(x-2*h))/(2*h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); for n=1:1 h=.05; H(n+1)=h; D(n+1)=(3*f(x)-4*f(x-h)+f(x-2*h))/(2*h); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); end end n=length(D)-1; L=[H'; D'; E']; Endfunction // Funcion a evaluar
function z=f(x) z=tan(x) endfunction x=1 // aproximacin de la derivada en el punto x [L,n]=difflim(f,x) print(%io(2),L);
(B)
f ' '0 }
f 0 2 f 1 f 2 h2
clc; disp(" ** LABORATORIO No 5** ") disp(" **INTEGRACION NUMERICA** ") disp("Codigos: 273648 214747 214992") ww=getdate(); mprintf( "AA:%d ,MM:%d ,DD:%d siendo las HH:%d ,MM:%d ,SS:%d\n\n\n ",ww(1),ww(2),ww(6),ww(7),ww(8),ww(9)); function [L, n]=difflim(f, x, toler) //entrada - f es la funcion // - x es el punto de derivacion //salida - L=[H' D' E']: H es el valor de los incrementos // D es el vector de las aproximaciones a las derivadas // E es el vector de los errores relativos max1=15; h=.01; H(1)=h; D(1)=(3*f(x)-4*f(x-h)+f(x-2*h))/(2*h); E(1)=0; R(1)=0; for n=1:2 h=.02; H(n+1)=h; D(n+1)=(f(x)-2*f(x-h)+f(x-2*h))/(h^2); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps); for n=1:1 h=.05; H(n+1)=h; D(n+1)=(f(x)-2*f(x-h)+f(x-2*h))/(h^2); E(n+1)=abs(D(n+1)-D(n)); R(n+1)=2*E(n+1)*(abs(D(n+1))+abs(D(n))+%eps);
end end n=length(D)-1; L=[H'; D'; E']; endfunction function z=f(x) z=tan(x) endfunction x=1 [L,n]=difflim(f,x) print(%io(2),L);