Está en la página 1de 2

2. Intgrese f(x, y) = sen(x^2 + y^2)/(x^2 + y^2) sobre el cuadrado [0, 1] [0, 1].

Definimos las variables x e y como simblicas: >>syms x y Introducimos directamente la integral doble, primero evaluada respecto a y en el intervalo [0,1]y despus respecto a x en el mismo intervalo: >> int(int((sin(x^2+y^2)/(x^2+y^2)),y,0,1),x,0,1) Saliendo: Warning: Explicit integral could not be found. Warning: Explicit integral could not be found. ans = int(int(sin(x^2 + y^2)/(x^2 + y^2), y = 0..1), x = 0..1) A esta funcin resultante, le aplicamos el comando double, que nos da la solucin aproximada de la integral: >> double(ans) ans = 0.9030

4. La frmula de los trapecios compuesta es int b a f(x) dxh/2[f(a) + 2f(a + h) + 2f(a + 2h) + . . . + f(b)]. Donde h = (ba)/n y n es el nmero de divisiones. Haga una funcin de Matlab que permita calcular de forma aproximada: Integraldoble [a,b][c,d] [f(x, y) dx dy] al igual que se hizo con la regla de Simpson. Compruebe este fichero .m con algunas funciones de las que sepa calcular la integral.
function I=trap_comp(fun,a,b,c,d,n) h=(b-a)/n; k=(d-c)/n; sum=0; for i=1:n-1 for j=1:n-1 sum=sum+feval(fun,a+i*h,c+j*k); end end px=(h/2)*(feval(fun,a,c)+feval(fun,b,d)); py=(k/2)*(feval(fun,a,c)+feval(fun,b,d)); I= px+py+(h*k*sum);

David Serrano Carrera

MATIII

B2B

Se trata de dos bucles aninados que van evaluando la funcin. Al final se trata de agrupar todos los resultados dados en px y py para sumarlos al final. Podemos evaluar una funcin sencilla: fun=(x-2*y) entre 0<=x<=3 y -1<=y<=1 Que da como resultado calculado 9. Si en Matlab hacemos I=trap_comp(@(x,y)x-2*y,0,3,-1,1,100) Nos da un resultado bien aproximado: I= 8.8959 (El @(x,y) es porque estamos trabajando con una funcin annima respecto de x e y) Si le damos un n=1000, ms grande (mayor nmero de pasos) el resultado es an mejor: I= 8.9895

David Serrano Carrera

MATIII

B2B

También podría gustarte