PDF de programación - Una introducción a Matlab

Imágen de pdf Una introducción a Matlab

Una introducción a Matlabgráfica de visualizaciones

Publicado el 16 de Marzo del 2020
473 visualizaciones desde el 16 de Marzo del 2020
67,5 KB
19 paginas
Creado hace 22a (28/02/2002)
UNA INTRODUCCIÓN A MATLAB


Este apunte corresponde al un curso de grado sobre la utilización de Matlab, principalmente
orientado a la aplicación de este sistema en la resolución de ecuaciones diferenciales. Está basado
fundamentalmente en el curso que dictaron el Dr. Fernando Basombrío y el Dr. Mario Storti
durante la primera mitad de 1997 en el IB. Otra fuente fundamental para estos apuntes es el manual
de Octave escrito por su creador: John W. Eaton (email: [email protected]). La utilidad de
estas notas reside en que resumen la profundidad del curso dictado por Basombrío y Storti, sin
llegar a ser un manual de referencia como el de Eaton, tornándolas aptas para quienes se
introducen en la utilización del lenguaje de Matlab u Octave.

Pablo A. Ramírez


CONTENIDO



1. Introducción. _______________________________________________________ 3
1.1 Cómo crear una matriz.____________________________________________________ 3
1.2 Aritmética con matrices. ___________________________________________________ 4
1.3 Resolución de sistemas de ecuaciones lineales._________________________________ 4
1.4 Integrando ecuaciones diferenciales__________________________________________ 5
1.5 Obtención de salidas gráficas._______________________________________________ 6
1.6 Recuperación de comandos. ________________________________________________ 6
1.7 Usando la ayuda.__________________________________________________________ 6
2. Tipos de datos. ______________________________________________________ 6
2.1 Objetos Numéricos. _______________________________________________________ 6
2.2 Cadenas de caracteres (strings). _____________________________________________ 6
2.3 Estructuras de datos. ______________________________________________________ 7
3. Tipos de datos numéricos. _____________________________________________ 8
3.1 Matrices. ________________________________________________________________ 8
3.2 Tamaño de los objetos._____________________________________________________ 9
3.3 Rangos. ________________________________________________________________ 10
4. Expresiones. _______________________________________________________ 10
4.1 Expresiones de índices.____________________________________________________ 10
4.2 Llamadas a funciones. ____________________________________________________ 11
4.3 Operaciones aritméticas. __________________________________________________ 13
4.4 Operadores de comparación _______________________________________________ 14
4.5 Operadores lógicas. ______________________________________________________ 15
4.6 Asignaciones.____________________________________________________________ 16
4.7 Operadores de incremento ________________________________________________ 16

4.8 Precedencia de los operadores _____________________________________________ 17
5. Sentencias de control de flujo._________________________________________ 17
5.1 Sentencia ‘if’. ___________________________________________________________ 17
5.2 Sentencia ‘while’_________________________________________________________ 18
5.3 Sentencia ‘for’___________________________________________________________ 18
5.4 La sentencia ‘break’______________________________________________________ 19
5.5 La sentencia ‘continue’ ___________________________________________________ 19
5.6 Continuación de líneas ____________________________________________________ 19
6. Funciones y Scripts _________________________________________________ 19
1.

1. Introducción.

Matlab es un lenguaje de alto nivel, diseñado para hacer cálculos numéricos. Provee una
interfase con línea de comando para resolver problemas lineales y no lineales y otros experimentos
en forma numérica. Puede ser usado también en forma de procesamiento tipo batch.

En la mayoría de los sistemas, la forma de invocar a Matlab es con el comando del shell
‘matlab’. Matlab muestra un mensaje inicial indicando que está listo para aceptar instrucciones y
haciendo algunas sugerencias de comandos para iniciar. A partir de allí se pueden escribir
comandos inmediatamente.
Commands to get started: intro, demo, help help
Commands for more information: help, whatsnew, info, subscribe
»

Si ocurre algún tipo de problema, se puede interrumpir la tarea que está realizando Matlab
con ‘Control – C’ (usualmente escrito como ‘C – c’ para abreviar). Para salir de Matlab
simplemente se debe escribir ‘exit’ en el prompt. En aquellos sistemas que soportan control de
tareas (como Linux y la mayoría de los sistemas Unix, VMS, etc...) se puede suspender Matlab (u
Octave según sea el caso) enviando una señal ‘SIGSTP’ (usualmente ‘C–z’).

resultan ser una guía muy útil para dar una muestra de sus posibilidades.

Si se es nuevo en el uso de Matlab, es recomendable que uno trate de reproducir los
ejemplos que se muestran. Las líneas marcadas como ‘>>‘ son líneas que se deben escribir
terminándolas con un retorno de carro (tecla ‘enter’ de la PC). Matlab responderá con un resultado
o un gráfico.

Los siguientes capítulos describen solo una parte de las funcionalidades de Matlab, aunque

Para crear una matriz y guardarla en una variable de manera que se pueda hacer referencia a

1.1 Cómo crear una matriz.

ella más tarde, basta con escribir:
» a = [ 1, 1, 2; 3, 5, 8; 13, 21, 34]
a =
1 1 2
3 5 8
13 21 34
»

un comando con punto y coma indica a Matlab que no muestre el resultado. Por ejemplo:
» b = rand(3, 2);
»
creará una matriz de 3 filas y 2 columnas con cada elemento puesto a un valor aleatorio (“random”)
entre cero y uno.

variable. Por ejemplo, para mostrar el valor guardado en la matriz ‘b’, se debe tipear el comando:
» b
b =
0.5194 0.0535

Matlab responde imprimiendo (en la pantalla) la matriz en columnas alineadas. Terminar

Para mostrar el valor de una variable, simplemente se debe escribir el nombre de la

0.8310 0.5297
0.0346 0.6711
»

Matlab posee una notación especial para efectuar aritmética matricial. Por ejemplo, para

1.2 Aritmética con matrices.

multiplicar la matriz ‘a’ por un escalar:
» 2 * a
ans =
2 2 4
6 10 16
26 42 68
»
Para multiplicar dos matrices ‘a’ y ‘b’ , se debe escribir el comando:
» a*b
ans =
1.4195 1.9255
5.9897 8.1781
25.3781 34.6378
»
‘ans =‘ indica “answer” (respuesta). Para formar el producto matricial ‘transpuesta (a) * a’,
escribir el comando:
» a' * a
ans =
179 289 468
289 467 756
468 756 1224
»

Para resolver el sistema de ecuaciones lineales ‘ax = b’, es conveniente usar el operador

1.3 Resolución de sistemas de ecuaciones lineales.

de división a la izquierda ‘ \ ‘:
» a \ b
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 2.005637e-018
ans =
1.0e+015 *
4.7955 1.8900
4.7955 1.8900

-4.7955 -1.8900
»
Esto ese conceptualmente equivalente a ‘inv (a) * b’ , pero evita el cálculo de la inversa de la
matriz directamente.

una solución en el sentido de norma mínima.

Si la matriz de coeficientes es singular, Matlab emitirá un mensaje de advertencia y calculará

1.4 Integrando ecuaciones diferenciales


Matlab tiene funciones para resolver ecuaciones diferenciales no lineales de la forma:

con la condición inicial:

=

(
f x t
,

)



dx
dt

(
x t

=

)
=0

t

x

0

'

)

Para que Matlab integre ecuaciones de esta forma, se debe escribir primero una

(
f x t
,
'
. Esto puede ser hecho directamente escribiendo una secuencia de comandos de
función
Matlab en un archivo cuyo nombre define el nombre de una nueva función, necesariamente la
extensión de estos archivos será ‘.m’. Por ejemplo, los comandos siguientes definen el miembro
derecho de un sistema de dos ecuaciones diferenciales no lineales de sumo interés. Para escribir la
nueva función se puede utilizar cualquier editor, por ejemplo, la siguiente función fue editada con el
“Bloc de Notas” que puede encontrarse en cualquier sistema operativo Windows (puaj!):

function xdot = f(t, x)

r = 0.25;
k = 1.4;
a = 1.5;
b = 0.16;
c = 0.9;
d = 0.8;
xdot = [0; 0];

xdot(1) = r*x(1) * (1-x(1)/k) - a*x(1) * x(2) / (1 + b*x(1));
xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);

end
dada la condición inicial
» x0 = [1; 2];
es fácil integrar el sistema usando la función ode23:
» [T,X] = ode23('f',0, 200, x0);

La función ode23 utiliza adaptivamente los esquemas de Runge – Kutta de orden 2 y 3
respectivamente.

Para mostrar la solución del ejemplo previo gráficamente, use el comando:

1.5 Obtención de salidas gráficas.

» plot (t, x)
Si se usa el sistema X Window, Matlab creará automáticamente una ventana separada para mostrar
el gráfico.

1.6 Recuperación de comandos.

comandos al estilo de Emacs o Vi.

En el prompt de Matlab se puede recuperar, editar y reemitir comandos previos usando

1.7 Usando la ayuda.

Matlab tiene facilidades de help abundantes. La misma documentación está disponible en
forma impresa y también está disponible en forma interactiva, ya que ambas formas de
documentación han sido creadas a partir del mismo archivo.

Para obtener ayuda, se debe conocer primero el nombre del comando que se quiere usar, lo
cual no es siempre obvio. Un buen lugar para empezar es tipear directamente ‘help’. Esto mostrará
todos los operadores, palabras reservadas, funciones, variables internas y funciones de archivo. Se
puede obtener más ayuda sobre cualquiera de los ítems listados incluyendo simplemente el nombre
del ítem como argumento. Por ejemplo:
» help plot
mostrará
  • Links de descarga
http://lwp-l.com/pdf17405

Comentarios de: Una introducción a Matlab (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad