Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
En este laboratorio veremos cómo escribir vectores, funciones, programas y gráficos de trama en
MATLAB.
Iniciando MATLAB
En esta sección, veremos algunos comandos de MATLAB. Estos son válidos para la mayoría (o
todas) las versiones de MATLAB, y muchos de ellos son válidos para el clon de MATLAB llamado
Octave.
MATLAB almacena todos los comandos que escribe en la ventana de comandos para que,
incluso cuando la cierre y vuelva a abrir en otro momento, pueda acceder a los comandos que
escribió allí. Puede acceder a estos simplemente presionando las teclas de flecha hacia arriba
y hacia abajo en su teclado.
2. Es una buena idea organizar su trabajo en directorios (o carpetas). Para ello, use el panel de
ventana Directorio actual de MATLAB para navegar dentro de sus documentos y carpetas.
Tenga en cuenta que si la ubicación de los scripts que quiere ejecutar no coincide con el
directorio actual, su script no será ejecutado. Siempre podemos encontrar el nombre del
directorio actual con el comando pwd.
Matrices
Las matrices son los elementos básicos del entorno MATLAB. Una matriz es un arreglo bidimensional
que consta de m filas y n columnas. Los vectores columna (n = 1) y los vectores fila (m = 1) son
casos especiales. En esta sección, ilustraremos cómo aplicar diferentes operaciones en matrices. Se
discuten los siguientes temas: vectores y matrices en MATLAB, el inverso de la matriz, los
determinantes y la manipulación de la matriz. MATLAB admite dos tipos de operaciones, conocidas
como operaciones matriciales (matrixoperations) y operaciones sobre arreglos (arrayoperations). Las
operaciones matriciales se discutirán primero.
Generación de Matrices
Las matrices son fundamentales para MATLAB, por lo tanto, debemos familiarizarnos con su
generación y manipulación. Las matrices en MATLAB se pueden generar de varias maneras y el
propósito de esta sección es mostrar cómo crear vectores y matrices. Un vector es un caso especial
de una matriz. Como se discutió anteriormente, una matriz de dimensión 1 x n se llama vector fila,
mientras que una matriz de dimensión m x 1 se llama vector columna. Los elementos de un vector en
MATLAB están encerrados entre corchetes y están separados por espacios o por comas. Por
ejemplo, para ingresar un vector de fila, v, escriba
>> v = [1 4 7 10 13]
v =
1 4 7 10 13
Los vectores columna se crean de manera similar, sin embargo, se usa el punto y coma (;) para
separar los componentes de un vector de columna.
>> w = [1;4;7;10;13]
w =
1
4
7
10
13
Por otro lado, un vector de fila se puede convertir en un vector de columna utilizando el operador de
transposición. El operador de transposición se denota con un apóstrofe o una comilla simple (’).
>> w = v’
w =
1
4
7
10
13
Por otro lado, las operaciones aritméticas sobre arreglos, o arrayoperations, se realizan elemento por
elemento. El carácter del punto, ., las distingue de las operaciones matriciale. Sin embargo, dado que
las matrixoperations y arrayaoperations son las mismas para sumas y restas, los pares de caracteres
(.+) y (.-) no se usan. La pricipales arrayoperations son:
donde hay tantas ecuaciones como desconocidas. A es una matriz cuadrada dada de orden n, b es
un vector de columna dado de n componentes y x es un vector de columna desconocido de n
componentes. En álgebra lineal, aprendemos que la solución a este sistema se puede escribir como
x = A−1 * b
x + 2y + 3z = 1
4x + 5y + 6z = 1
7x + 8y = 1
Hay dos maneras de resolver esto con MATLAB. La primera es usar la matriz inversa, inv:
>> A = [1 2 3; 4 5 6; 7 8 0];
>> b = [1; 1; 1];
>> x = inv (A) * b
x =
-1.0000
1.0000
-0.0000
La segunda es usar el operador de barra diagonal inversa. El algoritmo numérico detrás de este
operador es computacionalmente eficiente. Esta es una forma numéricamente confiable de resolver
un sistema de ecuaciones lineales utilizando un proceso bien conocido de eliminación gaussiana.
>> A = [1 2 3; 4 5 6; 7 8 0];
>> b = [1; 1; 1];
>> x = A\b
x =
-1.0000
1.0000
-0.0000
Funciones matriciales
det determinante
Puede usar la ayuda en línea de MATLAB para encontrar cómo usar estas funciones.
Linspace y Logspace
Las funciones linspace y logspace proporcionan otras herramientas útiles para generar vectores de
puntos espaciados. La función linspace genera un vector de fila de puntos igualmente espaciados.
Tiene la forma linspace (x1, x2, n) que genera n puntos entre x1 y x2. Por ejemplo,
>> X = [1 2 3 4 5 6];
>> Y = [3 -1 2 4 5 1];
>> plot (X,Y)
Funciones
A menudo estamos interesados en una determinada función y = f (x), pero la única información que
tenemos sobre esta función es un conjunto discreto de datos (xi, yi). Al trazar los datos, como hicimos
anteriormente, se puede pensar en visualizar la función utilizando solo los datos. Más adelante
descubriremos que también podemos hacer otras cosas con la función, como diferenciar e integrar,
simplemente usando los datos disponibles. Los métodos numéricos, el tema de este curso, significa
hacer matemáticas por computadora. Dado que una computadora solo puede almacenar una
cantidad finita de información, casi siempre estaremos trabajando con un conjunto finito y discreto de
valores de la función (datos), en lugar de una fórmula para la función.
Funciones integradas
Si deseamos tratar con fórmulas para funciones, Matlab contiene una serie de funciones integradas,
incluidas todas las funciones habituales, como sin (), exp (), etc. El significado de la mayoría de ellas
es claro. La variable dependiente (entrada) siempre va entre paréntesis en Matlab. Por ejemplo
sin (pi)
exp (0)
devolverá e0, que es 1. Más importante aún, las funciones integradas pueden operar no solo en
números únicos sino también en vectores.
>> x = linspace(0,2*pi,40)
>> y = sin(x)
>> plot(x,y)
Algunas de las funciones incorporadas en Matlab incluyen: cos (), tan (), sinh (), cosh (), log ()
(logaritmo natural), log10 () (log base 10), asin () (seno inverso) ), acos (), atan (). Para obtener más
información sobre una función, use el comando de ayuda; intente con
Programas en MATLAB
En Matlab, los programas se pueden escribir y guardar en archivos con un sufijo .m llamado M-files.
Vamos a ver cómo escribir nuestras propias funciones en archivos .m.
Programas de funciones
Comience haciendo clic en el nuevo icono del documento en la esquina superior izquierda de la
ventana de Matlab (parece una hoja de papel vacía). En la ventana del documento, escriba lo
siguiente:
Guarde este archivo como: myfunc.m en su directorio de trabajo. Este archivo ahora se puede usar en
la ventana de comandos al igual que cualquier función de Matlab predefinida; en la ventana de
comando ingrese:
>> x = -2:.1:2; % Produces a vector of x values
>> y = myfunc (x); % Produces a vector of y values
>> plot (x,y)
Mire de nuevo el programa. Todos los programas de funciones son como este y sus elementos
esenciales son:
Las funciones pueden tener múltiples entradas, que están separadas por comas. Por ejemplo:
Las funciones pueden tener múltiples salidas, que se recopilan en un vector. Abra un nuevo
documento y escriba:
Guarde este archivo como mypowers.m. En la ventana de comandos, podemos usar los resultados
del programa para hacer gráficos:
>> x = -1:.1:1
>> [x2 x3 x4] = mypowers (x);
>> plot (x, x, ’black’, x, x2, ’blue’, x, x3, ’green’, x, x4, ’red’)
Para los programas que tienen más de un par de líneas, es importante incluir comentarios. Los
comentarios permiten que otras personas sepan lo que hace su programa y también le recuerdan a sí
mismo lo que hace su programa si lo reserva y vuelve más tarde. Es mejor incluir comentarios no solo
en la parte superior de un programa, sino también con cada sección. En Matlab, todo lo que aparece
en una línea después de un % es un comentario.
Para una función, los comentarios deben al menos dar el propósito, las entradas y las salidas. Una
versión debidamente comentada de la función con la que comenzamos esta sección es:
function y = myfunc ( x )
% Computes the function 2 x ^2 -3 x +1
% Input : x -- a number or vector ;
% for a vector the computation is elementwise
% Output : y -- a number or vector of the same size as x
y = 2* x.^2 - 3*x + 1;
end
A menudo es útil incluir el nombre de la función al inicio del script. Por ejemplo:
% mygraphs
% plots the graphs of x , x ^2 , x ^3 , and x ^4
% on the interval [ -1 ,1]
% fix the domain and evaluation points
x = -1:.1:1;
% calculate powers
% x1 is just x
x2 = x.^2;
x3 = x.^3;
x4 = x.^4;
% plot each of the graphs
plot (x, x, ’black’, x, x2, ’blue’, x, x3, ’green’, x, x4, ’red’)
help mygraphs
if expression
statements
end
Algunos ejemplos basados en la fórmula cuadrática familiar se ven en los códigos a continuación.
En el ciclo for ... end, la ejecución de un comando se repite en un número fijo y predeterminado de
veces. La sintaxis es
Un ejemplo es
Este ciclo se usa cuando no se especifica el número de pasadas. El bucle continúa hasta que se
cumpla una condición establecida. El ciclo while tiene la forma:
x = 1
while x <= 10
x = 3*x
end
Es importante tener en cuenta que si la condición dentro del bucle no está bien definida, el bucle
continuará indefinidamente. Si esto sucede, podemos detener la ejecución presionando Ctrl-C.
Ejercicios
1. Escriba un programa de funciones bien comentado que grafica las funciones sin x, sin 2x, sin
3x, sin 4x, sin 5x y sen 6x en el intervalo [0, 2π] en un gráfico. Use un tamaño de paso
suficientemente pequeño para suavizar todos los gráficos. Entregue el programa y el gráfico.
2. Un circuito eléctrico simple que consiste en una resistencia, un condensador y un inductor. La
carga en el condensador q (t) en función del tiempo se puede calcular como
F(N) 14 18 8 9 13
Use MATLAB para almacenar F y x como vectores y luego calcule los vectores de las
constantes de resorte y las energías potenciales. Use la función max para determinar la
energía potencial máxima.
4. La curva de una mariposa está dada por las siguientes ecuaciones paramétricas:
Genere valores de x e y para valores de t de 0 a 100 con ∆t = 1/16 Construya gráficas de:
a. x e y versus t.
b. y versus x. Use subplot mostrar ambas gráficas en una sola.
Incluya títulos y etiquetas de eje.