Trucos para MATLAB

abril 10, 2014

La mayoría de los usuarios aprende a usar MATLAB desde diferentes fuentes en internet. Casi todos los tutoriales que se pueden encontrar parten con la definición de arreglos y operaciones básicas de estos para posteriormente pasar a las funciones cada vez más específicas. Por tema de tiempo o desidia se suelen pasar por alto muchos comandos de configuración y trucos que nos pueden facilitar la vida. A continuación una pequeña lista de ajustes que me han servido y que posiblemente más de algún avezado usuario haya pasado por alto

 


startup.m

startup.m es el script que se ejecuta cada vez que se abre MATLAB. Con él es posible ejecutar los comandos de uso frecuente que elijamos como modificar opciones por defecto. Un ejemplo de starup.m puede ser

% Mensaje amigable
disp(‘hola’)

% Opciones de archivos
cd /usr/local/MATLAB/carpeta
load sesion.mat;
disp(‘Loading Previous Workspace…’)

% Turn grid lines on by default
set(0, ‘defaultAxesXGrid’, ‘on’)
set(0, ‘defaultAxesYGrid’, ‘on’)
set(0, ‘defaultAxesZGrid’, ‘on’)

El primer comando despliega en la consola el mensaje ‘hola!’. El segundo grupo de comandos define un nuevo Current directory, carga el workpace sesion.mat contenida en él y despliega un mensaje del proceso. El tercer grupo de comandos agrega por defecto grillas en los tres ejes para los gráficos.

Para saber el directorio donde está startup.m se ejecuta el comando

>>which startup.m

Si el archivo no existe lo creamos y guardamos en el mismo directorio donde se encuentra el script startupsav.m. La dirección de dicho directorio lo encontramos con

 >>which startupsav.m

Siempre podemos editar startup.m en la medida que necesitemos agregar o modificar los comandos contenidos en él. Para acceder al script se ejecuta

>> edit startup.m

De manera análoga, existe el script finish.m, que permite ejecutar comandos cada vez que se cierra MATLAB, como por ejemplo pedir confirmación para salir, guardar datos, escribir un archivo de salida, etc. El script debe estar situado en la misma carpeta que startup.m . Un archivo finish.m útil puede tener los comandos:

disp(‘Saving Current Workspace…’)
save matlab.mat;

 


Set Path

Un problema muy común de los usuarios que acostumbran crear sus propias funciones y scripts es que MATLAB las reconoce sólo cuando estan situados en el Current Directory. Para poder utilizarlas desde cualquier directorio (como ocurre con las  funciones nativas de MATLAB) debemos indicarle a MATLAB la carpeta donde están ubicados con lo que se hacen ‘visibles’ en todos los directorios. Esto se hace desde la ruta File>Set Path>Add Folder… . Desde la ventana emergente se agrega la carpeta con los scripts.

 

set_path

 

Cada vez que llamamos a una función, MATLAB buscará en los search path que se enlistan en la ventana Set Path (imagen arriba). Si existen dos funciones con el mismo nombre, se ejecutará la que se encuentre en la carpeta más alta en la lista (mayor prioridad en la búsqueda de funciones).

A partir de esto, es posible crear nuestros propios toolbox para MATLAB. Sólo basta crear un set de funciones, guardarlas en una carpeta, y agregarla al Path. Además, a cada función le podemos agregar un texto descriptivo o tutorial, insertándolo como comentario justo debajo la declaración de la función. El texto descripción de la función aparecerá en la ventana de comandos al escribir

help ejemplo.m

al igual que sucede con las funciones nativas de MATLAB

 


Ejecutar script por partes ( Evaluate Cell)

Hay ocasiones donde sólo deseamos ejecutar una parte de un script y no el script completo. Para esto basta separar las partes del script en cell mediante los símbolos %%. Al hacer esto aparecen líneas horizontales que separan los diferentes cell. Además la línea donde se inicia la separación queda disponible para poner comentarios. (ver figura)

cell3

Para ejecutar los comandos correspondientes a una cell, se selecciona una linea de la cell  con el mouse o teclado, y se presiona evaluate cell , o Ctrl+Enter


Sentido de giro para espirales en Análisis Cualitativo de SEDO

septiembre 7, 2011

En esta entrada dejo a disposición un completo tutorial para poder determinar la forma que tienen los puntos críticos espirales

http://www.dim.uchile.cl/~fbravo/guias/EDO/tutorial%20espirales%20para%20SNL.pdf

Además, en el siguiente enlace pueden  graficar las soluciones de sistemas de ecuaciones,  y comprobar sus resultados cuando hagan ejercicios

http://math.rice.edu/~dfield/dfpp.html

saludos


Formas de Jordan. Conceptos básicos y guía práctica de cómo calcularla

junio 21, 2011

Como hacía tiempo no escribía en mi abandonado blog, y necesitaba poder explicar el cálculo de la forma normal de Jordan para el curso de ecuaciones diferenciales , decidí tipear esta mini guía práctica, con los conceptos básicos y las consideraciones necesarias para poder entender este procedimiento, que a veces se puede volver complicado (Y así mato 2 pájaros de un tiro).

http://www.dim.uchile.cl/~fbravo/guias/EDO/Tutorial_formas_de_jordan_(3.1).pdf

Espero que sea de utilidad a más de algún estudiante curioso.

saludos


Utilidades matemáticas

junio 28, 2010

Acá aprovecho de colocar diversas utilidades y recursos disponibles en la web para  facilitar el estudio de matemáticas.

Libros:

http://algunoslibros.blogspot.com/2006/09/matematica.html

http://www.freebookcentre.net/

http://rinconmatematico.com/libros.htm

Solucionario de Libros:

http://soludelibros.blogspot.com/2008/01/solucionarios-matemtica.html

Buscador de libros:

http://www.4shared.com/ (recomendado)

http://www.pdf-search-engine.com (usar con astucia)

Foros:

http://www.fmat.cl/
http://rinconmatematico.com/

Material de cursos del M.I.T.

http://ocw.mit.edu/courses/mathematics/

Utilidad online (grafica, deriva, integra,…)

http://www.wolframalpha.com/input/?i=x^2%2Blogx


Definición de convergencia de sucesiones

junio 1, 2010

La definición de convergencia permite formalizar toda la idea intuitiva que tenemos de límite de números, para así poder utilizar y manipular límites (álgebra de límites)

¿Cuál es la idea intuitiva que tenemos de límite?

Bueno, sabemos (o intuimos) que el límite de \frac{1}{n} converge a cero cuando n tiende a infinito. Pero sabemos que \frac{1}{n} es distinto de cero para todo n mayor que uno. ¿Entonces? Ocurre que la sucesión \frac{1}{n} SE ACERCA LO MAS QUE PUEDE A 0, aunque increíblemente nunca llegue a tocarlo. Luego, el concepto de límite se refiere principalmente al concepto de que tan cerca se encontrara la sucesión a un punto de convergencia (llamado límite).

El primer concepto a considerar es que la distancia entre 2 números reales a y b se denota |a-b|, que es el valor absoluto de la diferencia. Así la distancia entre un punto x_n de la sucesión y su límite L (si es que existe) es |x_n-L|.

Probablemente, esta distancia nunca llegue a ser cero (como en la sucesión 1/n), pero ciertamente los puntos deberían ir acercándose a su límite.

La definición formal de convergencia de la sucesión x_n a un punto L es

Para todo \epsilon >0, existe un \exists n_{\epsilon} \in \mathbb{N}, tal que para todo n > n_{\epsilon} ,\ |x_n -L|< \epsilon

O como se suele encontrar en los textos de cálculo, en un lenguaje formal:

\forall \epsilon >0 ,\ \exists n_{\epsilon} \in \mathbb{N} :\ \forall n>n_{\epsilon} ,\ |x_n - L|< \epsilon

¿Qué quiere decir realmente?

Dice: Para cualquier distancia que queramos ver del limite (\epsilon), siempre podemos encontrar una posición en la sucesión (n_{\epsilon}), de tal forma que todos los términos de la sucesión a partir de esta posición n_{\epsilon}, caen dentro de esta vecindad del límite. Trata de asimilar esta descripción en palabras y entenderlo con la definición formal.

Ahora vamos a mostrar como funciona con la sucesión \frac{1}{n}.

Grafiquemos la sucesión x_n=\frac{1}{n}.

En esta imagen, los puntos corresponden a los términos de la sucesión, y la altura de estos puntos representa el valor de este término. Así, para n=1, la sucesión toma el valor 1, para n=2, el valor 0.5, para n=5, x_5=0.2.

Podemos ver en la imagen que la sucesión se acerca gradualmente al valor cero (y como sabemos, nunca lo alcanza)

¿Cómo funciona la definición formal acá?

Supongamos que un compañero te pregunta ¿Desde que punto la sucesión x_n no se aleja a más de 0,5 del valor cero? Al ver el dibujo, notamos que desde el término x_2 la sucesión no sube de 0,5.

¿Y desde qué término la sucesión no se aleja a lo más de 0,2 de cero? Viendo nuevamente el dibujo, podemos notar que desde el término x_6 en adelante no se supera la barrera impuesta (línea roja). También puedes decir que a partir del término 8; no tiene que ser necesariamente el término exacto (la definición formal no lo pide)

Y así hacia el infinito. Es decir, si tu compañero te pregunta ¿A partir de qué término no me alejo una distancia \epsilon (con \epsilon quiero decir cualquier distancia >0) del cero? tu siempre vas a poder encontrar una posición n a partir del cual la sucesión no se aleje. En términos matemáticos.

para todo \epsilon >0, existe un n_e tal que para todo n > n_{\epsilon}, x_n <\epsilon.

Esta definición, y la anterior discusión, no obliga a la sucesión a alcanzar su límite, pero sí la obliga a siempre acercarse tanto como queramos (o tanto como quiera tu compañero).

Con el dibujo queda claro, pero demostremos formalmente (o como debería ser en la prueba) que x_n=1/n converge a 0.

¿Qué pasa si queremos que todos los puntos de la sucesión estén a una distancia menor o igual a 1? Bueno como todos los términos de la sucesión son menores o iguales que 1, después del término unésimo se cumple.

¿Qué pasa si queremos que todos los puntos de la sucesión estén a una distancia menor o igual que 1/10. Bueno notamos que para n=10, los términos son menores a 1/10. (x_{10}=\frac{1}{10})

¿Y si queremos que no se alejen a lo mas 1/100? Entonces notamos que los términos no se alejan de esa distancia después del punto n=100. (x_{100}=\frac{1}{100}).

Ahora  te diste cuenta que para cualquier distancia que nos demos (digamos \epsilon) el punto necesario para cumplir la definición es darse el n=\frac{1}{\epsilon} o mayor).

Pero la fórmula que les dí no está de todo correcta, pues para \epsilon=0.013 , n=\frac{1000}{13}=76,9230769, que no es natural. Pero no nos importa, pues no queremos un número exacto tal que todos las términos de la sucesión no se alejen, lo que queremos es uno que nos asegure que pase lo que queremos, así en vez de decir 76,9230769 podemos decir simplemente n=77, y cumplimos nuestro objetivo. Así, mejorando nuestro razonamiento

Para \epsilon cualquiera, n_{\epsilon}=[\frac{1}{\epsilon}].  (Función parte entera).

on este ejemplo también notamos que el n elegido depende de \epsilon, por eso en la definición de límite se suele colocar n_{\epsilon}.

Hagamos la demostración como deberías colocarla en la prueba (lo que esta en paréntesis son indicaciones que no debes escribir).

Problema: demuestre que la sucesión x_n=\frac{1}{n} converge a cero

Dem:

Sea \epsilon >0 (nos damos una distancia cualquiera, como la que te pregunta tu compañero).

Queremos encontrar un n_{\epsilon} tal que para todo n>n_{\epsilon} se tenga

|x_n-0|< \epsilon.

trabajando esta expresión.

|x_n-0|=|\frac{1}{n}|<\epsilon = \frac{1}{n}<\epsilon .

(Equivalentemente, el problema se reduce a encontrar  un n_{\epsilon} que cumpla que para todo n>n_e se tenga \frac{1}{n}< \epsilon, lo cual se tiene si n cumple \frac{1}{\epsilon} <n).

eligiendo n_{\epsilon}=[\frac{1}{e}] se tiene lo pedido.

\square

Problema: demuestre que la sucesión constante a_n=c  converge a c.

Dem:

Sea \epsilon >0.

|a_n-c|=|c-c|=0<\epsilon  (¡¡la distancia entre la sucesión y su limite siempre es cero!!!)

Tomando n=1, se tiene lo pedido (o n igual cualquier cosa, total siempre estamos a una distancia menor que \epsilon)

\square

En este caso particular, la sucesión si alcanza su límite.

Ahora demostremos la siguiente propiedad, que nos permitirá justificar el álgebra de límites.

Propiedad: Sean a_n y b_n dos sucesiones tales que a_n\xrightarrow[n\rightarrow{}\infty]\,{a} y b_n\xrightarrow[n\rightarrow{}\infty]\,{b}. Entonces  a_n+b_n\xrightarrow[n\rightarrow{}\infty]\,{a+b}.

Demostración:

Sea \epsilon>0 (la distancia fija que siempre nos debemos dar)

|a_n+b_n-(a+b)|=|(a_n-a)+(b_n-b)|<|a_n-a|+|bn-b|

Como a_n converge a a, tenemos que para cualquier distancia que queramos, existe un n^{*} tal que para n>n^* , |a_n-a| es menor que dicha distancia. Luego si la distancia que queremos es \frac{\epsilon}{2}, existe un n_1 tal que para n > n_1 , |a_n-a| < \frac{\epsilon}{2}.

Análogamente, para la sucesión b_n, existe un n_2 (no necesariamente igual a n_1, pues b_n es un sucesión no necesariamente igual a a_n) tal que para n > n_2 ,\ |b_n-b|<\frac{\epsilon}{2}.

Entonces para n_3=max(n_1,n_2)

|a_n-a|< \frac{\epsilon}{2}  y |b_n-b|<\frac{\epsilon}{2}.

De este modo , para todo n>n_3.

|a_n-a|+|b_n-b| < \frac{\epsilon}{2}+\frac{\epsilon}{2} =\epsilon

Reordenando lo logrado, para todo n>n_3.

|a_n+b_n-(a+b)| =|a_n-a+b_n-b| <|a_n-a|+|b_n-b| < \epsilon.

\square

Nota que la convergencia de a_n nos asegura la existencia de n_1, y la convergencia de b_n asegura la de n_2. Por lo tanto n_3=\max(n_1,n_2) existe.

(recuerda que para \epsilon , teniamos que demostrar la existencia de un n conveniente).

Eso es todo por ahora. Espero que les haya servido a muchos a entender esta belleza del lenguaje matematico.


Guía de parametrizaciones

abril 7, 2010

A diferencia de la guía anterior de primitivas, esta probablemente no pretende ser la mejor guía de integrales en su área, pero de seguro que es buena. Soy un convencido que el lenguaje verbal es el mejor camino para enseñar matemáticas, y eso es lo que he intentado plasmar en mis guías; una agradable conversación con el lector donde le explico el porqué de las cosas.

Esta guía es una “exposición” de cómo se parametriza, que significa, y también incluye ejercicios resueltos

Las guías son un manuscrito de las clases auxiliares que realicé el año 2007

disfrutenla

http://www.dim.uchile.cl/~fbravo/guias/Calculo%20Diferencial/Parametrizacion.rar


La mejor guía de integrales de la red

abril 1, 2010

Estimados. Esta guía de primitivas la desarrollé la segunda vez que fui profesor auxiliar del curso de cálculo diferencial. Fue concebida pensando en esos trucos que frecuentemente son preguntados en los controles y exámenes. Lo de mejor guía de la red es un título autoimpuesto, pero realmente  su confección esta pensada para afrontar una evaluación, tanto por su extensión, compilación de otras guías y las diversas explicaciones que aparecen.

Incluye preguntas desarrolladas completamente y ejercicios propuestos.

formato pdf

http://www.dim.uchile.cl/~fbravo/guias/Calculo%20Diferencial/Guia_de_Primitivas.pdf

saludos y disfrútenla


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.