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,
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:
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,
, 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 .
|
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.
|