Solucion Integracion y Derivacion Numerica

download Solucion Integracion y Derivacion Numerica

of 15

Transcript of Solucion Integracion y Derivacion Numerica

LABORATORIO NMERO 05 DERIVACION E INTEGRACION NUMERICA

ING. FERNANDO SALAZAR

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

Mtodos Numricos / Laboratorio del mdulo 5 Punto 1A continuacin aparece el ltimo de los ejemplos resueltos de este mdulo 5. Para este laboratorio usted debe resolverse el ejemplo explicado utilizando la herramienta MATLAB, OCTAVE o SCILAB. Se deben codificar tres mdulos, a saber:

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 LA FUNCION A INVESTIGAR

function z=f(x) z=m/(x*sqrt(x)) 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

// // // // //

VALOR INICIAL VALOR FINAL NUMERO DE SUBINTERVALOS MASA INTEGRAL ENTRE b y a

print(%io(2),s,M,a,b); RESULTADOS

Valor de la integral en segundos

Punto 2Realizar 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

Cdigofunction [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;

L=[H'; D'; E']; endfunction

// Funcin a evaluarfunction 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 Resultados

(2)

f '0 }

f1 f 0 h

Cdigofunction [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 evaluarfunction 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); Resultados

(3) f '0 }

f 1 f 1 2h

Cdigomax1=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 evaluarfunction 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);

(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);