Publicado el 4 de Julio del 2018
731 visualizaciones desde el 4 de Julio del 2018
3,2 MB
38 paginas
Creado hace 18a (01/04/2007)
Introducción a Matlab
Dr. Humberto Madrid de la Vega
Universidad Autónoma de Coahuila
M.C. Irma Delia García Calvillo
Universidad Autónoma de Nuevo León y
Universidad Autónoma de Coahuila
Abril 2007
Contents
1 Vectores y graficación
1.1 Ejercicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Maquillaje de la gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Más vectores
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Un poco de programación
2.1 Mínimos Cuadrados
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Graficación de funciones en dos variables
3.1 Curvas de nivel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Campo direccional
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Manipulación de matrices
4.1 Variables e instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Dimensiones variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Operaciones con Matrices
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Algunas matrices especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Matriz identidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.2 Matriz de ceros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.3 Matriz de unos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4 Matriz aleatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Operaciones elemento a elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Subíndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7 Matrices vacías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8 Almacenar y recuperar variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9 Funciones matemáticas elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10 Formato racional
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Ejercicios
1
3
4
5
9
12
12
16
19
21
22
24
24
27
27
27
28
28
28
29
31
32
33
33
34
El paquete Matlab se ha convertido en una de las principales herramientas en el ámbito de la
computación científica. Su aplicabilidad va desde la enseñanza, la investigación científica y hasta la
producción en la industria.
Estas breves notas no son propiamente un curso sobre Matlab.
Intentan dar una idea sobre
la importancia que puede tener este paquete en el terreno del cómputo científico. Está dirigido a
personas que no está familiarizadas con el paquete e intentan que el lector en unas cuantas horas
pueda apreciar las grandes ventajas de esta poderosa herramienta computacional.
Nos hemos concentrado en ejemplos sencillos de corte científico que ilustran el poder de experi-
mentación y visualización que proporciona Matlab.
En cuanto a la graficación, los ejemplos ilustran las capacidades en dos dimensiones y una
introducción a la graficación en tres dimensiones. Dejamos al lector que navegue por el demo de
Matlab para que vea las potencialidades de esta poderosa herramienta científica.
1 Vectores y graficación
Consideremos el problema de graficar f(x) en [a, b]. Supongamos que f(x) = x2 y [a, b] = [−2, 2], lo
que necesitamos para graficar es una tabla de valores, por ejemplo
x
-2
-1
0
1
2
y=f(x)
4
1
0
1
4
Podemos pensar a cada columna de la tabla como un vector. En Matlab estos vectores se definen
de la siguiente forma
y para graficar se utiliza la instrucción
x = [−2 − 1 0 1 2]
y = [4 1 0 1 4]
plot(x,y)
Con esta instrucción se unen con líneas los puntos (xi, yi) a (xi+1, yi+1) para i = 1, . . . , 4, la gráfica
que se obtiene es la figura 1. Si sólo se desea marcar los puntos de la gráfica se utiliza la instrucción
plot(x,y,’o’)
Si se desea marcar los puntos y unir las líneas, se utiliza
plot(x,y,’o’,x,y)
1
Figure 1: Gráfica de la función f(x) = x2
o bien
plot(x,y,x,y,’o’)
la gráfica resultante se aprecia en la figura 2.
Figure 2: Gráfica marcando y uniendo puntos
Se tienen otras variantes, el comando
help plot
describe cada una de ellas.
Supóngase ahora que se desea graficar y = sen(x) en [0, 2π]. Una forma de hacerlo es primero
generar un vector de abscisas con puntos igualmente espaciados en el intervalo a graficar, evaluar
la función en las abscisas generadas y graficar ambos vectores. Para generar un vector con puntos
igualmente espaciados en el intervalo [0, 2π] se puede utilizar la instrucción
2
x=0:0.1:2*pi
el cual genera un vector con un espaciamiento uniforme de 0.1 entre sus componentes, partiendo de
0 hasta 2π. Para calcular las ordenadas se podría utilizar una instrucción for (la cual veremos más
adelante), pero en Matlab es más fácil, simplemente la instrucción
y=sin(x)
genera las correspondientes ordenadas. Como x es un vector, entonces sin(x ) es también otro
vector cuyas componentes son la función seno aplicada a cada una de las componentes del vector
x, esto es, y(i) = sen(x(i)). Para graficar se utiliza nuevamente el comando plot(x,y). La gráfica
resultante es la figura 3.
Figure 3: Gráfica de la función seno(x) [0.2pi]
Una mejor idea para generar n puntos igualmente espaciados en [0, 2π], por ejemplo para n = 50,
es usar el comando
x=linspace(0,2*pi,50)
Esta instrucción genera 50 puntos igualmente espaciados entre 0 y 2π. La generación del vector y
al igual que la gráfica se realizan de la misma forma que en el ejemplo anterior.
1.1 Ejercicio
Grafique y=cos(x) para x ∈ [−2π, 2π] con 10, 20, 50 y 100 puntos.
3
1.2 Maquillaje de la gráfica
Se pueden poner accesorios a las gráficas, fijar la ventana de graficación , título, etiquetas en los
ejes, zooms, entre otros. Con la instrucción plot(x,y) Matlab automáticamente genera la ventana
de graficación , el rango en el eje x y en el eje y, pero se puede especificar los rangos de valores de x
y de y, con la instrucción
axis([xmin xmax ymin ymax])
Es decir, se ajustan los ejes de manera que el eje x varía de xmin a xmax y el eje y varía de ymin a
ymax. Por ejemplo, teclee las instrucciones
x=linspace(0,2*pi,100);
y=sin(x);
plot(x,y), axis([0 6.3 -1.2 1.2])
observe la grafica resultante y compare con la figura 3.
Ejercicio. Graficar un círculo. Una forma de graficar un círculo es la siguiente:
t=linspace(0,2*pi,100);
x=cos(t);
y=sin(t);
plot(x,y)
Teóricamente esto es un círculo, pero las escalas en los ejes no son iguales. Intente ahora con
plot(x,y), axis(’square’)
y luego con
plot(x,y), axis(’equal’)
También se pueden poner letreros a las gráficas. Para los tíıulos se utiliza la instrucción title.
Por ejemplo, para los datos de la gráfica de la función seno, teclear
plot(x,y), axis([0 6.28 -1.2 1.2]), title(’Grafica del seno’)
Las etiquetas en los ejes se escriben con xlabel, ylabel, las cuales pueden ponerse al igual que
el título, después de la instrucción plot. La instrucción grid genera una cuadrícula en la ventana
de graficación, también va después de la instrucción plot. Si se desea poner varios accesorios a
la gráfica, como las instrucciones van después del plot, no caben todas en una línea, entonces lo
conveniente es crear un programa. Se puede poner toda esta información en un archivo de la siguiente
manera: del Menú File escoger New y M-file, esto invoca al editor y luego hay que teclear todas las
instrucciones y guardar el archivo poniéndole un nombre con extensión m. Por ejemplo, generar un
programa de nombre grafsen.m que contenga las instrucciones
4
x=linspace(0,2*pi,100);
y=sin(x);
plot(x,y);
axis([0 6.3 -1.2 1.2]);
grid title(’Grafica del seno’);
xlabel(’Etiqueta eje x’) ylabel(’Etiqueta eje y’)
Al teclear desde M atlab la instrucción grafsen se ejecutarán todas las instrucciones anteriores
y el resultado es la gráfica que aparece en la figura 4. La instrucción type grafsen, despliega el
contenido del archivo grafsen.m.
Figure 4: Títulos y etiquetas en la gráfica
También se pueden hacer acercamientos o zooms a la gráfica actual. Con la instrucción
zoom on
se activa el comando de acercamiento, se sitúa el cursor en la gráfica y sosteniendo oprimido el botón
izquierdo del ratón se genera un rectángulo que se puede hacer del tamaño que se requiera y al soltar
el mouse aparecerá la gráfica restringida al rectángulo que se generá. Con el comando
zoom off
se desactiva el zoom. Como ejercicio ejecute grafsen, zoom on.
Ejercicio. Modifique el archivo grafsen.m para graficar la función y=cos(x) adecuando los ejes
para la ventana de graficación.
1.3 Más vectores
Supongamos ahora que se desea graficar f(x) = 3x3+2x−3 en el intervalo [−2, 3] usando 50 puntos.
La instrucción
5
x=linspace(-2,3,50)
genera las abscisas. Ahora, cómo encontramos y = f (x)?. El problema es que x es un vector, no
un escalar, así que necesitamos realizar operaciones entre vectores. En Matlab si x es un vector y a
un escalar entonces
a + x
es un vector que a cada componente de x le suma el escalar a.
a*x
también es un vector que a cada componente de x la multiplica por el escalar a, y si z es otro vector
de la misma dimensión de x, entonces
x + z
en un vector de la misma dimensión de x donde la i-ésima componente de x + z viene dada por
x(i) + z(i). Dados dos vectores de igual dimensión, x y z, a menudo es conveniente generar un
vector w tal que w(i) = x(i)*z(i), esto se logra con la multiplicación elemento a elemento, la cual
se define anteponiendo un punto antes del operador, en este caso tenemos que
w = x.*z
Por ejemplo, x.*x es un vector cuyas componentes son x(i)2. Otras operaciones elemento a
elemento disponibles son
.*
./
.^
Entonces para graficar f(x) = 3x3 + 2x − 3, con el vector x generado anteriorm
Comentarios de: Introducción a Matlab (0)
No hay comentarios