Está en la página 1de 11

INTEGRACION NUMERICA CON MATLAB

1. METODO DEL TRAPECIO

MatLab dispone de la función trapz(x,y) que evalúa la integral empleando la formula (1), siendo x, y los vectores de
componentes xi, yi, respectivamente.

h 
( )
n −1
I= 
2
y 0 + 2 ∑
i =1
yi + y n  + O h 2

(1)

Se ha tabulado la capacidad calorífica de un material, c, a distintas temperaturas, obteniendo:

T(ºC) C(cal/g ºC)


-100 0,11904
-50 0,12486
Iniciar MatLab+File+Import Data… y tenemos:
0 0,132
50 0,14046
100 0,15024
150 0,16134
200 0,17376

Buscamos el archivo en Excel, lo seleccionamos y presionamos Abrir. Luego aparece la ventana Import Wizard
Y escogemos la opción Create vectors from each column using column names (segunda opción) y presionamos el botón
Finish. Vemos los dos vectores en la ventana Workspace de MatLab, como se observa en la siguiente figura:

El área bajo la grafica de estos valores se obtiene digitando la instrucción en MatLab (Command Window) asi:

Area = trapz(T,C)

Oteniendose el valor:

Area=

42.7650

2. REGLA ADAPTATIVA DE SIMPSON

Matlab cuenta con varias funciones incorporadas para integración numérica, entre ellas la función quad, la cual utiliza el
método de cuadratura adaptativa de Simpson. La sintaxis de quad incluye las formas:
quad(‘funcion’,a,b): aproxima la integral de la función entre a y b tomando como tolerancia 1*e-6.

quad8 hace lo mismo pero utilizando el método de Newton como aproximación. quad8(‘funcion’,a,b).

Para utilizar esta función de forma optima y personalizada debemos aprender a crear funciones propias. Esto se hace de la
siguiente forma:

Funciones
Veremos un ejemplo de función y sobre ella describiremos sus elementos básicos.

function pf = pvt (p) %Definición de la función


% PVT Precio venta publico %Línea H1
% PVT (p) devuelve el precio con IVA, %Texto ayuda
% de un producto, dado su precio (p) sin IVA.
iva = 0.16; %Cuerpo de la función
pf = p * (1+ iva);

Definición de la función: Esta línea define el nombre de la función (pvt) y el número y orden de parámetros de entrada (en
el ejemplo, un parámetro: p) y el número y orden de parámetros de salida o resultados (en el ejemplo, un parámetro: pf).
Si la función tiene más de un parámetro de entrada, estos se separan por comas y si tiene más de un parámetro de salida se
escribe la lista separada por comas y entre corchetes ([ ]). Este sería un ejemplo general:

function [x, y] = mifuncion (a, b, c)

• Línea H1: Se trata de una primera línea comentada (empieza con %) tras la línea de definición de la función. MATLAB
muestra esta primera ayuda cuando usamos el comando lookfor o pedimos ayuda sobre un directorio.
• Texto de ayuda: MATLAB muestra este texto junto con la línea H1 cuando solicitamos ayuda sobre una determinada
función (help pvt). Se muestra el texto comentado hasta la primera línea en blanco o la primera línea ejecutable. El resto
de comentarios tras este bloque se ignoran.
• Cuerpo de la función: esta parte contiene las sentencias que realizan los cálculos y asignan valores a los parámetros de
salida. La función opera sobre variables en su propio espacio de trabajo, separado del espacio de trabajo de la línea de
comandos.

Nombre de la función

Los nombres de las funciones deben empezar por una letra. Por lo demás, pueden ser cualquier combinación de letras,
números o signos.

El nombre del fichero (M-file) que contiene la función es el mismo nombre de la función seguido de la extensión .m.
pvt.m

Cuando llamamos a una función, MATLAB busca en el espacio de trabajo y después en los directorios indicados en el
pathwork (comando path).

Si queremos conocer los M-files que tenemos en nuestro directorio de trabajo, escribiremos la orden what en la línea de
comandos.

Si queremos ver el contenido del M-file pvt.m, entonces teclearemos en la línea de comandos:

>> type pvt

Llamada a una función

Podemos llamar a una función desde la línea de comandos, como si fuera cualquier otra orden o función ya definida en
MATLAB. También podemos llamar a una función dentro de otra, como veremos en posteriores prácticas.

>> precio = 1000;


>> precio final = pvt(precio)

preciofinal =
1160
Observar que los parámetros de entrada y salida no tienen por qué tener el mismo nombre que en la definición de la
función.
>> preciofinal = pvt(1400)

preciofinal =
1624

Es importante escribir todos los parámetros de entrada entre paréntesis y todos los parámetros de salida entre corchete,
siempre en el orden correspondiente:

>> [v, w] = mifuncion (a, b, c)

Las variables de una función son locales, de modo que, aunque en el seno de la función se modifiquen los argumentos de
entrada, el valor de dichas variables en el Workspace queda inalterado.
EJERCICIO:
La presión atmosférica (p) varía en función de la altura (h) según la siguiente expresión: p =1035 * e −0.12 *h , donde la
altura se mide en kilómetros y la presión en milibares. Escribir una función presión que calcule la presión para una altura
dada (utilizar la función de MATLAB exp).

Hasta aquí hemos aprendido a crear funciones personalizadas en MatLab. Ahora con los datos del primer ejercicio, vamos a
utilizar una nueva herramienta en MatLab para ajustar datos experimentales. Vamos a obtener la ecuación que mejor se
ajuste a los datos y luego con esta ecuación determinamos el área bajo la curva.

El procedimiento es el siguiente:

Iniciar MatLab, luego presionar el botón Start (esquina inferior izquierda), seguido seleccionamos la opción Toolboxes,
después Curve Fitting y escogemos Curve Fitting Tool y aparece la siguiente figura:

Presionamos el botón Data… y obtenemos la siguiente figura:

Luego desplegamos el control para X Data: y seleccionamos T que es la variable independiente. Igual hacemos para Y
Data, asi:
Realizando este proceso y presionando el botón Create data set obtenemos:

Cerramos la ventana.
Ahora vemos que la ventana Curve Fitting Tool tiene los datos ingresados para así obtener la ecuación:
El siguiente paso es presionar el botón Fitting…, para obtener:

Aquí escogemos la opción New fit y se habilitan las demás opciones para realizar el ajuste.

Fit name: aquí ingrese el nombre del ajuste para los datos (relacionado con el experimento).
Data set: grupo de datos a graficar variable independiente frente a la variable dependiente.
Type of fit: tipo de ajuste (polynomial, potencia, exponencial, etc).

Escoger el tipo de ajuste que mejor se ajuste a los datos y presionar Apply para realizar el cálculo. Los resultados se
obtienen en el campo Results de la ventana.

Para saber cual es el mejor ajuste debe verificar el coeficiente de determinación r2 arrojado por los cálculos. Entre mas
cercano a la unidad mejor es el ajuste de los datos.

Para copiar estos datos del campo Results hacemos clic derecho sobre el campo y escogemos la opción Select All
(seleccionar todo) y luego copiamos estos datos (clic derecho + Copy). Al hacerlo obtenemos:

Linear model Poly2:


f(x) = p1*x^2 + p2*x + p3
Coefficients (with 95% confidence bounds):
p1 = 2.64e-007 (2.64e-007, 2.64e-007)
p2 = 0.000156 (0.000156, 0.000156)
p3 = 0.132 (0.132, 0.132)

Goodness of fit:
SSE: 9.63e-034
R-square: 1
Adjusted R-square: 1
RMSE: 1.552e-017

Con estos datos construimos la ecuación así:


y= f(x)
p1 = 2.64e-7
p2 = 0.000156
p3 = 0.132

Solo queda reemplazar en f(x), quedando:

y = 2.64e-7*x^2+0.000156*x+0.132

Con esta ecuación creamos la función personalizada en MatLab y la llamamos con la función quad incorporada en el
programa.

El procedimento en MatLab es:

Abrimos un archivo M-file y tecleamos

function y=areac(x)
y = 2.64e-7.*x.^2+0.000156.*x+0.132;

Llamamos esta función desde la ventana Command Window así

área = quad ('areac',-100,200)

y obtenemos

area =

42.7320

Que analizamos de los resultados por ambos métodos?

Siguiendo con la ventana Curve Fitting Tool, podemos analizar los resultados obtenidos presionando el botón Analysis…,
obteniendo la siguiente ventana:

Aquí podemos calcular el valor de la función para el rango de datos especificados, para la primera derivada, segunda
derivada e integral. También podemos calcular la primera derivada (pendiente) para un valor especificado por el usuario.
Luego de escoger todas las opciones requeridas, presionar el botón Apply de la ventana.

3. INTEGRAL SIMBOLICA

int(f) = Calcula de manera simbólica la integral de la función f (definida como una cadena de caracteres). Para nuestro
ejemplo no se puede usar pues la función con la que estamos trabajando no tiene una integral indefinida, así que
cambiemos de ejemplo:
Supongamos que queremos calcular:
en MATLAB digitamos: int('x^2/(x^6-8)') y obtenemos:

-1/12*2^(1/2)*atanh(1/4*x^3*2^(1/2))

O queremos la integral ∫ seno ( x ) , tecleamos int('sin(x)^1/2') y obtenemos -1/2*cos(x)

ECUACIONES PERSONALIZADAS

Para esto necesitamos la ventana Curve Fitting Tool. Teniendo la ventana abierta seleccionamos en la barra de menú la
opción Tools y luego la opción Custom Equation y se muestra la siguiente ventana:

Escogemos la etiqueta General Equations en la parte superior para obtener:

Para seguir con nuestro ejemplo. Queremos ajustar nuestro modelo a una ecuación del tipo y = m*x + b (ecuación de una
recta). El objetivo es obtener la pendiente m y el intercepto b. Solo queda escribir la forma de la ecuación como se parecía
en la siguiente ventana:
Variable independiente: x
Variable dependiente: y
Luego de ingresar la ecuación presionamos el botón OK de la ventana.

Cargamos nuevamente los datos de T y C a la ventana Curve Fitting Tool, como lo hicimos anteriormente y obtenemos:

Escogemos la opción Fitting…, aparece la ventana Fitting, seguido presionamos New Fit y obtenemos:
En Type of fit desplegamos las opciones y escogemos la opción Custom Equations así:

Y presionamos el botón Apply y seguimos el mismo curso que de acción cuando ajustamos datos anteriormente.
Las ventanas obtenidas son las siguientes: