Al arrancar el programa Matlab
nos encontramos con un entorno de trabajo como el que se muestra en la imagen siguiente:
En la parte superior encontramos la barra de menús, y debajo encontramos cuatro ventanas
Directorio de trabajo actual: (Current Folder) Es el directorio en el que se leen y se guardan todas las funciones y programas que vayamos creando durante nuestra sesión de trabajo. Aquí podemos ver los archivos que hay en ese directorio, cambiar a otros directorios o cargar el contenido de un archivo si pinchamos dos veces sobre su nombre.
Ventana de comandos: (Command Window) Es la sección de la pantalla dónde se ejecutan todas las operaciones y comandos. Por ejemplo, si escribimos “a=2” se crea una variable llamada “a” con el valor 2. El comportamiento por defecto de Matlab una vez que se escribe algo, es mostrarnos a continuación el resultado de lo que hemos escrito. Si no queremos que nos muestre el resultado, debemos terminar cada uno de nuestros comandos con punto y coma (;)
Espacio de trabajo en memoria: (Workspace) Es la sección de la pantalla (situada por defecto a la derecha) donde Matlab muestra las variables que vamos creando en la ventana de comandos. Matlab es un software especializado para trabajar con matrices (de hecho MATLAB es un acrónimo de MATRIX LABORATORY) por lo que todas las variables son consideradas como matrices. Incluso un simple valor numérico es considerado como si fuera un vector de dimensión 1x1.
Detalles: (Details) Si pinchamos en el nombre de algún archivo del directorio de trabajo, nos muestra información sobre el contenido de dicho archivo.
La disposición de estas ventanas se puede cambiar pinchando en el icono Layout
() dentro de la barra de menús. Si, por ejemplo, elegimos la opción Two Column
, el entorno de trabajo se reordena del siguiente modo:
Justo encima de la barra de menús, en la parte superior izquierda de la pantalla encontramos tres pestañas orientadas a las distintas actividades que podemos realizar dentro del programa:
HOME: Pestaña principal. Aquí es donde tenemos la barra de menús para crear nuevos “scripts” (archivos de código matlab), abrir o guardar archivos existentes, seleccionar el directorio donde Matlab va a buscar las funciones, fijar el layout, etc.
PLOTS: Pestaña de gráficos. Da acceso a una barra de menús que permite elegir entre distintos gráficos para representar variables.
APPS: Pestaña de aplicaciones. Da acceso a la barra de menús para gestionar distintas aplicaciones que corren en matlab; desde aquí podremos descargarlas, instalarlas o ejecutarlas.
Si elegimos la opción de crear un nuevo archivo (), o abrir un archivo existente (), matlab
abre la ventana de edición de archivos, donde podemos escribir o modificar el código de nuestros programas:
En general, en la ventana de edición escribiremos el código matlab necesario para resolver el problema que se nos haya planteado. Dicho código puede ser guardado en un archivo (que debe tener la extensión .m), y puede ser abierto y reeditado en cualquier momento para realizar las modificaciones que estimemos necesarias. Conviene guardar los archivos .m siempre en la misma carpeta.
Es conveniente utilizar lineas de comentario (deben empezar con el símbolo %) para explicar qué hacen las distintas partes de nuestro código. Aunque en el momento de redactarlo tengamos perfectamente claro el objetivo de nuestras lineas de programación, es muy probable que con el tiempo olvidemos qué hacía nuestro programa y como lo hacía.
Un script de código (o un programa si queremos llamarlo así) es la secuencia de lineas de programación necesarias para resolver un problema. Al igual que en una novela siempre hay un planteamiento, un nudo y un desenlace, en un script normalmente hay:
Una sección para la entrada de datos o valores que definen el problema.
Una sección en la que se realizan las acciones necesarias para resolverlo.
Una última sección en la que se muestra el resultado.
Una vez que tengamos nuestro script de código terminado podemos pulsar la tecla Run
(), y matlab
se encarga de ejecutarlo y mostrarnos el resultado en la ventana de comandos (por defecto debajo de la ventana de edición).
Si solo queremos ejecutar parte del código de la ventana de edición, lo seleccionamos con el ratón y pulsamos la tecla F9
.
En la presentación de la asignatura consideramos el siguiente problema:
Una esfera sólida de radio R cm y densidad \(\rho_e\) gr/cc se sumerge en agua de mar. Suponiendo que \(\rho_e\) es inferior a la densidad del agua del mar, que es aproximadamente \(\rho_a =1.027\) gr/cc, se desea determinar a qué profundidad se sumerge la esfera cuando flota en el mar.
Para resolverlo debíamos tener en cuenta que la profundidad buscada coincide con la altura \(h\) (en cm) del casquete esférico sumergido, de acuerdo con la figura siguiente:
Aplicando el principio de Arquímedes obtuvimos como resultado que el valor buscado de \(h\) se obtiene como solución de la ecuación:
\[\rho_a h^{3} - 3\rho_a R h^{2} + 4\rho_e R^{3}=0\]
donde \(\rho_a\) es la densidad del agua y \(\rho_e\) es la densidad de la esfera. Esta es una ecuación polinómica de la forma:
\[a_3h^3+a_2h^2+a_1h+a_0=0\]
En matlab
, las raíces de un polinomio de grado \(n\) cuyos coeficientes sean \(a_n\), \(a_{n-1}\), \(a_{n-2}\), \(\dots\), \(a_2\), \(a_1\), \(a_0\) se obtiene mediante la sintaxis:
\(\mathsf{roots}\left(\left[a_{n},a_{n-1},a_{n-2},\dots,a_{2},a_{1},a_{0}\right]\right)\)
El siguiente script
de código permite resolver este problema en matlab
. Nótese que en el script escribimos todos los datos que necesitamos para resolverlo; si queremos realizar los cálculos para otros valores del radio de la esfera o las densidades, hemos de cambiarlos en el script:
% Procedimiento para calcular la parte sumergida de una esfera flotante.
% ----------------------------------------------------------------------
%
% DATOS:
% ------
% R = Radio de la esfera (en cm)
% rho_A = Densidad del agua de mar (en gr/cm³)
% rho_E = Densidad de la esfera (en gr/cm³)
R = 20;
rho_A = 1.027;
rho_E = 0.7;
% La altura h sumergida resulta de resolver la ecuación polinómica:
% a*h^3 +b*h^2 + 0*h + c = 0
% donde:
a = rho_A;
b = -3*rho_A*R;
c = 4*rho_E*R^3;
% En matlab las raíces de un polinomio se pueden hallar mediante la función
% roots:
r=roots([a b 0 c]);
% Podemos comprobar que matlab calcula las 3 raíces de este polinomio:
disp('Las tres raices del polinomio son:')
r
% De las tres raíces solo son válidas aquellas comprendidas entre 0 y 2R:
h=r(r>0 & r<2*R);
disp('La altura de la porción sumergida de la esfera es:')
h
Para ejecutarlo, abrimos una ventana de edición nueva en matlab (pinchando en ) e introducimos el código anterior. Al pulsar en el icono obtenemos el resultado:
Las tres raices del polinomio son:
r =
51.904
24.943
-16.847
La altura de la porción sumergida de la esfera es:
h = 24.943