Sie sind auf Seite 1von 49

EL PROGRAMA MATLAB

MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB es


un programa para realizar clculos numricos con vectores y matrices. Como
caso particular puede tambin trabajar con nmeros escalares -tanto reales
como complejos-, con cadenas de caracteres y con otras estructuras de
informacin ms complejas. Una de las capacidades ms atractivas es la de
realizar una amplia variedad de grficos en dos y tres dimensiones.
MATLAB es un gran programa de clculo tcnico y cientfico. Para ciertas
operaciones es muy rpido, cuando puede ejecutar sus funciones en cdigo
nativo con los tamaos ms adecuados para aprovechar sus capacidades de
vectorizacin. En otras aplicaciones resulta bastante ms lento que el cdigo
equivalente desarrollado en C/C++ o Fortran. En la versin 6.5, MATLAB
incorpor un acelerador JIT (Just In Time), que mejoraba significativamente la
velocidad de ejecucin de los ficheros *.m en ciertas circunstancias, por
ejemplo cuando no se hacen llamadas a otros ficheros *.m, no se utilizan
estructuras y clases, etc. Aunque limitado en ese momento, cuando era
aplicable mejoraba sensiblemente la velocidad, haciendo innecesarias ciertas
tcnicas utilizadas en versiones anteriores como la vectorizacin de los
algoritmos. En cualquier caso, el lenguaje de programacin de MATLAB
siempre es una magnfica herramienta de alto nivel para desarrollar
aplicaciones tcnicas, fcil de utilizar y que, como ya se ha dicho, aumenta
significativamente la productividad de los programadores respecto a otros
entornos de desarrollo.
MATLAB dispone de un cdigo bsico y de varias libreras especializadas
(toolboxes). En estos apuntes se har referencia exclusiva al cdigo bsico.

MATLAB se puede arrancar como cualquier otra aplicacin de Windows,


clicando dos veces en el icono correspondiente en el escritorio o por medio del
men Inicio). Al arrancar MATLAB se abre una ventana similar a la mostrada
en la Figura 1. sta es la vista que se obtiene eligiendo la opcin Desktop
Layout/Default, en el men View. Como esta configuracin puede ser
cambiada fcilmente por el usuario, es posible que en muchos casos concretos
lo que aparezca sea muy diferente. En cualquier caso, una vista similar se
puede conseguir con el citado comando View/Desktop Layout/ Default. Esta
ventana inicial requiere unas primeras explicaciones.
La parte ms importante de la ventana inicial es la Command Window, que
aparece en la parte derecha. En esta sub-ventana es donde se ejecutan los
comandos de MATLAB, a continuacin del prompt (aviso) caracterstico (>>),
que indica que el programa est preparado para recibir instrucciones. En la
pantalla mostrada en la Figura 1 se ha ejecutado el comando A=magic(6),
mostrndose a continuacin el resultado proporcionado por MATLAB.
En la parte superior izquierda de la pantalla aparecen dos ventanas tambin
muy tiles: en la parte superior aparece la ventana Current Directory, que se

puede alternar con Workspace clicando en la pestaa correspondiente. La


ventana Current Directory muestra los ficheros del directorio activo o actual.
El directorio activo se puede cambiar desde la Command Window, o desde la
propia ventana (o desde la barra de herramientas, debajo de la barra de mens)
con los mtodos de navegacin de directorios propios de Windows. Clicando
dos veces sobre alguno de los ficheros *.m del directorio activo se abre el
editor de ficheros de MATLAB, herramienta fundamental para la
programacin sobre la que se volver en las prximas pginas. El Workspace
contiene informacin sobre todas las variables que se hayan definido en esta
sesin y permite ver y modificar las matrices con las que se est trabajando.
En la parte inferior derecha aparece la ventana Command History que muestra
los ltimos comandos ejecutados en la Command Window. Estos comandos se
pueden volver a ejecutar haciendo doble clic sobre ellos. Clicando sobre un
comando con el botn derecho del ratn se muestra un men contextual con
las posibilidades disponibles en ese momento. Para editar uno de estos
comandos hay que copiarlo antes a la Command Window.
En la parte inferior izquierda de la pantalla aparece el botn Start, con una
funcin anloga a la del botn Inicio de Windows. Start da acceso inmediato a
ciertas capacidades del programa. El men Desktop realiza un papel anlogo
al botn Start, dando acceso a los mdulos o componentes de MATLAB que
se tengan instalados.
Puede hacerse que al arrancar MATLAB se ejecute automticamente un
fichero, de modo que aparezca por ejemplo un saludo inicial personalizado.
Esto se hace mediante un fichero de comandos que se ejecuta de modo
automtico cada vez que se entra en el programa (el fichero startup.m, que
debe estar en un directorio determinado, por ejemplo C:\Matlab701\Work. ).
Para apreciar desde el principio la potencia de MATLAB, se puede comenzar
por escribir en la Command Window los comandos, a continuacin del
prompt. Al final hay que pulsar intro.

CALCULOS SIMPLES CON MATLAB


Matlab puede trabajar como si fuese una calculadora cientfica con todas las
funciones posibles.
Operacin

signo

Potenciacin
Multiplicacin
Divisin
Divisin inversa
Suma
Resta

^
*
/
\
+
-

Tecla
abreviada
alt 94
alt 42
alt 92
alt 43
alt 45

Clculos simples:
>> 27^1/3+32^0.2
ans =
11
>> 27^(1/3)+32^0.2
ans =
5
>> 4+5/3+1
ans =
6.6667
OPERADOR ASIGNACIN:
Es el que asigna el valor indicado a una variable. El valor puede ser una
matriz en forma general. Incluso puede ser otra variable.
>> x=15
x=
15
>> x=x+1
x=
16
>> x=3*x-12
x=

36
>> y=x+2
y=
38
>> who
Your variables are:
ans x y
>> whos
Name
Size
Bytes Class
ans
1x1
8 double array
x
1x1
8 double array
y
1x1
8 double array
Grand total is 3 elements using 24 bytes
>> clear x
>> who
Your variables are:
ans y
Donde vemos que con who y whos, vemos las variables. Con clear borramos
las variables.
FUNCIONES MATEMTICAS BSICAS
tipear en MATLAB

Funcin
Seno
Coseno
Tangente
Arc seno
Arc coseno
Arco tangente
seno hiperblico
Coseno hiperblico
Tangente hiperblico

sin(x )
cos(x )
tan(x )
asin(x)
acos(x )
atan(x )
sinh(x )
cosh(x )
tanh(x )

Arc seno hiperblico


Arc coseno hiperblico
Arc tangente hiperblico
Valor absoluto
Raz cuadrada
Angulo de fase
factorial
Real del complejo
Imaginario del complejo
Conjugado complejo
Redondeo al entero mas cercano
Redondeo a real
Redondeo
Redondeo
Signo
resto de la divisin
exponente o ex
Logaritmo neperiano
Logaritmo decimal
Mximo comn divisor
Mnimo comn mltiplo

asinh(x )
acosh(x )
atanh(x )
abs(x )
sqrt(x )
angle(x )
factorial(x)
real(x )
imag(x )
conj(x )
round(x)
fix(x)
floor(x)
ceil(x)
sign(x)
rem(x,y)
exp(x)
log(x)
log10(x)
gcd(x,y)
lcm(x,y)

Observacin: Las funciones trigonomtricas tienen la caracterstica de que


el ngulo esta en radianes.
Ejemplos:
>> round(1.23)
ans =
1
>> round(-1.23)
ans =
-1
>> gcd(12,4)

ans =
4
>> lcm(5,8)
ans =
40
>> sin(pi/2)
ans =
1
VARIABLES
Las variables con las que se trabaja, pueden ser de cualquier tipo. Y no
necesitan definirse previamente. Se crean al momento de escribirla.
Respecto a los formatos numricos con que MATLAB muestra los resultados
(recurdese que
Siempre calcula con doble precisin, es decir con unas 16 cifras decimales
equivalentes), las posibilidades existentes se muestran en la lista
format short
format long
format hex
format bank
format short e
format short g
format long e
format long g
format rational
enteros

coma fija con 4 decimales (por defecto)


coma fija con 15 decimales
cifras hexadecimales
nmeros con dos cifras decimales
notacin cientfica con 4 decimales
notacin cientfica o decimal, dependiendo del valor
notacin cientfica con 15 decimales
notacin cientfica o decimal, dependiendo del valor
expresa los nmeros racionales como cocientes de

Estos formatos se pueden cambiar tambin desde la lnea de comandos


anteponiendo la palabra format.
CONSEJOS UTILES:
1) Para desenvolverse en la pantalla de de MATLAB, es necesario tener en
cuenta que variables se estn usando y cuales son sus valores.
2) Tener en cuenta que hay diferencia entre maysculas y minsculas.

3) Si no se quiere presentar un resultado en pantalla se debe terminar con


punto y coma.
4) Para asignar variables use: minsculas en nmeros y maysculas para
arreglos, matrices y vectores.
5) Para ejecutar una operacin o terminar una lnea en MATLAB se presiona
la tecla (enter)
Ejem1:

>> y=2-6
y=
-4
>> y=2-6;
>>
Vea la diferencia.
Ejem2: Vea la diferencia entre x y X
>> x=2+3
x=
5
>>X
??? Undefined function or variable 'X'.
>>x
x=
5

II. VECTORES Y MATRICES


Para crear un vector es necesario teclear sus elementos dentro de un par de
corchetes.
Nombre _variable=[elementos del vector]
VECTOR FILA: Los elementos deben escribirse separados por una coma o
con un espacio entre ellos.
VECTOR COLUMNA: Los elementos deben escribirse separados por un
punto y coma o pulsando la tecla intro despus de cada elemento.
>> x=[1 2 3]
x=

1 2 3
>> x=[1,2,3]
x=
1 2 3
>> y=[1;2;3]
y=
1
2
3
>> y=[1
2
3]
y=
1
2
3
linspace(a, b, n): Crea un vector de n elementos, que empieza en a y termina
en b y que estn equiespaciados. Donde el espaciado esta dado por: (b-a)/(n1), si se omite el nmero de elementos ste por defecto es 100.
>> a=linspace(30,10,11)
a=
Columns 1 through 9
30 28 26 24 22
Columns 10 through 11
12 10

20

18

16

14

CARACTERIZACIN DE UN VECTOR
>> u=[4,5,9,0,8]
>> length(u)
>> v=[56;98;32]
>> length(v)
>> max(u)
>> min(v)
>> norma=sqrt(sum(u.^2))

>> norma=sqrt(sum(v.^2))
>> h=[2-3*i,1+i,8-3*i]
>> conj(h)
PRODUCTO INTERNO CANONICO DE VECTORES:
dot (u, v) u1v1 u2 v2 L un vn
>> u=[4 5 9 0 8]
>> v=[5 7 3 4 9]
>> dot(u,v)
>> norma=sqrt(dot(u,u))
>> norma=sqrt(dot(v,v))
PRODUCTO CRUZ DE VECTORES TRIDIMENSIONALES:
r r r
i
j k
cross(u, v ) u1 u2 u3 u2 v3 u3v2 , u3v1 u1v3 , u1v2 u2v1
v1 v2 v3
>> x=[2 5 9]
>> y=[6 2 8]
>> cross(x,y)
>> cross(y,x)
>> cross(x,x)
COMPONENTES DE UN VECTOR
>> a=[11;23;56;8;17;45;67;35]
>> a(3),a(7)
>> a(3:2:8)
>> a(8:-1:1)
>> b=a(1:3:8)'
OPERACIONES CON MATRICES Y VECTORES
Ya se ha comentado que MATLAB es fundamentalmente un programa para
clculo matricial. Inicialmente se utilizar MATLAB como programa

interactivo, en el que se irn definiendo las matrices, los vectores y las


expresiones que los combinan y obteniendo los resultados sobre la marcha. Si
estos resultados son asignados a otras variables podrn ser utilizados
posteriormente en otras expresiones. En este sentido MATLAB sera como
una potente calculadora matricial (en realidad es esto y mucho ms...).
>> A=[1 2 3;4 5 6;7 8 9]
A partir de este momento la matriz A est disponible para hacer cualquier tipo
de operacin con ella (adems de valores numricos, en la definicin de una
matriz o vector se pueden utilizar expresiones y funciones matemticas). Por
ejemplo, una sencilla operacin con A es hallar su matriz traspuesta.
En MATLAB el apstrofo (') es el smbolo de transposicin matricial. Para
calcular A'
(traspuesta de A) basta teclear lo siguiente:
>> A'
Como el resultado de la operacin no ha sido asignado a ninguna otra matriz,
MATLAB utiliza un
nombre de variable por defecto (ans, de answer), que contiene el resultado de
la ltima operacin.
La variable ans puede ser utilizada como operando en la siguiente expresin
que se introduzca.
Tambin podra haberse asignado el resultado a otra matriz llamada B:
Aunque en MATLAB las matrices se introducen por filas, se almacenan por
columnas, lo cual tiene su importancia como se ver ms adelante.
>> B=A'
Ahora ya estn definidas las matrices A y B, y es posible seguir operando con
ellas. Por ejemplo, se puede hacer el producto B*A (deber resultar una matriz
simtrica):
>> B*A
En MATLAB se accede a los elementos de un vector poniendo el ndice entre
parntesis (por ejemplo x(3) x(i)). Los elementos de las matrices se acceden
poniendo los dos ndices entre parntesis, separados por una coma (por
ejemplo A(1,2) A(i,j)). Las matrices se almacenan por columnas (aunque se

introduzcan por filas, como se ha dicho antes), y teniendo en cuenta esto


puede accederse a cualquier elemento de una matriz con un slo subndice.
Por ejemplo, si A es una matriz (33) se obtiene el mismo valor escribiendo
A(1,2) que escribiendo A(4).
>> A=[1 2 3 4; 5 6 9 12;15 17 23 29]
>> A(3,3)
>> A(2,3)
>> A(8)
>>
Invertir una matriz es casi tan fcil como trasponerla. A continuacin se va a
definir una nueva matriz A -no singular- en la forma:
>> A=[1 4 -3;2 1 5;-2 5 3]
Ahora se va a calcular la inversa de A y el resultado se asignar a D. Para ello
basta hacer uso de la funcin inv( )
>> A=[1 4 -3;2 1 5;-2 5 3]
>> D=inv(A)
Comprobando el resultado:
>> D*A
De forma anloga a las matrices, es posible definir un vector fila x en la forma
siguiente (si los tres nmeros estn separados por blancos o comas, el
resultado ser un vector fila):
>> y=[4,2,9,7]
>> x=[23 45 61]
>> Por el contrario, si los nmeros estn separados por intros o puntos y coma
(;) se obtendr un vector columna:
>> w=[23;17;45]
>> u=[23
25
78

45
89]
MATLAB tiene en cuenta la diferencia entre vectores fila y vectores columna.
Por ejemplo, si se intenta sumar los vectores x e y se obtendr el siguiente
mensaje de error:
>> x+w
??? Error using ==> +
Matrix dimensions must agree.
>>
Estas dificultades desaparecen si se suma x con el vector transpuesto de y:
>> x+w'
A continuacin se van a estudiar estos temas con un poco ms de
detenimiento.
OPERACIONES CON MATRICES
OPERADORES ARITMTICOS
MATLAB puede operar con matrices por medio de operadores y por medio de
funciones. Se han visto ya los operadores suma (+), producto (*) y traspuesta
('), as como la funcin invertir inv( ).
Los operadores matriciales de MATLAB son los siguientes:
+

*
'
^
\
/
.*
. / y.\
.^

Adicin o suma
sustraccin o resta
Multiplicacin
traspuesta
Potenciacin
divisin-izquierda
divisin-derecha
Producto elemento a elemento
divisin elemento a elemento
Elevar a una potencia elemento a elemento

Estos operadores se aplican tambin a las variables o valores escalares,


aunque con algunas diferencias. Todos estos operadores son coherentes con
las correspondientes operaciones matriciales: no se puede por ejemplo sumar

matrices que no sean del mismo tamao. Si los operadores no se usan de


modo correcto se obtiene un mensaje de error.
Los operadores anteriores se pueden aplicar tambin de modo mixto, es decir
con un operando escalar y otro matricial. En este caso la operacin con el
escalar se aplica a cada uno de los elementos de la matriz. Considrese el
siguiente ejemplo:
En trminos de C++ se podra decir que son operadores sobrecargados, es
decir, con varios significados distintos dependiendo del contexto, es decir, de
sus operandos.
>> A=[1 2; 3 4]
>> A*2
MATLAB utiliza el operador de divisin / para dividir por un escalar todos los
elementos de una matriz o un vector. Esto no constituye ninguna sorpresa.
OPERACIN EN MATLAB
A=[3 4 5
463
4 8 0]
B=[2 3 6 8;4 8 9 8;0 8 6 3]

RESULTADO EN MATLAB
A= 3 4 5
4 6 3
4 8 0
B=
2 3 6 8
4 8 9 8
0 8 6 3

C=
C=[3,4,5,7;6,6,8,9;3,4,1,5;7,5,6,2;7,4,6,8]
3 4 5 7
6 6 8 9
3 4 1 5
7 5 6 2
7 4 6 8
C'
ans =
3 6 3 7 7
4 6 4 5 4
5 8 1 6 6
7 9 5 2 8
A*b
??? Undefined function or variable 'b'.
A*B

ans =
22 81
32 84

84
96

71
89

40
A*C

76

96

96

??? Error using ==> *


Inner matrix dimensions must agree.

A*C'

??? Error using ==> *


Inner matrix dimensions must agree.

D=[2 4 5 6]
E=[5 8 9 0]
D*E

D= 2 4 5 6
E= 5 8 9 0
??? Error using ==> *
Inner matrix dimensions must agree.

D*E'
A

ans =
A=

4+A

ans =
7 8
8 10
8 12

9
7
4

F=
7
8
8

8
10
12

9
7
4

G=
18
24
24

24
36
48

30
18
0

F=4+A

G=6*A

H=A^2

J=A.^2

K=A-5

87
3 4
4 6
4 8

H=
45 76 27
48 76 38
44 64 44
J=
9 16 25
16 36 9
16 64 0
K=
-2 -1 0
-1 1 -2

5
3
0

-1
L=A-B
A

N=inv(A)

-5

??? Error using ==> Matrix dimensions must agree.


A=
3 4 5
4 6 3
4 8 0
N=
-1.5000 2.5000 -1.1250
0.7500 -1.2500 0.6875
0.5000 -0.5000 0.1250

TIPOS DE MATRICES PREDEFINIDOS


Existen en MATLAB varias funciones orientadas a definir con gran facilidad
matrices de tipos particulares.
Algunas de estas funciones son las siguientes:
eye(4)
zeros(3,5)
zeros(4)
ones(3)
ones(2,4)
linspace(x1,x2,n)
logspace(d1,d2,n)
rand(3)
rand(2,5)
randn(4)

forma la matriz unidad de tamao (44)


forma una matriz de ceros de tamao (35)
dem de tamao (44)
forma una matriz de unos de tamao (33)
idem de tamao (24)
genera un vector con n valores igualmente espaciados
entre x1 y x2
genera un vector con n valores espaciados
logartmicamente entre 10^d1 y 10^d2. Si d2 es pi9,
los puntos se generan entre 10^d1 y pi
forma una matriz de nmeros aleatorios entre 0 y 1, con
distribucin uniforme, de tamao (33)
idem de tamao (25)
forma una matriz de nmeros aleatorios de tamao
(44), con distribucin normal, de valor medio 0 y
varianza 1.

magic(4)

crea una matriz (44) con los nmeros 1, 2, ... 4*4, con
la
propiedad de que todas las filas y
columnas suman lo mismo .
hilb(5)
crea una matriz de Hilbert de tamao (55). La matriz
de Hilbert es una matriz cuyos elementos (i,j) responden a la expresin (1/
(i+j-1)). Esta es una matriz especialmente difcil de manejar por los grandes
errores numricos a los que conduce.
invhilb(5)
crea directamente la inversa de la matriz de Hilbert
kron(x,y)
produce una matriz con todos los productos de los
elementos del vector x por los elementos del vector y.
Equivalente a x'*y, donde x e y son vectores fila
compan(pol)
construye una matriz cuyo polinomio caracterstico
tiene como coeficientes los elementos del vector pol
(ordenados de mayor grado a menor)
vander(v)
construye la matriz de Vandermonde a partir del vector
v (las columnas son las potencias de los elementos de
dicho vector)
Existen otras funciones para crear matrices de tipos particulares. Con
Help/Matlab Help se puede obtener informacin sobre todas las funciones
disponibles en MATLAB, que aparecen agrupadas por categoras o por orden
alfabtico. En la categora Mathematics aparecen la mayor parte de las
funciones estudiadas en este apartado.
FORMACIN DE UNA MATRIZ A PARTIR DE OTRAS
MATLAB ofrece tambin la posibilidad de crear una matriz a partir de
matrices previas ya definidas, por varios posibles caminos:
recibiendo alguna de sus propiedades (como por ejemplo el tamao),
por composicin de varias submatrices ms pequeas,
modificndola de alguna forma.
A continuacin se describen algunas de las funciones que crean una nueva
matriz a partir de otra o de otras, comenzando por dos funciones auxiliares:

[m,n]=size(A)
devuelve el nmero de filas y de columnas de la matriz
A. Si la matriz es cuadrada basta recoger el primer valor de retorno.
n=length(x)
calcula el nmero de elementos de un vector x
zeros(size(A))
forma una matriz de ceros del mismo tamao que una
matriz A previamente creada
ones(size(A))
dem con unos
A=diag(x)
forma una matriz diagonal A cuyos elementos
diagonales son los elementos de un vector ya existente x
x=diag(A)
forma un vector x a partir de los elementos de la
diagonal de una matriz ya existente A
diag(diag(A))
crea una matriz diagonal a partir de la diagonal de la
matriz A
blkdiag(A,B)
crea una matriz diagonal de submatrices a partir de las
matrices que se le pasan como argumentos
triu(A)
forma una matriz triangular superior a partir de una
matriz A (no tiene por qu ser cuadrada). Con un segundo argumento puede
controlarse que se mantengan o eliminen ms diagonales por encima o debajo
de la diagonal principal.
tril(A)
dem con una matriz triangular inferior
rot90(A,k)
Gira k*90 grados la matriz rectangular A en sentido
antihorario. k es un entero que puede ser negativo. Si se omite, se supone k=1
flipud(A)
halla la matriz simtrica de A respecto de un eje
horizontal
fliplr(A)
halla la matriz simtrica de A respecto de un eje vertical
reshape(A,m,n)
Cambia el tamao de la matriz A devolviendo una
matriz de tamao mn cuyas columnas se obtienen a partir de un vector
formado por las columnas de A puestas una a continuacin de otra. Si la
matriz A tiene menos de mn elementos se produce un error.
Un caso especialmente interesante es el de crear una nueva matriz
componiendo como submatrices otras matrices definidas previamente. A
modo de ejemplo, ejectense las siguientes lneas de comandos y obsrvense
los resultados obtenidos:
A=rand(3)
B=diag(diag(A))
C=[A, eye(3); zeros(3), B]

En el ejemplo anterior, la matriz C de tamao (66) se forma por composicin


de cuatro matrices
de tamao (33). Al igual que con simples escalares, las submatrices que
forman una fila se separan con blancos o comas, mientras que las diferentes
filas se separan entre s con intros o puntos y comas. Los tamaos de las
submatrices deben de ser coherentes.
DIRECCIONAMIENTO DE VECTORES Y MATRICES A PARTIR DE
VECTORES
Los elementos de un vector x se pueden direccionar a partir de los de otro
vector v. En este caso,
x(v) equivale al vector x(v(1)), x(v(2)), ... Considrese el siguiente ejemplo:
v=[1 3 4]
x=rand(1,6)
x(v) %escoge primer,tercer y cuarto elemento de x
De forma anloga, los elementos de una matriz A pueden direccionarse a
partir de los elementos de dos vectores f y c. Vase por ejemplo:
f=[2 4]; c=[1 2];
A=magic(4)
A(f,c)
f=[3];c=[1 4];
A(f,c)
El siguiente ejemplo continuacin del anterior permite comprobar cmo los
elementos de una matriz se pueden direccionar con un slo ndice,
considerando que las columnas de la matriz estn una a continuacin de otra
formando un vector:
f=[1 3 5 7];
A(f), A(5), A(6)
Ms adelante se ver que esta forma de extraer elementos de un vector y/o de
una matriz tiene abundantes aplicaciones, por ejemplo la de modificar
selectivamente esos elementos.

OPERADOR DOS PUNTOS (:)


Este operador es muy importante en MATLAB y puede usarse de varias
formas. Se sugiere al lector que practique mucho sobre los ejemplos
contenidos en este apartado, introduciendo todas las modificaciones que se le
ocurran y haciendo pruebas abundantes (Probar es la mejor forma de
aprender!).
Para empezar, defnase un vector x con el siguiente comando:
x=1:10
En cierta forma se podra decir que el operador (:) representa un rango: en
este caso, los
nmeros enteros entre el 1 y el 10. Por defecto el incremento es 1, pero este
operador puede tambin utilizarse con otros valores enteros y reales, positivos
o negativos. En este caso el incremento va entre el valor inferior y el superior,
en las formas que se muestran a continuacin:
x=1:2:10
x=1:1.5:10
x=10:-1:1
Puede verse que, por defecto, este operador produce vectores fila. Si se desea
obtener un vector columna basta trasponer el resultado. El siguiente ejemplo
genera una tabla de funciones seno y coseno. Ejectese y obsrvese el
resultado (recurdese que con (;) despus de un comando el resultado no
aparece en pantalla).
x=[0.0:pi/50:2*pi]';
y=sin(x); z=cos(x);
[x y z]
El operador dos puntos (:) es an ms til y potente y tambin ms
complicado con matrices. A continuacin se va a definir una matriz A de
tamao 6x6 y despus se realizarn diversas operaciones sobre ella con el
operador (:).

A=magic(6)
Recurdese que MATLAB accede a los elementos de una matriz por medio de
los ndices de fila y de columna encerrados entre parntesis y separados por
una coma. Por ejemplo:
A(2,3)
El siguiente comando extrae los 4 primeros elementos de la 6 fila:
A(6, 1:4)
Los dos puntos aislados representan "todos los elementos". Por ejemplo, el
siguiente comando extrae todos los elementos de la 3 fila:
A(3, :)
Para acceder a la ltima fila o columna puede utilizarse la palabra end, en
lugar del nmero correspondiente. Por ejemplo, para extraer la sexta fila (la
ltima) de la matriz:
A(end, :)
El siguiente comando extrae todos los elementos de las filas 3, 4 y 5:
A(3:5,:)
Se pueden extraer conjuntos disjuntos de filas utilizando corchetes [ ]. Por
ejemplo, el
siguiente comando extrae las filas 1, 2 y 5:
A([1 2 5],:)
En los ejemplos anteriores se han extrado filas y no columnas por motivos del
espacio ocupado por el resultado en la hoja de papel. Es evidente que todo lo
que se dice para filas vale para columnas y viceversa: basta cambiar el orden
de los ndices.
El operador dos puntos (:) puede utilizarse en ambos lados del operador (=).
Por ejemplo, a continuacin se va a definir una matriz identidad B de tamao
6x6 y se van a reemplazar filas de B por filas de A. Obsrvese que la siguiente
secuencia de comandos sustituye las filas 2, 4 y 5 de B por las filas 1, 2 y 3 de
A,
B=eye(size(A));
B([2 4 5],:)=A(1:3,:)
Se pueden realizar operaciones an ms complicadas, tales como la siguiente
7:
B=eye(size(A));

B(1:2,:)=[0 1; 1 0]*B(1:2,:)
Como nuevo ejemplo, se va a ver la forma de invertir el orden de los
elementos de un vector:
x=rand(1,5)
x=x(5:-1:1)
Obsrvese que por haber utilizado parntesis en vez de corchetes los valores
generados por el operador (:) afectan a los ndices del vector y no al valor de
sus elementos.
Para invertir el orden de las columnas de una matriz se puede hacer lo
siguiente:
A=magic(3)
A(:,3:-1:1)
aunque hubiera sido ms fcil utilizar la funcin fliplr(A), que es especfica
para ello.
Finalmente, hay que decir que A(:) representa un vector columna con las
columnas de A una detrs de otra. Se sustituyen las dos primeras filas de B por
el producto de dichas filas por una matriz de permutacin.
MATRIZ VACA A[ ]
Para MATLAB una matriz definida sin ningn elemento entre los corchetes es
una matriz que existe, pero que est vaca, o lo que es lo mismo que tiene
dimensin cero. Considrense los siguientes ejemplos de aplicacin de las
matrices vacas:
A=magic(3)
B=[ ]
exist(B)
isempty(B)
A(:,3)=[ ]
Las funciones exist() e isempty() permiten chequear si una variable existe y si
est vaca. En el ltimo ejemplo se ha eliminado la 3 columna de A
asignndole la matriz vaca.

DEFINICIN DE VECTORES Y MATRICES A PARTIR DE UN


FICHERO
Matlab acepta como entrada un fichero nombre.m (siempre con extensin .m)
que contiene instrucciones y/o funciones. Dicho fichero se llama desde la
lnea de comandos tecleando simplemente su nombre, sin la extensin. A su
vez, un fichero *.m puede llamar a otros ficheros *.m, e incluso puede
llamarse a s mismo (funciones recursivas). Las variables definidas dentro de
un fichero de comandos *.m que se ejecuta desde la lnea de comandos son
variables del espacio de trabajo base, esto es, pueden ser accedidas desde
fuera de dicho fichero; no sucede lo mismo si el fichero *.m corresponde a
una funcin. Si un fichero de comandos se llama desde una funcin, las
variables que se crean pertenecen al espacio de trabajo de dicha funcin.
Como ejemplo se puede crear un fichero llamado unidad.m que construya
una matriz unidad de tamao 3x3 llamadas U33 en un directorio llamado
g:\matlab. Este fichero deber contener la lnea siguiente:
U33=eye(3)
Desde MATLAB llmese al comando unidad y obsrvese el resultado. Entre
otras razones, es muy importante utilizar ficheros de comandos para poder
utilizar el Debugger y para evitar teclear muchas veces los mismos datos,
sentencias o expresiones.
FUNCIONES QUE ACTAN SOBRE VECTORES
Las siguientes funciones actan sobre vectores (no sobre matrices ni sobre
escalares)
[xm,im]=max(x)
min(x)
sum(x)
cumsum(x)
mean(x)
std(x)

mximo elemento de un vector. Devuelve el valor


mximo xm y la posicin que ocupa im
mnimo elemento de un vector. Devuelve el valor
mnimo y la posicin que ocupa
suma de los elementos de un vector
devuelve el vector suma acumulativa de los elementos
de un vector
valor medio de los elementos de un vector
desviacin tpica

prod(x)
producto de los elementos de un vector
cumprod(x)
devuelve el vector producto acumulativo de los
elementos de un vector [y,i]=sort(x) ordenacin de menor a mayor de los
elementos de un vector x.
Devuelve el vector ordenado y, y un vector i con las posiciones iniciales en x
de los elementos en el vector ordenado y.
En realidad estas funciones se pueden aplicar tambin a matrices, pero en ese
caso se aplican por separado a cada columna de la matriz, dando como valor
de retorno un vector resultado de aplicar la funcin a cada columna de la
matriz considerada como vector. Si estas funciones se quieren aplicar a las
filas de la matriz basta aplicar dichas funciones a la matriz traspuesta.
FUNCIONES QUE ACTAN SOBRE MATRICES
Las siguientes funciones exigen que el/los argumento/s sean matrices. En este
grupo aparecen algunas de las funciones ms tiles y potentes de MATLAB.
Se clasificarn en varios subgrupos:
FUNCIONES MATRICIALES ELEMENTALES:
B = A' calcula la traspuesta (conjugada) de la matriz A
B = A.' calcula la traspuesta (sin conjugar) de la matriz A
v = poly(A) devuelve un vector v con los coeficientes del polinomio
caracterstico de la matriz cuadrada A
t = trace(A) devuelve la traza t (suma de los elementos de la diagonal) de una
matriz cuadrada A
[m,n] = size(A) devuelve el nmero de filas m y de columnas n de una matriz
rectangular A
n = size(A) devuelve el tamao de una matriz cuadrada A
FUNCIONES MATRICIALES ESPECIALES
Las funciones exp( ), sqrt( ) y log( ) se aplican elemento a elemento a las
matrices y/o vectores que se les pasan como argumentos. Existen otras
funciones similares que tienen tambin sentido cuando se aplican a una matriz

como una nica entidad. Estas funciones son las siguientes (se distinguen
porque llevan una "m" adicional en el nombre):
expm(A) si A=XDX, expm(A) = X*diag(exp(diag(D)))*X
sqrtm(A) devuelve una matriz que multiplicada por s misma da la matriz A
logm() es la funcin recproca de expm(A)
Aunque no pertenece a esta familia de funciones, se puede considerar que el
operador potencia (^) est emparentado con ellas. As, es posible decir que:
A^n est definida si A es cuadrada y n un nmero real. Si n es entero, el
resultado se calcula por multiplicaciones sucesivas. Si n es real, el
resultado se calcula como: A^n=X*D.^n*X' siendo [X,D]=eig(A)
CLCULO DEL RANGO, NORMAS Y CONDICIN NUMRICA:
Existen varias formas de realizar estos clculos, con distintos niveles de
esfuerzo de clculo y de precisin en el resultado.
El rango se calcula implcitamente (sin que el usuario lo pida) al ejecutar las
funciones rref(A), orth(A), null(A) y pinv(A). Con rref(A) el rango se
calcula como el nmero de filas diferentes de cero; con orth(A) y null(A)
basadas ambas en la descomposicin QR el rango es el nmero de columnas
del resultado (o n menos el nmero de columnas del resultado).
Con pinv(A) se utiliza la descomposicin de valor singular, que es el mtodo
ms fiable y ms caro en tiempo de cpu. La funcin rank(A) est basada en
pinv(A).
Normas de matrices:
norm(A) norma sub-2, es decir, mximo valor singular de A, max(svd(A)).
normest(A) calcula una estimacin o aproximacin de la norma sub-2. til
para matrices grandes en las que norm(A) necesita demasiado tiempo
norm(A,2) lo mismo que norm(A)

norm(A,1) norma sub-1 de A, mxima suma de valores absolutos por


columnas, es decir: max(sum(abs((A))))
norm(A,inf) norma sub- de A, mxima suma de valores absolutos por filas,
es decir: max(sum(abs((A))))
Normas de vectores:
norm(x,p) norma sub-p, es decir sum(abs(x)^p)^(1/p).
norm(x) norma eucldea; equivale al mdulo o norm(x,2).
norm(x,inf) norma sub-, es decir max(abs(x)).
norm(x,1) norma sub-1, es decir sum(abs(x)).
Operadores relacionales
El lenguaje de programacin de MATLAB dispone de los siguientes
operadores relacionales:
< menor que
> mayor que
<= menor o igual que
>= mayor o igual que
== igual que
~= distinto que11
Obsrvese que, salvo el ltimo de ellos, coinciden con los correspondientes
operadores relacionales de C. Sin embargo, sta es una coincidencia ms bien
formal. En MATLAB los operadores relacionales pueden aplicarse a vectores
y matrices, y eso hace que tengan un significado especial.
Al igual que en C, si una comparacin se cumple el resultado es 1 (true),
mientras que si no se cumple es 0 (false). Recprocamente, cualquier valor
distinto de cero es considerado como true y el cero equivale a false. La
diferencia con C est en que cuando los operadores relacionales de MATLAB
se aplican a dos matrices o vectores del mismo tamao, la comparacin se
realiza elemento a elemento, y el resultado es otra matriz de unos y ceros del
mismo tamao, que recoge el resultado de cada comparacin entre elementos.
Considrese el siguiente ejemplo como ilustracin de lo que se acaba de decir:

>> A=[1 2;0 3]; B=[4 2;1 5];


>> A==B
>> A~=B
OPERADORES LGICOS
Los operadores lgicos de MATLAB son los siguientes:
& and (funcin equivalente: and(A,B)). Se evalan siempre ambos operandos,
y el resultado es true slo si ambos son true.
&& and breve: si el primer operando es false ya no se evala el segundo, pues
el resultado final ya no puede ser ms que false.
| or (funcin equivalente: or(A,B)). Se evalan siempre ambos operandos, y el
resultado es false slo si ambos son false.
|| or breve: si el primer operando es true ya no se evala el segundo, pues el
resultado final no puede ser ms que true.
~ negacin lgica (funcin equivalente: not(A))
xor(A,B) realiza un "or exclusivo", es decir, devuelve 0 en el caso en que
ambos sean 1 ambos sean 0.
Los operadores lgicos se combinan con los relacionales para poder
comprobar el cumplimiento de condiciones mltiples. Ms adelante se vern
otros ejemplos y ciertas funciones de las que dispone MATLAB para facilitar
la aplicacin de estos operadores a vectores y matrices.
Los operadores lgicos breves (&&) y (||) se utilizan para simplificar las
operaciones de comparacin evitando operaciones innecesarias, pero tambin
para evitar ciertos errores que se produciran
en caso de evaluar
incondicionalmente el segundo argumento. Considrese por ejemplo la
siguiente sentencia, que evita una divisin por cero:
r = (b~=0) && (a/b>0);
El carcter (~) se obtiene en los PCs pulsando sucesivamente las teclas 1, 2 y
6 manteniendo Alt pulsada.

GUARDANDO UNA SESIN Y SUS VARIABLES


Para guardar lo que uno ha escrito, tenemos bsicamente dos opciones.
Guardar todo lo escrito o solo guardar las variables trabajadas.
>> clear
>> x=5
x= 5
>> y=45
y = 45
>> z=13
z = 13
>> w=x-y
w = -40
>> diary('malca.txt')
>> Z=x+y+z
Z = 63
>> A=[1 2 3;5 2 8;7 4 2]
A=
1 2 3
5 2 8
7 4 2
>> B=[5 1 3;8 2 8;7 4 9]
B=
5 1 3
8 2 8
7 4 9
>> det(A)
ans = 82
>> diary off
>> B'
ans =
5 8 7
1 2 4
3 8 9
>> A-B'
ans =

-4 -6 -4
4 0 4
4 -4 -7
>> diary on
>> D=A+4*B
D=
21 6 15
37 10 40
35 20 38
>> E=A.*B
E=
5 2 9
40 4 64
49 16 18
>> diary off
>> F=A/B
F=
-0.2500 -0.3750 0.7500
-1.3125 1.2813 0.1875
3.9375 -2.8438 1.4375
Luego abriendo el archivo en:
C:\MATLAB7\work\malca.txt

Vea bien que se grabo y que no, en el archivo malca.txt.


Tenemos que tambin se puede guardar solo las variables con save, y luego
leerlas con load.
>> clear
>> x1=6
x1 = 6
>> x5=8
x5 = 8
>> y=x1+x5
y = 14
>> save('sesion 01')
Ahora leemos estas variables:

>> load('sesion 01')


>> who
Your variables are: x1 x5 y

Un dato cualquiera o una matriz puede ingresarse mediante el teclado a pedido


de algn programa, los llamados archivos ****.m, mediante el comando:
input
Hay dos tipos de objetos que ingresan por teclado, numricos(Matriz) o como
una cadena de letras y/o smbolos (String).
Los formatos son:
x=input('comentario: ')
x=input('comentario: \n')
o tambien:
x=input('ingrese su nombre: ','s')
x=input('ingrese su nombre: \n ','s')
en el primer caso aparecer el comentario en la pantalla, y la matriz ingresada
se asignara a la variable x. En el segundo la diferencia esta en que el cursor
para ingresar la informacin pasa ala siguiente linea. En el tercer caso
aparecer el comentario en la pantalla, y se asignara a la variable x. La
diferencia esta en que en el tercer caso la variable no solo puede ser una
matriz sino tambin una cadena de caracteres cualesquiera.
La salida en pantalla de los resultados de un programa se hace de diferentes
maneras. Algunos se realizan por defecto como el resultado de alguna
operacin. Otra opcin es con los comandos:
disp
fprintf
El formato de disp es:
disp(comentario)
disp(variable)
en el primer caso la salida es algn comentario, en el segundo se imprime en
pantalla una variable.
Ahora en cuanto al comando fprintf tiene mayores opciones. es una salida
con formato donde adems de exhibir tanto texto como valores de matrices,

podemos indicar el formato que se usara al exhibir los valores, y tambin


saltos de lnea. La forma general de este comando es:
fprintf ( formato, matrices)
El formato contiene el texto y las especificaciones de formato para las salidas,
y va seguido de los nombres de las matrices por exhibir.
Dentro del formato se usan los especificadores:
%e
%f
%g

el cual indica que los valores se exhiben


notacin exponencial.
el cual indica que los valores se exhiben
una notacin de punto fijo o decimal.
el cual indica que los valores usaran
%e o bien %g , el que sea mas corto.

Si aparece la cadena \n en el formato, se exhibir la lnea especificada hasta


ese punto, y el resto de la informacin se exhibir en la siguiente lnea. Lo
usual es que el formato termine con \n.
Los especificadores de formato %e , %f y %g tambin pueden contener
informacin para especificar el numero de posiciones decimales que se
exhibirn y el nmero de posiciones que se destinarn al valor
correspondiente.
Aqu viene un archivo de la forma malca.m
% archivo ejecutable de nombre: malca.m
% uso de los comandos de entrada por teclado, y salida por pantalla.
nombre=input('cual es tu nombre: ','s');
apellidos=input('tus apellidos son:\n','s');
n=input('de que orden son las matrices cuadradas A y B:\n');
A=input('ingrese la matriz A :\n')
B=input('ingrese la matriz B :\n')
disp('la suma A+B, la resta A-B es :')

disp(A+B),disp(A-B)
disp('El producto A*B, la division A/B es :')
disp(A*B),disp(A/B)
temp=[25.6 33.7 34.1 35.6 36.8]
fprintf('la temperatura en la maana es %e grados F \n',temp)
fprintf('la temperatura en la maana es %f grados F \n',temp)
fprintf('la temperatura en la maana es %g grados F \n',temp)
fprintf('la temperatura en la maana es \n %g grados F \n',temp)
visualizaremos:
>> malca
cual es tu nombre: Miriam
tus apellidos son:
Estrada Huancas
de que orden son las matrices cuadradas A y B:
4
ingrese la matriz A :
[1 2 3 4;3 5 1 7;6 1 3 5;7 0 5 1]
A=
1 2 3 4
3 5 1 7
6 1 3 5
7 0 5 1
ingrese la matriz B :
[9 2 3 4;3 5 8 7;1 1 3 5;7 0 5 0]
B=
9 2 3 4
3 5 8 7
1 1 3 5
7 0 5 0
la suma A+B, la resta A-B es :
10 4 6 8
6 10 9 14
7 2 6 10

14

10

-8
0
5
0

0 0
0 -7
0 0
0 0

1
0
0
0
1

El producto A*B, la divisin A/B es :


46 15 48 33
92 32 87 52
95 20 60 46
75 19 41 53
0.0698
1.1395
0.5814
0.0504
temp =
25.6000

0.3101 0.3101 -0.1240


0.6202 -0.3798 -1.2481
-0.1938 0.8062 0.0775
-0.0724 0.2610 0.9289
33.7000 34.1000 35.6000 36.8000

la temperatura en la maana es 2.560000e+001 grados F


la temperatura en la maana es 3.370000e+001 grados F
la temperatura en la maana es 3.410000e+001 grados F
la temperatura en la maana es 3.560000e+001 grados F
la temperatura en la maana es 3.680000e+001 grados F
la temperatura en la maana es 25.600000 grados F
la temperatura en la maana es 33.700000 grados F
la temperatura en la maana es 34.100000 grados F
la temperatura en la maana es 35.600000 grados F
la temperatura en la maana es 36.800000 grados F
la temperatura en la maana es 25.6 grados F
la temperatura en la maana es 33.7 grados F
la temperatura en la maana es 34.1 grados F
la temperatura en la maana es 35.6 grados F
la temperatura en la maana es 36.8 grados F
la temperatura en la maana es
25.6 grados F

la temperatura en la maana es
33.7 grados F
la temperatura en la maana es
34.1 grados F
la temperatura en la maana es
35.6 grados F
la temperatura en la maana es
36.8 grados F

III POLINOMIOS
Un polinomio de grado n es una expresin de la forma:
Pn(x) = anxn + an-1xn-1 + an-2xn-2 + . . . + a1x1 +a0
Donde los coeficientes del polinomio estn definidos en Matlab como vectores fila en forma
descendente.
Sea el polinomio: P4(x) = 5x4 - 7x3 + 4x2 + 6x 5, en Matlab se tiene como sigue:
>> p=[5 -7 4 6 -5]
p = 5 -7 4 6
>>

-5

Evaluando el polinomio para x = 2


>> polyval(p,2)
ans = 47
Evaluando el polinomio para x = 1, 2, 3, 4
>> x=[1 2 3 4]
x= 1 2 3 4
>> polyval(p,x)
ans = 3 47 265 915
Ahora veamos las raices del polinomio:
>> p=[5 -7 4 6 -5]
p = 5 -7 4 6 -5
>> Raices=roots(p)
Raices =
-0.8605

0.7778 + 1.0216i
0.7778 - 1.0216i
0.7049
Obteniendo el polinomio original a partir de las raices:
>> q=poly(Races)
q = 1.0000 -1.4000

0.8000

1.2000 -1.0000

Como el polinomio original tenia el coeficiente mas alto 5, solo hay que multiplicar el vector
por el nmero 5. Y asi tenemos:
>> p=5*q
p = 5.0000 -7.0000

4.0000

6.0000 -5.0000

multiplicando dos polinomios:


>> p =[5 -7 4 6 -5]
>> q =[7 8 9 -4]
>> r=conv(p,q)
r = 35 -9 17 -9 77 -2 -69 20
>> t=conv(q,conv(p,q))
t = 245 217 362 -148 656 453 230 -738 -453 456 -80
Dividendo polinomios:
>> [cociente,resto]=deconv(p,q)
cociente = 0.7143 -1.8163
resto = 0.0000
0 12.1020 25.2041 -12.2653
Para sumar o restar polinomios ambos deben tener el mismo grado, si no fuese as se
agregarn ceros en uno de ellos.
>> p =[5 -7 4 6 -5]
>> q =[0 7 8 9 -4]
>> s=p+q
s = 5 0 12 15

-9

Derivando un polinomio:
>> p=[5 -7 4
>> polyder(p)

-5]

ans = 20 -21

Descomposicin en fracciones parciales de una expresin racional de polinomios.


F=(10x +20)/( x**3+8x**2+19x+12).
F=a/b=c/d + e/g + h/l + k,
Donde los polos son las races de los denominadores: d, g y l.
A los valores c, e y h se les llama residuos. Y k es un trmino constante.
>> a=[10 20]
>> b=[1 8 19 12]
>> [residuo , polos , k]=residue (a,b)
residuo =
-6.6667
5.0000
1.6667
polos =
-4.0000
-3.0000
-1.0000
k= []
>> [residuo,polos,k]=residue(b,a)
residuo = -0.2000
polos = -2
k = 0.1000 0.6000 0.7000
>> a=[10 20]
a = 10 20
>> b=[1 8 19 12]
b = 1 8 19 12
>> [residuo,polos,k]=residue(a,b)
residuo =
-6.6667
5.0000
1.6667
polos =
-4.0000
-3.0000
-1.0000
k=[]

>> [a b]=residue(residuo,polos,k)
a = -0.0000 10.0000 20.0000
b = 1.0000 8.0000 19.0000 12.0000

IV GRAFICOS CON MATLAB


Como la mayor parte de las ecuaciones matemticas expresa relaciones
complicadas en una, dos, tres o mas dimensiones, tratar de entenderlas sin
grficas es algo imposible. El empleo de grficas es importante desde la
educacin primaria hasta la superior, as como para Ingenieros y Cientficos
profesionales. En las presentaciones profesionales, casi todos los anlisis
matemticos, cientficos y de ingeniera se presentan con grficos.
Los grficos son ahora una parte natural del entorno de computacin con
MATLAB, y la graficacin de los resultados de los clculos puede efectuarse
con algunos comandos. Tratar de entender las ecuaciones matemticas con
grficas es una forma agradable y muy eficiente de aprender matemticas. Por
lo que el objetivo de esta unidad es ayudar a los estudiantes a efectuar grficas
en dos y tres dimensiones de diversas funciones.
1.- GRAFICAS EN DOS DIMENSIONES
Graficar: suponga que desea graficar un conjunto de datos (pares ordenados)
pi xi , yi ; i 1, n
Es necesario preparar x e y en una forma de arreglo idntica, es decir,
convertirlos en arreglos (matrices) de fila o de columna de la misma longitud.
Los datos se grafican con plot.

La grfica es bastante sencilla, lo nico que hace Matlab es unir los diferentes
puntos con lneas rectas. Obviamente en el orden establecido.
Sean los siguientes datos tomados en un da de la temperatura ambiente. En la
estacin meteorolgica de la FACFYM-UNPRG.
N Orden
X x (horas)
Y y ( C)

01 02
02 04
21 22.4

03
06
27

04
08
28

05
10
30

06
12
32

07
14
31

08
16
30

09
18
27

10
20
26

Trabajando en la ventana de comandos de Matlab, tenemos:


>> x=[2 4 6 8 10 12 14 16 18 20 22 24];
>> y=[21 22.4 27 28 30 32 31 30 27 26 24 20];
>> plot(x,y)

Ahora tambin se le puede agregar una malla al grafico con grid.


>> x=[2 4 6 8 10 12 14 16 18 20 22 24];
>> y=[21 22.4 27 28 30 32 31 30 27 26 24 20];
>> plot(x,y)
>> grid

11
22
24

12
24
20

Luego se pueden agregar indicaciones adicionales, como titulo del cuadro,


nombres a los ejes x e y. Con los comandos: title, x label, ylabel.
>> x=[2 4 6 8 10 12 14 16 18 20 22 24];
>> y=[21 22.4 27 28 30 32 31 30 27 26 24 20];
>> plot(x,y)
>> grid
>> title('Registro diario de la temperatura en la estacin
meteorolgica de la FACFYM-UNPRG') ) % pone el titulo al grafico
>> xlabel('horas') ) % coloca el titulo al eje x
>> ylabel('temperatura') ) % coloca el titulo al eje y

GRAFICAS SIMPLES
Explicaremos el procedimiento para la creacin de los grficos simples en
dos dimensiones; identificando cada uno de los comandos de los programas en
MATLAB con lo siguiente:

Se define el rango de una de las coordenadas.


Indicamos la funcin que se desea graficar.
Grafica la funcin(con el comando plot)
Imprime los rtulos de los ejes (xlabel, ylabel)
Puede agregar una malla con grid.
Tambin se tiene el comando title para agregar ttulos al grafico.

GRAFICA DE UNA FUNCIN


Para graficar y=f(x)=e-0.4x sen(x) en el intervalo [0,10]
Se ingresa en Matlab, tecleando:
>> x=0:0.005:10;
>> y=sin(x).*exp(-0.4*x);
>> plot(x,y)

Donde la primera lnea indica el intervalo dividido en partes iguales , cada una
de longitud 0.005. La segunda nos da la funcin y la tercera plotea la funcin
trazando lneas rectas entra cada par de puntos (x,f(x)).

Se puede agregar un comando adicional: grid


Se utiliza para crear una malla en la presentacin de la grfica
Se ingresa en Matlab, tecleando:
>> x=0:0.005:10;
>> y=sin(x).*exp(-0.4*x);
>> plot(x,y)
>> grid
Lo que se agreg es el comando grid que crea una malla en el plano.

Tambin se pueden graficar dos funciones en un slo plano coordenado.


>> x=0:0.005:10;
>> y=sin(x).*exp(-0.4*x);
>> x=0:0.005:10;
>> y=sin(x);
>> plot(x,y)
>> hold on
>> z=cos(x);
>> plot(x,z,'--')
>> grid
>> title('Grafico de y=Seno(x) y z=Coseno(x) en [0,10]')
>> xlabel('eje x')
>> ylabel('y( ___)z( --- ) ')

El comando hold on es para permitir que se pueda sobrescribir otra grfica


encima de la del seno.
En la funcin plot:
plot(x,z,'--')
se est cambiando el formato para la lnea que corresponde a la grfica de
coseno por el de lnea discontinua.
Luego se agrega grid, para la malla de la grfica, y los respectivos ttulos y
leyendas de los ejes.
Respecto de la funcin plot, las diferentes formas de escribirla, son:
plot(x,y)
plot(x1,y1,x2,y2,x3,y3,...)
plot(x,y,s)
plot(x1,y1,s1,x2,y2,s2,x3,y3,s3,...)
donde: s, s1, s2, s3, . Toman dos valores que van entre comillas: ab
a: indica el color de la lnea ( por defecto azul).
b: indica la forma de la lnea ( por defecto son lneas rectas que
unen dos puntos de la grafica).
COLOR DE LINEA
y
amarillo
m
magenta rojo
c
entre azul y verde cyan

r
g
b
w

rojo
verde
azul
blanco

negro

FORMA DE LINEA
.
Punto
lnea slida
o
crculos
:
punteado
x
marcas x
-.
Punto y raya
+
Cruces
-raya punteada
*
Asterisco
s
cuadrado
d
diamantes
v
Tringulo (arriba)
^
Tringulo (abajo)
<
Tringulo (izquierda)
>
Tringulo (derecha)
p
pentagrama
h
hexagrama
Obs: El comando
clf
borra la
figura actual de la pantalla de
grficos.
>> x=-20:1:20;
>> y=x.^3+6*x-7;
>> plot(x,y,'g*')
>> grid
>> title('grafico con linea
verde, en vez de linea va
*******')

GRAFICOS CON MATLAB EN TRES DIMENSIONES


Se puede definir un funcin bidimensional z = z(x,y) con puntos discretos mediante
z ij z x i , y j donde: i =1,2,....m, y

j =1,2,...n, son puntos en los ejes x e y en orden

ascendente. Las intersecciones constituyen una retcula cartesiana.


GRAFICAS PARAMETRICAS
Ahora lo que se graficar es una funcin de variable real y con imgenes en R 3. Es decir
funciones:

f : R R3

Donde obviamente se visualizar solo las imgenes.


Grfica de f ( t ) (e 0.2 t sin(0.8t ), e 0.2 t cos(0.8t ), t ), t [0,20]
clear,clf
% borra las curvas graficadas y redibuja los ejes
t = 0:0.1:20; % Indica el rango del parmetro t
r = exp(0.2*t); % una parte de la funcin a graficar
th=pi*t*0.8; % un cambio de variable
z=t;
% Indica la funcin de la coordenada x
x=r.*sin(th); % Indica la funcin de la coordenada y
y=r.*cos(th); % Indica la funcin de la coordenada z
plot3(x,y,z)
% Grafica la funcin
xlabel('x');ylabel('y');zlabel('z');

GRAFICAS CON MALLAS


Explicaremos el procedimiento para la creacin de las grficas con mallas en
tres dimensiones; identificando cada uno de los comandos de los programas en
MATLAB con lo siguiente:
1. Borra las curvas graficadas y redibuja los ejes ( con: clear,clf )
2. Indica el rango de la coordenada x ( con: xa=-2:0.2:2; )
3. Indica el rango de la coordenada y ( con: ya=-2:0.2:2; )
4. Permite crear arreglos bidimensionales, z=[x, y], donde x varia con xa, e y varia con
ya. [x,y]=meshgrid(xa,ya) )
5. Indica la funcin a graficar (con: z=x.^3-3*x.*y.^2 )
6. Produce la grafica de malla (con: mesh(x,y,z) )
7. Indica el titulo del grafico ( con: title('grafico de ejemplo') )
8. Imprime los rtulos de los ejes (xlabel, ylabel, zlabel)
Ejemplo:
clear,clf
xa=-2:0.2:2;
ya=-2:0.2:2;
[x,y]=meshgrid(xa,ya);
z=x.^3-3*x.*y.^2;
mesh(x,y,z)
title('grafico de ejemplo');
xlabel('eje x');
ylabel('eje y');
zlabel('eje z');

clear,clf
xa=-2:0.2:2;
ya=-2:0.2:2;
[x,y]=meshgrid(xa,ya);
z=sin(x.^2+y.^2);
mesh(x,y,z)
title('grafico de z=sin(x.^2+y.^2)');
xlabel('eje x');
ylabel('eje y');
zlabel('eje z');

31
32
33

34

"

35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F

FORMATO ASCCI
71 G
111 o
151
72 H
112 p
152
73 I
113 q
153
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n

191 +
192 +
193 -

114 r

154

194 -

115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190

195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210

s
t
u
v
w
x
y
z
{
|
}
~


_
_
_

+
+

+
+

+
+

Das könnte Ihnen auch gefallen