0% encontró este documento útil (0 votos)
219 vistas20 páginas

Integración Numérica en MATLAB

Este documento describe el cálculo numérico de integrales definidas e integrales múltiples con MATLAB. Explica cómo usar la función quad para calcular integrales definidas de una variable y las funciones dblquad y triplequad para integrales dobles y triples. Proporciona ejemplos de cómo definir funciones para ser integradas y cómo pasar parámetros a dichas funciones.

Cargado por

adalavi
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
219 vistas20 páginas

Integración Numérica en MATLAB

Este documento describe el cálculo numérico de integrales definidas e integrales múltiples con MATLAB. Explica cómo usar la función quad para calcular integrales definidas de una variable y las funciones dblquad y triplequad para integrales dobles y triples. Proporciona ejemplos de cómo definir funciones para ser integradas y cómo pasar parámetros a dichas funciones.

Cargado por

adalavi
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema 6

Asignatura: Programacin Cientfica 1er. curso Licenciatura en Fsica Introduccin a

MATLAB
Tema 6 : Integracin numrica

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB Clculo de integrales definidas:

es el rea de la regin limitada por la curva el eje X y las rectas y

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB MATLAB dispone de la funcin quad para calcular integrales definidas: >> quad(fun,a,b)

fun es la funcion a integrar y puede ser especificada de dos formas: mediante un objeto inline: quad(fun,a,b) mediante una M-funcin: quad(@fun,a,b)

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB EJEMPLO (funcin inline): calcular

>> f=inline('sin(4*log(x))') >> quad(f,0.2,3) ans = 0.1013

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB ATENCIN: LA EXPRESIN DE LA FUNCIN DEBE ESCRIBIRSE EN FORMA VECTORIZADA (de forma que si el argumento es un vector, devuelva un vector)

>> f=inline('x.*sin(4*log(x))') >> quad(f,0.2,3) ans = -0.2837


Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB EJEMPLO (M-funcin): calcular

La funcin a integrar se calcula mediante una Mfuncin: crear el fichero mifun.m

mifun.m function [y]=mifun(x) y=sin(4*log(x));

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB EJEMPLO (M-funcin): calcular

>> quad(@mifun,0.2,3) ans = 0.1013

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB Ejercicio: calcular la integral definida siguiente, usando una M-funcin

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB Ejercicio: calcular la integral definida siguiente, usando una M-funcin

>> quad(@mifun,0.2,3) ans = -0.2837

mifun.m function [y]=mifun(x) y=x.*sin(4*log(x));

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB PASO DE ARGUMENTOS OPCIONALES: Supongamos que se desea calcular el valor de una integral que depende de un parmetro:

func.m function [y]=func(x,k) y=k*x.*sin(4*log(x)); >> k=3.3425; >> quad(@func,a,b,[],[],k)


Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: Ejercicio Ejercicio: para un gas que se expande en un cilindro, la presin es funcin del volumen: p=p(v). El trabajo realizado por el gas cuando se expande de un volumen v1 a otro v2 viene dado por

Cuando no existe prdida de calor Se sabe de un gas que, ocupando un volumen 100, tiene una presin 160. Calcular el trabajo realizado cuando pasa de un volumen 100 a un volumen 800.

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: Ejercicio Se trata de calcular

Para ello escribimos en primer lugar una M-funcin que devuelva el valor del integrando, es decir, de la presin en funcin de k y de v presion.m function [p]=presion(v,k) p=k*v.^(p=k*v.^(-1.4);

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: Ejercicio Ahora, para calcular, por ejemplo,

para el valor de

pondramos

>> k=9954; >> quad(@presion,200,500,[],[],k) ans = 447.5038

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: Ejercicio Escribir una M-funcin (trabajo.m) que lea del teclado los valores p1 v1 v2 y que: Calcule el valor del parmetro k Dibuje la grfica de la presin en relacin al volumen Calcule el trabajo realizado : presin inicial : volumen inicial : volumen final

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: programacin trabajo.m


function trabajo % p1=input('>> Valor de la presion inicial ? '); v1=input('>> Valor del volumen inicial ? '); v2=input('>> Valor del volumen final ? '); % k=p1*v1^1.4; v=linspace(v1,v2); p=presion(v,k); plot(v,p) ; xlabel('Volumen'); ylabel('Presion'); shg; trab=quad(@presion,v1,v2,[],[],k); texto=[' Trabajo realizado : ',num2str(trab,'%15.5f')]; pmax=max(p); pmin=min(p); pt=pmaxpt=pmax-(pmax(pmax-pmin)/10; vt=v1+(v2vt=v1+(v2-v1)/4; text(vt,pt,texto); %-----------------------------------------------------function [p]=presion(v,k) p=k*v.^(p=k*v.^(-1.4);

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB INTEGRALES DOBLES: La integral doble


Z d

Y b

es el volumen de la regin (3D) limitada por la superficie el plano XY y los planos verticales Tambin se escribe:

X c a

con
Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB INTEGRALES DOBLES

se puede calcular como una integral reiterada: se calcula primero la integral ms interior, integrando con respecto de la variable y, considerando constante la x, y luego se integra el resultado con respecto a x

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB MATLAB dispone de la funcin dblquad para calcular integrales dobles:

>> dblquad(fun,a,b,c,d) igual que antes, fun puede ser: un objeto inline: dblquad(fun,a,b,c,d) una M-funcin : dblquad(@fun,a,b,c,d) dblquad(@fun,a,b,c,d) La funcin fun debe admitir un vector como argumento x (y devolver un vector de su misma dimensin)

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB EJEMPLO: calcular

>> f=inline('1./(1+x.^2+y.^2)','x','y') >> ezmesh(f,[ezmesh(f,[-1,1,0,1]) >> f=inline('1./(1+x.^2+y.^2)','x','y') >> dblquad(f,dblquad(f,-1,1,0,1) ans = 1.2790
Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

Integracin numrica: clculo con MATLAB MATLAB dispone de la funcin triplequad para calcular integrales dobles:

>> triplequad(fun,a,b,c,d,e,f)

Rosa Echevarra Lbano. Dpto. Ecuaciones Diferenciales y Anlisis Numrico. Universidad de Sevilla

También podría gustarte