Multimedia
Escrito por Manuel Torres Torres   
lunes, 11 de diciembre de 2006
MATLAB, Word y los M-book

Recibido: miércoles, 11 enero 2006; revisado: domingo, 04 junio 2006




MATLAB, Word y los M-book

 

Manuel Torres Torres

e-mail: Esta dirección de correo electrónico está protegida contra los robots de spam, necesita tener Javascript activado para poder verla

 

 

 

1.    Introducción a los M-book

 

MATLAB es un software de cálculo numérico muy conocido, que se caracteriza por su gran versatilidad. A MATLAB le podemos dar desde el uso que tiene una simple calculadora (no necesariamente científica) hasta el de complicadísimas simulaciones aeroespaciales.

 

Otro software de uso muy extendido en el ámbito científico-tecnológico es LaTeX. Dicho software constituye una potente herramienta para la edición de textos de este tipo.

 

Tanto MATLAB como LaTeX son programas de primera línea; ahora bien,

 

  • MATLAB no puede editar textos matemáticos, y

  • LaTeX no puede realizar cálculos numéricos.

 

Sería muy interesante poder contar con herramientas que permitieran “fusionar” ambos programas en uno solo. Por ejemplo, si pudiésemos teclear los comandos de MATLAB en el editor que se utilice para crear el documento LaTeX y obtener directamente los resultados, el proceso de creación de documentos sería más cómodo y, evidentemente, mucho más rápido.

 

De momento, lo descrito en el párrafo anterior no parece ser posible entre LaTeX y MATLAB. Sin embargo, sí que lo es entre MATLAB y el bien conocido editor de textos Microsoft Word. La “fusión” puede ser realizada a través de una plantilla para Word, llamada M-book, que incorporan las distribuciones de MATLAB.

 

Esta plantilla, M-book, puede ser utilizada a partir de las versiones MATLAB 5 y Word 97. Es muy probable que la mayoría de los lectores dispongan de versiones posteriores de ambos programas, por lo que no deberían encontrar dificultades con el uso de dicha plantilla. Por ejemplo, este documento fue generado con Word 2000 y MATLAB 6.0.0.88 Release 12, haciendo uso de un M-book.

 

Existen diversos métodos para instalar la plantilla M-book. Uno de los más sencillos es el siguiente: copiamos el archivo M-BOOK.DOT que, normalmente, se encuentra en la carpeta C:\matlab\notebook\pc. A continuación abrimos Microsoft Word, y en el menú Archivo pinchamos sobre Nuevo. Por último, en la ventana emergente, en el menú General, pegamos el fichero.

 

Una vez instalada la plantilla en Word, podemos acceder al menú Archivo/Nuevo/M-BOOK, y desde allí crear textos en los que realizar cálculos haciendo uso de los comandos de MATLAB. Dichos cálculos se pueden evaluar con la combinación de teclas Ctrl+Enter. También se crea un nuevo menú llamado Notebook, con diversas posibilidades que el lector puede inspeccionar.

 

Por otra parte, si al abrir un nuevo M-book utilizamos el menú Insertar/Archivo para agregar un fichero Word “normal”, éste queda automáticamente convertido en un M-book.

 

Tal y como hemos mencionado anteriormente, este documento ha sido generado mediante un M-book. Aprovecharemos esta circunstancia para realizar ahora algún cálculo sencillo que pruebe que, en efecto, la interacción MATLAB-Word es posible:

 

2+7  

 

ans =

   9  

 

log(5)  

 

ans =

   1.6094  

 

Como se aprecia, una vez evaluados los comandos aparecen en color verde, mientras que los resultados son obtenidos en azul. Además, también se pueden teclear comandos de MATLAB para evaluar en una línea con texto. Para ello, simplemente tecleamos el comando, lo seleccionamos y lo ejecutamos de la forma ordinaria. Por ejemplo, sabemos que la derivada de sen (x), diff('sin(x)') , es

 

ans =

   cos(x)  

 

Resulta notable la facilidad y la comodidad con que se crean documentos matemáticos que incorporan cálculos, gráficos, etc. mediante un M-book. Esta utilidad puede ser muy interesante para los profesores, universitarios o no, que se dispongan a realizar apuntes de clase, relaciones de ejercicios, artículos científicos, etc.

 

 

2.    Ejemplos

 

En esta sección ilustraremos con algunos ejemplos que, en efecto, componer un texto matemático a través de un M-book es cómodo, sencillo y útil.

 

 

a.   Álgebra de matrices

 

El álgebra matricial es bien conocida, como también lo es lo engorrosas que pueden llegar a ser las operaciones entre matrices, no tanto por su dificultad sino por la cantidad de procesos que involucran. Los M-book facilitan el tratamiento de estos procesos, permitiendo realizar cualquier operación que deseemos. Por ejemplo:

 

A=[1,2,5;4,5,-9;-2,5,7] 

A =

     1     2     5

     4     5    -9

    -2     5     7  

 

definimos la matriz A

 

A_por_B=A*B  

A_por_B =

    19    47    23

   -89   -76    -1

    37    68    23  

 

producto de A y B

B=[-5,0,4;-3,1,2;6,9,3]  

B =

    -5     0     4

    -3     1     2

     6     9     3  

 

definimos la matriz B

 

det(A)  

ans =

   210  

 

 

 

determinante de A

A_mas_B=A+B 

A_mas_B =

    -4     2     9

     1     6    -7

     4    14    10  

 

suma de A y B

 

inv(A)  

ans =

    0.3810    0.0524   -0.2048

   -0.0476    0.0810    0.1381

    0.1429   -0.0429   -0.0143  

 

inversa de A

 

 

b.    Gráficos en dos y tres dimensiones

 

La potencia gráfica de MATLAB es inmensa, hecho que podemos aprovechar en nuestros textos con tan sólo teclear unas simples líneas.

 

Por ejemplo, para representar funciones bidimensionales:

 

 

ezplot('sin(x)/x',-4*pi,4*pi),grid on

 

Figura 1. Gráfica de la función

sen (x)

x

 

 

O bien, curvas en el espacio:

 

 

ezplot3('sin(t)','cos(t)','t',[0,10*pi])

 

 Figura 2. Gráfica de una hélice.

 

 

También podemos obtener en nuestros textos gráficos de superficies:

 

 

ezsurf('cos(u)+v*cos(u/2)*cos(u)','sin(u)+v*cos(u/2)*sin(u)','v*sin(u/2)',[0,2*pi,-0.3,0.3])

 

Figura 3: Banda de Möbius.

 

 

 

c.    Cálculo simbólico

 

Aunque MATLAB es un programa de cálculo numérico, permite efectuar cálculos simbólicos, que pueden ser incluidos en un M-book. Para ilustrar esta afirmación, definiremos una función con la que realizaremos diversos cálculos simbólicos y numéricos.

 

Consideremos:

f(x) =

 

x 2+2

x–1

syms x,f=(x^2+2)/(x-1)

 

f =

   (x^2+2)/(x-1)  

 

Su derivada der=diff(f)  es

 

der =

   2*x/(x-1)-(x^2+2)/(x-1)^2  

 

y, en consecuencia, sus puntos críticos punt_crit=solve(der)  son

 

punt_crit =

   [ 1+3^(1/2)]

   [ 1-3^(1/2)]  

 

Como la segunda derivada de f en el primer punto double(subs(diff(der),punt_crit(1))) es

 

ans =

   1.1547  

 

dicho punto resulta ser un mínimo relativo, en el cual la función vale

 

double(subs(f,punt_crit(1)))  

 

ans =

   5.4641  

 

Por otra parte, la integral indefinida de f, int(f) , es: 

 

ans =

   1/2*x^2+x+3*log(x-1)  

 

 

d.    Programación

 

Otra de las posibilidades de un M-book es la de incorporar programas diseñados por el usuario. Veamos dos ejemplos.

 

En un texto sobre sucesiones y series cabría plantearse calcular la suma de los 1000 primeros términos de una sucesión cualquiera, por ejemplo xn=1/n. En tal caso, podríamos sumarlos mediante los siguientes comandos y obtener el resultado en nuestro texto:

 

sum=0;

for n=1:1000

 suma=suma+1/n;

end;

suma  

 

suma =

   9.7688  

 

Supongamos ahora que, en un momento dado, en la confección de uno de nuestros textos necesitamos comprobar (no de forma muy rigurosa) que el cociente entre dos términos consecutivos, Fn y Fn+1, de la sucesión de Fibonacci tiende al número de oro, phi, cuando n tiende a . A tal fin, podemos implementar la siguiente rutina que lo “prueba” mediante el cálculo de los 30 primeros cocientes:

 

format long

phi=(1+sqrt(5))/2

f(1)=1;f(2)=1;

for n=3:32

   f(n)=f(n-1)+f(n-2);

   cocientes(n-2)=f(n-1)/f(n-2);

end;

cocientes

format short  

 

phi =

    1.61803398874989

cocientes =

   Columns 1 through 4

    1.00000000000000 2.00000000000000 1.50000000000000 1.66666666666667

   Columns 5 through 8

    1.60000000000000 1.62500000000000 1.61538461538462 1.61904761904762

   Columns 9 through 12

    1.61764705882353 1.61818181818182 1.61797752808989 1.61805555555556

   Columns 13 through 16

    1.61802575107296 1.61803713527851 1.61803278688525 1.61803444782168

   Columns 17 through 20

    1.61803381340013 1.61803405572755 1.61803396316671 1.61803399852180

   Columns 21 through 24

    1.61803398501736 1.61803399017560 1.61803398820533 1.61803398895790

   Columns 25 through 28

    1.61803398867044 1.61803398878024 1.61803398873830 1.61803398875432

   Columns 29 through 30

    1.61803398874820 1.61803398875054  

 

Como se aprecia, el cociente

F31

coincide en 10 cifras decimales con el valor de phi.

F30

 

e.    Cálculos estadísticos

 

La realización de cálculos estadísticos dentro de un texto mediante un M-book es igualmente rápida y sencilla; los resultados se vuelcan inmediatamente en nuestro documento.

 

Para ilustrar este aspecto, generamos 1000 datos aleatorios de una normal de media 50 y desviación típica 5:

 

datos = normrnd(50,5,1,1000);  

 

Ahora dibujamos el histograma de dichos datos, hist(datos)

 

 

Su media, media=mean(datos), es:

 

media =

   50.0123  

 

mientras que su desviación típica, desvia_tipica=std(datos), es

 

desvia_tipica =

   5.0177  

 

Ya que los datos son normales, las estimaciones de máxima verosimilitud para la media y la desviación típica coinciden con los valores anteriores y, como podemos observar a continuación, vamos a obtener los intervalos de confianza para dichas estimaciones al 99% de confianza:

 

[media_estimada,desvia_tipica_estimada,intervalo_media,intervalo_desvia_tipica] = normfit(datos,0.01)

 

media_estimada =

   50.0123

desvia_tipica_estimada =

   5.0177

intervalo_media =

   49.6028

   50.4218

intervalo_desvia_tipica =

   4.7433

   5.3232  

 

 

3.    Conclusiones

 

Los ejemplos anteriores ponen suficientemente de manifiesto la amigabilidad y versatilidad de la plantilla M-book y la forma en que su uso facilita y abrevia las tareas de composición de textos matemáticos. Nótese que el contenido de los documentos creados puede ser seguido sin ningún problema por el lector no interesado en aprender MATLAB, sin más que ignorar los comandos de entrada que aparezcan en el texto.

 

Finalmente, cabe decir que apenas parece existir información sobre los M-book en castellano. La bibliografía en inglés tampoco es muy abundante. Además de la ayuda de MATLAB, el lector que desee profundizar en el tema puede consultar el capítulo 6 de [1].

 

 

4.    Referencias

 

[1] B.R. Hunt, R.L. Lipsman, J. Rosenberg, K.R. Coombes: A Guide to MATLAB For Beginners and Experienced Users. Cambridge University Press, 2001.

 

 

 

Sobre el autor

Manuel Torres Torres (Almería, 1981), es licenciado en Matemáticas por la Universidad de Almería (junio 2004). Actualmente es opositor al cuerpo de profesores de Secundaria por la comunidad andaluza. Disfruta mucho aprendiendo e investigando, por cuenta propia, en paquetes informáticos relacionados con las Matemáticas tales como MATLAB, Mathematica, Maple, LaTeX... Sus aficiones son el deporte, la música y la compañía de sus amigos.