You are on page 1of 17

Curso de MatLab Básico

Sesión 9: Aplicaciones de análisis numérico

Milton Torres

11 de febrero de 2016

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 1 / 17


Contenido

1 Resolución de ecuaciones de una variable

2 Cálculo de un máximo o de un mı́nimo de una función

3 Integración numérica

4 Ecuaciones diferenciales ordinarias

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 2 / 17


Resolución de ecuaciones de una variable

Resolución de ecuaciones de una variable

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 3 / 17


Resolución de ecuaciones de una variable

Resolución de ecuaciones de una variable

Las ecuaciones de una variable se pueden escribir de la forma


f (x) = 0. La solución a la ecuación será el valor x donde la función
cruza el eje x. En general, una función puede tener ninguna, una,
varias o un número infinito de soluciones.
En MATLAB, el cero de una función se puede obtener con el
comando fzero, cuya sintaxis es:

x = fzero(’funcion’,x0)

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 4 / 17


Resolución de ecuaciones de una variable

Más detalles sobre los argumentos de la función fzero

x es la solución de la ecuación. Es un valor escalar.


’funcion’ es la función que se debe resolver. Este argumento
se puede representar de tres formas distintas:
1 La forma más sencilla es introducir la expresión matemática
como si fuera una cadena.
2 También se puede crear la función utilizando una función
definida en un fichero de función, e introducir luego el nombre
de la función como cadena.
3 La función se puede crear como función en lı́nea, para luego
introducir su nombre como cadena.
Cuando la función se introduce como cadena, ésta no puede
incluir variable predefinidas.
x0 puede ser un escalar o un vector de dos elementos.

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 5 / 17


Resolución de ecuaciones de una variable

Más comentarios:

El comando fzero busca los ceros de la función sólo donde la


función cruza el eje x.
Si no se puede calcular la solución a una función, en el valor de
salida x se devolverá NaN.
El comando fzero tiene otras opciones. Dos de las más
importantes son:
[x fval] = fzero(’funcion’,x0)
y
x = fzero(’funcion’,x0,optimset(’display’,’iter’)).

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 6 / 17


Cálculo de un máximo o de un mı́nimo de una función

Cálculo de un máximo o de un mı́nimo


de una función

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 7 / 17


Cálculo de un máximo o de un mı́nimo de una función

Cálculo de un máximo o de un mı́nimo de una función

En determinadas ocasiones es necesario encontrar un mı́nimo o


máximo local de una función de la forma y = f (x). En MATLAB, el
valor de x donde una función f (x) de una sola variable tiene un
mı́nimo en el intervalo x1 ≤ x ≤ x2 . Se puede calcular esto de la
siguiente forma:

x = fminbnd(’funcion’,x1,x2)

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 8 / 17


Cálculo de un máximo o de un mı́nimo de una función

Comentarios

La función se puede introducir en forma de cadena, o como el


nombre de un función definida por el usuario de un fichero o el
de una función en lı́nea.
El valor de la función en el punto mı́nimo también se puede
visualizar utilizando esta otra sintaxis:
[x fval] = fminbnd(’funcion’,x1,x2)
donde el valor de la función en el punto x se asigna a la variable
fval.
Dentro de un intervalo dado, el mı́nimo de un función puede ser
uno de los extremos del intervalo.

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 9 / 17


Integración numérica

Integración numérica

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 10 / 17


Integración numérica

El comando quad

La sintaxis del comando quad, basado en el método adaptativo de


integración de Simpson, es la siguiente:

q = quad(’funcion’,a,b)

La función se puede introducir como cadena o como el nombre


de una función definida por el usuario o de una función en lı́nea.
La función f (x) se debe escribir para un argumento x que
permita realizar operaciones elemento a elemento.
El usuario debe asegurarse de que la función no tiene ninguna
ası́ntota vertical entre a y b.

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 11 / 17


Integración numérica

El comando quad

El comando quad calcula la integral con un error absoluto menor


que 1.0e-6. Este número se puede cambiar añadiendo el
parámetro opcional tol al comando quad, de la forma:
q = quad(’funcion’,a,b,tol)
donde tol es un número que define el error máximo. Asignando
un valor grande a este número la integral tendrá menos
precisión, pero su cálculo será más rápido.

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 12 / 17


Integración numérica

El comando quadl

El comando quadl tiene la misma sintaxis que el comando quad:

q = quadl(’funcion’,a,b)

Todos los comentarios referidos a la función quad son también


válidos para el comando quadl. Este comando utiliza el método
adaptativo de Lobatto, que es más eficiente cuando se requiere un
nivel de precisión más alto.

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 13 / 17


Integración numérica

El comando trapz

Este comando se puede utilizar para integrar una función que se da


en forma de datos o puntos. Este método utiliza integración por el
método de los trapecios. La sintaxis de este comando es:

q = trapz(x, y)

donde x e y son vectores con las coordenadas x e y de los puntos que


se van a integrar.

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 14 / 17


Ecuaciones diferenciales ordinarias

Ecuaciones diferenciales ordinarias

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 15 / 17


Ecuaciones diferenciales ordinarias

Ecuaciones diferenciales ordinarias

Las ecuaciones que se tratarán en esta sección son ecuaciones de


primer orden
dy
= f (x, y).
dx
Pasos para la resolución de una ODE simple de primer orden:
Paso 1 Escribir el problema en forma estándar.
Paso 2 Crear un fichero de función.
Paso 3 Seleccionar un método para hallar la solución.
Paso 4 Resolución de la ODE.

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 16 / 17


Ecuaciones diferenciales ordinarias

Métodos para resolución de ODE

Milton Torres Curso de MatLab Básico 11 de febrero de 2016 17 / 17

You might also like