Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Richard Mamani
Manual de
MATLAB
DERECHOS RESERVADOS
Escuela Académica Computación Científica Prof. Richard Mamani
INTRODUCCIÓN
MATLAB es ampliamente conocido por el uso que se dan en los primeros ciclos
en las facultades en la enseñanza de cursos básicos de programación, avanzados de
programación en matemática, ciencia y la ingeniería. Ahora no solo es utilizado en las
universidades, también la industria en donde da bastante apoyo en la investigación,
desarrollo y en el diseño de prototipos.
2
Escuela Académica Computación Científica Prof. Richard Mamani
CAPITTULO 1
1.1 Ventanas.
Vamos a suponer que el programa ya esta instalado y que el usuario haya iniciado
el programa, entonces la primera ventana que aparece es la siguiente:
Barra de
Menús
Cursor
Ventana de comandos
Ejecutados
Inicio
Aquí solo aparecen tres de las ocho ventanas que tiene MATLAB que es la
versión por defecto que ofrece MATLAB. En la siguiente tabla se da de las ventanas
que tiene el programa:
3
Escuela Académica Computación Científica Prof. Richard Mamani
4
Escuela Académica Computación Científica Prof. Richard Mamani
Ahora si quiere trabajar de manera correcta, se recomienda tener las tres ventanas
principales para ello hacer lo siguiente:
5
Escuela Académica Computación Científica Prof. Richard Mamani
Esta ventana se obtiene del menú FILE y se utiliza para escribir y editar
programas. En la figura siguiente se muestra esta ventana.
6
Escuela Académica Computación Científica Prof. Richard Mamani
Para escribir un comando el cursor debe estar después del símbolo ‘>>’, llamado
prompt.
Se puede teclear mas un comando en una sola línea, esto se logra con una coma
entre comando y comando.
Un comando ejecutado puede ser invocado de nuevo con las flechas direccionales
hacia arriba o en defecto con las flechas hacia abajo.
Cuando se usa punto y coma (;) al finalizar una instrucción lo que genera es que
sea visualizada la ejecución en la ventana de comandos. Lo contrario ocurre si no se
utiliza punto y coma.
7
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo1
53
2
Ejemplo 2
3
52
>> 5^(3/2)
ans =
11.1803
8
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo 3
((1 + 2(5 − 4) ) ) 2 +1 22
2
Solución
>> ((1+2*(5-4)^2)^(2+1))^(2^2)
ans =
531441
9
Escuela Académica Computación Científica Prof. Richard Mamani
>> sqrt(5+(4+5)*12/5*sqrt(14))
ans =
9.2639
Estas funciones pueden ser utilizadas de manera similar como la función sqrt.
10
Escuela Académica Computación Científica Prof. Richard Mamani
Nota: la variable x que aparece como argumento de cada función puede ser una
variable definida, esto es asignar un valor previamente; puede ser una variable
predefinida en MATLAB o puede ser una instrucción de varios comandos y funciones
matemáticas antes citas.
*Recordar:
11
Escuela Académica Computación Científica Prof. Richard Mamani
si x〈0 ⇒ sig ( x) = −1
si x=0 ⇒ sig ( x) = 0
si x〉 0 ⇒ sig ( x) = 1
Una variable es una letra, letras, letras o dígitos a la cual se le asignara un valor
numérico. La función de la variable es permite su uso tanto como argumento de una
función o de un comando en MATLAB.
A nivel de hardware lo que hace MATLAB, una vez asignado el valor numérico,
es localizar un espacio de memoria apropiado para tipo de dato a almacenar, de hecho,
es el nombre de la posición de memoria. Por lo que cuando se utiliza una variable lo que
se esta haciendo en realidad es utilizar su valor numérico asignado.
El operador asignación.
a= a=
12 1
Ejemplo
>> a=12;
>> b=15;
>> c=a+b
c=
12
Escuela Académica Computación Científica Prof. Richard Mamani
27
>> b
b=
15
>> a=a+10*a
a=
132
Existen una serie de variables predefinidas que pueden ser utilizadas por el
usuario ya que contienen valores constantes predefinidos. Se recomienda de igual forma
no asignar otros valores diferentes por lo que se debe de evitar de usar como nombres de
variables.
Como:
pi es le valor numero de π
Puede destacarse que los valore de pi e i pueden ser redefinidas desde la ventana
de comandos.
13
Escuela Académica Computación Científica Prof. Richard Mamani
Sentencia >>clear
>>clear all
Sentencia >>clear x y z
14
Escuela Académica Computación Científica Prof. Richard Mamani
CAPITTULO 2
ARRAYS
Hora cualquier sucesión de números, como los números de una tabla de doble
entrada, puede ser transformada a un array o arreglo de números.
15
Escuela Académica Computación Científica Prof. Richard Mamani
vector = vector =
12
12 4 5 65 2
5
63
También se puede crear vectores con una distancia fija entre sus elementos:
>> vector=[1:2:10]
>> vector=[i:i+2:10]
vector =
vector =
1 3 5 7 9
0 2 4 6 8 10
>> vector=i:i+2:10
>> vector=[1
2 vector =
3
4] 0 2 4 6 8 10
vector = >> vector=[3:10]
1 vector =
2
3 3 4 5 6 7 8 9 10
4
Comando linspace:
Este comando permite crear un vector a partir de los elementos inicial y final, y
especificando una cantidad fija de elementos.
Sentencia:
>>nombre_variable=linspace(xi,xf,n)
vector = vector =
16
Escuela Académica Computación Científica Prof. Richard Mamani
Nota: cuando se obvia “n” MATLAB asigna uno por defecto, así tiene un valor de
100.
Los arrays bidimensionales son los tipos de datos para lo esta diseñado
MATLAB. Ya que la matrices son usan tanto en la ingeniería como en las ciencias
básicas para modelar y resolver problemas, gracias a las propiedades que se derivan del
algebra lineal.
Es un tipo de dato que fácilmente puede ser visto como una tabla de doble entrada.
Nota: en el primer caso se utiliza punto y coma para diferenciar las filas de las
columnas y en le segundo caso se utiliza la tecla enter o intro para diferenciar las filas
de las columnas.
Véase el ejemplo:
>> matriz=[cos(x) sin(x) 0 0
-sin(x) cos(x) sin(x) 0
0 -sin(x) cos(x) sin(x)
0 0 -sin(x) cos(x)]
matriz =
[ cos(x), sin(x), 0, 0]
[ -sin(x), cos(x), sin(x), 0]
[ 0, -sin(x), cos(x), sin(x)]
[ 0, 0, -sin(x), cos(x)]
17
Escuela Académica Computación Científica Prof. Richard Mamani
Estos comandos son aplicables tanto a vectores como a matrices, veamos algunos
ejemplos.
0 0 0 0 ans =
>> zeros(2,4) 1 0 0 0
ans = 0 1 0 0
0 0 1 0
0 0 0 0 0 0 0 1
0 0 0 0
>> matriz
matriz =
[ cos(x), sin(x), 0, 0]
[ -sin(x), cos(x), sin(x), 0]
[ 0, -sin(x), cos(x), sin(x)]
[ 0, 0, -sin(x), cos(x)]
>> matriz'
ans =
[ cos(conj(x)), -sin(conj(x)), 0, 0]
[ sin(conj(x)), cos(conj(x)), -sin(conj(x)), 0]
[ 0, sin(conj(x)), cos(conj(x)), -sin(conj(x))]
[ 0, 0, sin(conj(x)), cos(conj(x))]
18
Escuela Académica Computación Científica Prof. Richard Mamani
>> v=[1:5]
v=
1 2 3 4 5
>> vtrans=v'
vtrans =
1
2
3
4
5
Manipulación de arrays
Manipulación de vectores.
>> ve=[sqrt(i):sqrt(i+5):sqrt(100)]
ve =
>> a=ve(1),b=ve(2),c=ve(3),d=ve(4)
a=
0
b=
2.2361
c=
4.4721
d=
6.7082
19
Escuela Académica Computación Científica Prof. Richard Mamani
>> ve(1:3)
ans =
0 2.2361 4.4721
>> ve(1:3)+1
ans =
0 4.4721 8.9443
Se crea el vector v
>> v=[1 2 4 8 1 2 6 8 9]
v=
1 2 4 8 1 2 6 8 9
1 4 1 10 15
Ahora de aquí de pueden usar para hacer operaciones convenientes con funciones
y comandos donde los argumentos de entrada son los elementos de un vector.
Veamos ejemplos.
>> z=exp(ve(2))+sin(ve(4)^(ve(1)))-ve(5)
z=
1.2537
Manipulación matricial.
20
Escuela Académica Computación Científica Prof. Richard Mamani
21
Escuela Académica Computación Científica Prof. Richard Mamani
Símbolo Operación
+ Suma de matrices A+B
- Sustracción o resta A-B
* multiplicación de matrices A*B
^ potencia de matrices A^2
\ división izquierda
/ división derecha
.* multiplicación de elemento a elemento
./ .\ division de elemento a elemento
.^ eleva a una potencia cada elemento
Nota: todas las operaciones de matrices están de acuerdo a la teoría del algebra
matricial.
22
Escuela Académica Computación Científica Prof. Richard Mamani
23
Escuela Académica Computación Científica Prof. Richard Mamani
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 también 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):
24
Escuela Académica Computación Científica Prof. Richard Mamani
[Q,R] = qr(A,0) similar a la anterior, pero con Q del mismo tamaño que A, es
decir, sin completar una base ortonormal cuando m>n.
25
Escuela Académica Computación Científica Prof. Richard Mamani
Ax = b
Donde A y b son:
⎛ b1 ⎞
⎛ a11 … a1n ⎞ ⎜ ⎟
⎜ ⎟ ⎜ ⎟
⎜ ⎟ y
⎜a ⎜ ⎟
⎝ n1 ann ⎟⎠ ⎜⎜ ⎟⎟
⎝ bn ⎠
División izquierda:
División derecha:
Si A es una matriz no singular (i.e. A tiene inversa) cuadrada entonces A/B y B\A
corresponden respectivamente a la multiplicación por izquierda y derecha de B por A-1.
Ejemplo.
Resolver el sistema:
26
Escuela Académica Computación Científica Prof. Richard Mamani
Solución en matlab
B= x=
10 -0.8231
9 -0.6589
1 5.2470
FUNCION LINSOLVE
Las formas generales de la función linsolve para resolver Ax=b son las siguientes:
27
Escuela Académica Computación Científica Prof. Richard Mamani
MATLAB tiene una gran variedad de funciones para trabajar con polinomios.
p ( x) = an x n + an −1 x n −1 + an − 2 x n − 2 + ...... + a1 x1 + ao
polyval(p,a):
>> p=[5 0 0 0 0 1]
p=
5 0 0 0 0 1
>> pa=polyval(p,1)
pa =
>> p
p=
1 2 3
>> px=polyval(p,1.2+3*i)
px =
-2.1600 +13.2000i
28
Escuela Académica Computación Científica Prof. Richard Mamani
Nota: todo vector puede adoptar la forma de un polinomio donde sus elementos
representan los coeficientes del polinomio.
>> x=0:1:5;
>> px=polyval(p,x)
px =
RAICES DE POLINOMIOS
roots(p):
>> p
p=
1 2 3
>> raices=roots(p)
raices =
-1.0000 + 1.4142i
-1.0000 - 1.4142i
-3.5664
-1.8870
0.2267 + 0.8316i
0.2267 - 0.8316i
Los polinomios en matlab se suma de acuerdo al tamaño de los vectores que los
representan, así, se debe tener cuidado con los grados de polinomios para realizar las
operaciones.
29
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo.
p1 ( x) = 2 x 3 + 2
p2 ( x ) = x + 5
En matlab:
sump =
2 0 1 7
>> resp=p1-p2
resp =
2 0 -1 -3
PRODUCTO DE POLINOMIOS
En Matlab tenemos:
>> P=conv(p1,p2)
P=
2 10 0 2 10
P = 2 x 4 + 10 x 3 + 2 x + 10
DIVISIÓN DE POLINOMIOS
30
Escuela Académica Computación Científica Prof. Richard Mamani
En Matlab tenemos
Q=
2 -10 50 % Q( x) = 2 x 2 − 10 x + 50
R=
0 0 0 -248 % R ( x ) = −480
DERIVADA DE UN POLINOMIO
>> p1
p1 =
2 0 0 2
dp
>> polyder(p1) % = 6 x2
dx
ans =
6 0 0
Integral de polinomios
La funcioc es polyint(p):
>> polyint(p1)
ans =
31
Escuela Académica Computación Científica Prof. Richard Mamani
>> p1
p1 =
1 4 0 -10
>> d=[2 4 1];
>> [R P Q]=residue(p1,d)
R=
1.1731
-3.4231
P=
-1.7071
-0.2929
Q=
0.5000 1.0000
32
Escuela Académica Computación Científica Prof. Richard Mamani
CAPITULO III
GRAFICOS BIDIMENSIONALES
Los gráficos son herramientas muy utilizadas para presentar todo tipo de
información que puede proceder de cualquier campo de conocimiento, en especial en las
disciplinas relacionadas con las ciencias y la ingeniería. Con los comandos de
MATLAB de pueden crear distintos gráficos como: con ejes cartesianos, logarítmicos,
semilogarítmicos, de barras y escaleras, de mallas y de superficie tridimensionales, etc.
A todo esto también se pueden dar la apariencia que uno desea, tanto en el color, la
línea, línea de referencia añadiendo cuadrícula, títulos, comentarios o se puede trabajar
en la hoja varios gráficos entre otras cosas.
El comando plot():
Este comando se utiliza para crear, cierto modo, rectas entre dos puntos (a,b) y
(m,n) en el plano cartesiano o ejes cartesianos de MATLAB, cuando la distancia entre
estos puntos es pequeño la grafica se asemeja a una curva.
plot(x,y).
Donde x e y son vectores de la misma dimensión, esto es, deben tener los mismos
elementos. Así cuando de ejecute el comando, ya sea desde la ventana editor o de la
misma ventana de comandos, se abre la ventana grafico en la se mostrara la grafica
correspondiente, una curva o rectas, donde los valores correspondiente de x serán los de
la abscisa (eje horizontal) y los valores de y serán los valore del ordenada (eje vertical).
Ejemplo:
>> v=[1:2:10]
v=
1 3 5 7 9
>> plot(v)
33
Escuela Académica Computación Científica Prof. Richard Mamani
Ver que es otra forma sencilla de graficar un vector o una matriz columna, esta
representación cumple con la siguiente forma.
Sea v un vector:
v (a1 a2 ..... an )
plot([1 2 ….n],v)
Ejemplo 2.
>> x=0:0.001:5;
>> y=exp(x);
>> plot(x,y) %grafica x vrs y
Observar que la línea de la grafica es por defecto de color azul y que se representa
mediante rectas, pero estas características se pueden modificar.
Para personalizar los gráficos el comando plot admite una sintaxis de argumentos
donde se puede especificar el color y estilo de la línea.
34
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo:
x=0:0.2:5;
>> y=exp(x);
>> plot(x,y,'b+') %grafica de color azul y marcador +
>> plot(x,y,'g-.') %grafica de color verde y marcador - .
>> plot(x,y,'go') %grafica de color verde y marcador o
Nota:
Los especificadores se introducen dentro de del comando plot
35
Escuela Académica Computación Científica Prof. Richard Mamani
Propiedades y valores:
Ejemplo:
>> plot(x,y,'-mo','linewidth',1,'markerfacecolor','r','markeredgecolor','y')
Además de estas propiedades existen otras que pueden ser asignadas mediante
una cadena. Tales como: linestyle, color y marker, el primero especifica el estilo de
línea, el segundo el color de la línea y el último el estilo de la marca.
Observación.
El comando plot puede ser útil a al hora de querer representar la grafica de una
función y=f(x), donde x es una partición del dominio en un vector e y es un vector con
la imágenes de la función, luego con la función plot lo que hace es graficar punto por
punto la función.
Una opción para representar la función sin hacer una partición es fplot():
36
Escuela Académica Computación Científica Prof. Richard Mamani
El comando fplot().
nota: la función debe ser tecleado dentro de la función en forma de cadena con las
características de operaciones de matlab.
Ejemplo:
>> fplot('sinh(x)',[-2*pi 2*pi],'ro-')
>>fplot('x^2+4*sin(2*x)-1',[-5 5],'r')
Comando ezplot():
Esta función grafica funciones de la forma y= f(x) y tiene variantes. La sintaxis es:
37
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo:
>> syms x
>> f=x^2
f=
x^2
>> ezplot(f)
>>ezplot(f,[0 5])
plot(x, y, v, u, t, h)
38
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo:
>>x=-2:.01:4;
>> y=3*x.^3-26*x+10;
>> yd=9*x.^2-26;
>> ydd=18*x;
>> plot(x,y,x,yd,x,ydd)
>> plot(x,y,'r',x,yd,'b-.',x,ydd,'go')
Ejmplo:
>> hold on
>> plot(x,y,'g');
>> plot(x,yd,'r');
>> plot(x,ydd,'ko');
>> plot(x,ydd,'yo');
>> hold off
39
Escuela Académica Computación Científica Prof. Richard Mamani
Con este comando se puede añadir a un grafica ya existente otras líneas o curvas.
Tiene la siguiente sintaxis.
>> plot(x,y,'g--');
>> line(x,yd,'linestyle','-','color','r')
>> line(x,ydd,'marker','.','color','b')
Este comando sirve para poner títulos, en forma de texto, a los ejes. En realidad
definen etiquetas que se situarán cerca de cada eje, xlabel para le eje x e ylabel para el
eje y su sintaxis.
40
Escuela Académica Computación Científica Prof. Richard Mamani
Comando title.
Este comando añade el titulo principal al gráfico, en la parte superior del mismo,
su sintaxis es:
title(' texto')
Comando text:
Este comando permite situar una etiqueta dentro del gráfico. Tiene dos variantes.
Su sintaxis es:
getext(' texto')
Comando legend.
las cadenas son las etiquetas que se colocan junto a las muestras de linea, y su
ordn debe corresponderse con el orden en el cual se han introducido las funciones. La
variable posición es un número opcional que especifica el sitio en el que se situará la
leyenda dentro del gráfico. Los valores posibles son:
posicion = -1 . Sitúa la leyenda fuera de los límites establecidos por los ejes del
gráfico, en le lado derecho.
posicion = -0. Sitúa la leyenda dentro de los límites establecidos por los ejes del
gráfico en una posicion que interfieran lo menos posible con el gráfico.
41
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo:
>> legend('f(x)','df(x)','ddf(x)')
Los textos que se insertan mediante los comandos mencionados que se visualizan
en el gráfico pueden ser formateados
Ejemplo.
>>title('tres funciones','fontname','impact')
42
Escuela Académica Computación Científica Prof. Richard Mamani
De igual forma de usa para los tamaños y otras propiedades para textos que se
pude obtener en la ventana ayuda de MATLAB, con help text.
43
Escuela Académica Computación Científica Prof. Richard Mamani
Comando axis.
Este comando permite cambiar el rango de los ejes. Pues en ocasiones es posible
que el usuario quiera visualizar de manera personalizada, se tiene las siguientes sintaxis:
axis tight Establece los límites de los ejes en función de los rangos de los datos.
El comando grid
Ejes logarítmicos.
Ejes semilogarítmicos.
Nota: estas tres formas de representar la grafica también se puede aplicar las
propiedades expuestas anteriormente.
44
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplos:
>> x=linspace(0.1,60,1000);
>> y=2.^(-0.2*x+10);
>> plot(x,y)
>> semilogx(x,y)
>> semilogy(x,y)
>> loglog(x,y)
45
Escuela Académica Computación Científica Prof. Richard Mamani
Comando subplot():
subplot(m,n,i)
46
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo:
>> x=0:pi/40:2*pi;
y=sin(x); z=cos(x);
w=exp(-x*.1).*y; v=y.*z;
subplot(2,2,1), plot(x,y)
subplot(2,2,2), plot(x,z)
subplot(2,2,3), plot(x,w)
subplot(2,2,4), plot(x,v)
Comando figure.
Si se llama a la función figure sin argumentos, se crea una nueva ventana gráfica
con el número consecutivo que le corresponda. El valor de retorno es dicho número.
Por otra parte, el comando figure(n) hace que la ventana n pase a ser la ventana o
figura activa. Si dicha ventana no existe, se crea una nueva ventana con el número
consecutivo que le corresponda La función close cierra la figura activa, mientras que
close(n) cierra la ventana o figura número n. El comando clf elimina el contenido de la
figura activa, es decir, la deja abierta pero vacía. La función gcf devuelve el número de
la figura activa en ese momento. Para practicar un poco con todo lo que se acaba de
explicar, ejecútense las siguientes instrucciones de MATLAB, observando con cuidado
los efectos de cada una de ellas en la ventana activa.
El comando figure (gcf) (get current figure) permite hacer visible la ventana de
gráficos desde la ventana de comandos.
>> x=[-4*pi:pi/20:4*pi];
plot(x,sin(x),'r',x,cos(x),'g')
title('Función seno(x) -en rojo- y función coseno(x) -
en verde-')
xlabel('ángulo en radianes'), figure(gcf)
ylabel('valor de la función trigonométrica'),
figure(gcf)
axis([-12,12,-1.5,1.5]), figure(gcf)
axis('equal'), figure(gcf)
axis('normal'), figure(gcf)
axis('square'), figure(gcf)
axis('off'), figure(gcf)
axis('on'), figure(gcf)
47
Escuela Académica Computación Científica Prof. Richard Mamani
funcion polar():
por ejemplo:
>>%El CARDIODE
>>%polar(teta,r)
>>a=0:pi/40:2*pi;
>>polar(a,2*(1+cos(a)));
48
Escuela Académica Computación Científica Prof. Richard Mamani
49
Escuela Académica Computación Científica Prof. Richard Mamani
Hasta hora se ha tratado con gráficos conectados por línea; pero no solo se puede
unir puntos con líneas, existen otras formas de geometría de acuerdo al tipo de dato que
se desea representar.
>> an=1988:1:1994;
>> ven=[8 12 20 22 18 24 27];
>> plot(an,ven,'-.r*','linewidth',2,'markersize',12)
50
Escuela Académica Computación Científica Prof. Richard Mamani
Por le tipo de dato que tenemos es conveniente trabajarlo con gráficos de corte
estadístico. Para ello MATLAB tiene los siguientes comandos:
Comando bar.
Sintaxis. bar(x,y)
>> bar(a
Ejempl o. n,ven,'g')
>> xlabel('años 1989-1994')
>> ylabel('ventas(en millones de dolares)','fontsize',12)
>> title('grafico de barras verticales', 'fontname','century','fontsize',14)
>> legend('grafico venta vrs años')
Comando barh.
Sintaxis: barh(x,y)
Ejemplo.
>>barh(an,ven,'b')
>> xlabel('ventas en millones de dolares','fontname','impact','fontsize',12)
>> ylabel('años 1989 - 1994','fontname','Courier New','fontsize',12)
>> title('Gráficos en barras horizontales','fontname','Courier','fontsize',13)
>> legend('gráfico de años vrs ventas')
51
Escuela Académica Computación Científica Prof. Richard Mamani
Comando stairs.
Sintaxis: stairs(x,y)
Ejemplo.
>> staris(an,ven,'-r*')
>> axis([1987, 1995,0, 30]),figure(gcf)
>> title('gráfico de escaleras','fontname','arial black','fontsize',13)
>> xlabel('años 1989 - 1994')
>> ylabel('ventas en millones de $')
>> legend('gaficos ventas vrs años')
>> legend('gaficos ventas vrs años')
Comando etem.
Sintaxis: etem(x,y)
Ejemplo.
>>h=stem(an,ven);
>> set(get(h,'Baseline'));
>> set(h,'markerfacecolor','r');
>> set(h,'markerfacecolor','r','markeredgecolor','g');
>> set(h,'markerfacecolor','r','markeredgecolor','g','linewidth',2);
>> title('gráfico de tallo lineaas verticales')
>> xlabel('años 1988 - 1994')
>> ylabel('ventas')
>> legend('ventas vr años')
52
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo.
Comando pareto.
Sintaxis: pareto(x)
Ejemplo:
53
Escuela Académica Computación Científica Prof. Richard Mamani
En matlab:
Comando pie.
Ejemplo.
En matlab:
54
Escuela Académica Computación Científica Prof. Richard Mamani
Histogramas
Comando hist.
Los histogramas son gráficos que muestran la distribución de una serie de datos.
Para ello, el rango de completo de datos es dividido en intervalos más pequeños de
forma que el histograma muestra cuantos puntos hay en cada intervalo. El histograma
grafica barras donde la altura representa cuantos puntos hay en los intervalos pequeños.
Sintaxis: hist(y)
Ejemplo.
>>c=randn(100,2);
>>hist(c)
>> hist(c,5)
>> frec=hist(c,5)
frec =
12 12
16 23
31 38
34 17
7 10
55
Escuela Académica Computación Científica Prof. Richard Mamani
CAPITULO IV
GRAFICOS TRIDIMENSIONALES
Al igual que los gráficos bidimensionales tienen propiedades que permiten dar
distintas apariencias y efectos a la hora de graficarlos.
Gráficos de línea.
Sintaxis:
plot3(x,y,z,’especificadores de línea’,’propiedades’,’valores’)
Ejemplo:
Sea:
f (t ) = ( x(t ), y (t ), z (t ))
∀t ∈ [ a b ] ⊂
definida por f (t ) = ( t cos(t ), t sin(t ), 0.5t )
Solución en MATLAB.
>> t=0:0.1:6*pi;
>> x=sqrt(t).*sin(t);
>> y=sqrt(t).*cos(t);
>> z=0.5*t;
>> plot3(x,y,z)
>> grid
56
Escuela Académica Computación Científica Prof. Richard Mamani
Sean:
X = {x ∈ : a ≤ x ≤ b }
Y = { y ∈ :c ≤ x ≤ d}
X × Y = {( x, y )∈ 2
: x ∈ X ∧ y ∈Y }
Ejemplo: para −1 ≤ x ≤ 3 1≤ y ≤ 4
%en matlab.
>> x=-1:1:3;
>> y=1:1:4;
>> [X Y]=meshgrid(x,y)
X=
-1 0 1 2 3
-1 0 1 2 3
-1 0 1 2 3
-1 0 1 2 3
Y=
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
Ejemplo.
57
Escuela Académica Computación Científica Prof. Richard Mamani
xy 2
sea z = 2
x + y2
En matlab:
>> z=(X.*Y.^2)./(X.^2+Y.^2)
z=
La sintaxis es:
Ejemplo.
>> x=-1:1:3;
>> y=1:1:4;
>> [X Y]=meshgrid(x,y);
>> z=(X.*Y.^2)./(X.^2+Y.^2)
>> mesh(X,Y,z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
58
Escuela Académica Computación Científica Prof. Richard Mamani
Usando surf.
>> x=-1:1:3;
>> y=1:1:4;
>> [X Y]=meshgrid(x,y);
>> z=(X.*Y.^2)./(X.^2+Y.^2)
>> surf(X,Y,z)
>> xlabel('eje x')
>>ylabel('eje y')
>>zlabel('eje z')
Observaciones.
Los gráficos creados tienen colores que pueden variar en función de la magnitud
de z. la variación de color se añade como una característica a la visualización de
gráficos 3-D. Para ello puede usar la flecha de edición y pulsar en el gráfico para
acceder a las propiedades de gráfico.
>> mesh(X,Y,z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
>> surf(X,Y,z)
>> xlabel('eje x')
>>ylabel('eje y')
>>zlabel('eje z')
>> colormap([0.2 0.5 0.4])
59
Escuela Académica Computación Científica Prof. Richard Mamani
Para visualizar el gráfico dentro de una caja puede digitar box on en la ventana de
comandos.
Ejemplos:
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5
*Y).*sin(X));
>> meshz(X,Y,Z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
>> x=-3:0.05:3;
>> y=-3:0.05:3;
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y)
.*sin(X));
>> meshc(X,Y,Z)
>> xlabel('eje x'); ylabel('eje y')
>> zlabel('eje z')
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y).*si
n(X));
>> surfc(X,Y,Z)
>> xlabel('eje x');ylabel('eje y')
>> zlabel('eje z')
60
Escuela Académica Computación Científica Prof. Richard Mamani
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y)
.*sin(X));
>> surfl(X,Y,Z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5
*Y).*sin(X));
>> waterfall(X,Y,Z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y)
.*sin(X));
>> contour3(X,Y,Z,10)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
61
Escuela Académica Computación Científica Prof. Richard Mamani
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*
Y).*sin(X));
>> contour(X,Y,Z,10)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
Gráficos especiales.
Esfera.
Ejemplo.
>>sphere
>>sphere(50) % o como;
>> [X Y Z]=sphere(50)
>>surf(X,Y,Z)
62
Escuela Académica Computación Científica Prof. Richard Mamani
Cilindro.
Ejemplo.
>> [ x y z]=cylinder(10)
>> surf(x,y,z)
Otra forma.
>> t=0:0.314:3.5;
>> r=1+sin(t);
>> [ x y z]=cylinder(r);
>> surf(x,y,z)
En curvas paramétricas.
Stem3(x,y,z,c). Dibuja tallos verticales en 3-D con marcadores a partir del plano
xy.
63
Escuela Académica Computación Científica Prof. Richard Mamani
Comando view.
Este comando controla la dirección desde se verá el gráfico generado. Para ello se
especifica la dirección en términos a azimut y elevación. Véase el gráfico siguiente:
Practique.
64
Escuela Académica Computación Científica Prof. Richard Mamani
CAPITULO 5
PROGRAMACION EN MATLAB.
Fichero script.
Notas:
Variables globales.
Cuando se escribe un código en script las variables creadas dentro del fichero
pueden ser usadas también en la ventana de comandos y viceversa las variables creadas
en la ventana de comandos pueden ser usadas en le fichero; pero esto no es
recomendado en la practica, pues es mejor definir las variables dentro del fichero y solo
utilizarlos en es código.
65
Escuela Académica Computación Científica Prof. Richard Mamani
Ejemplo.
>>media3
Ejemplo.
En la ventana de comandos:
>> a=12; b=15; c=20;
>> media2
media =
15.6667
a=
10
66
Escuela Académica Computación Científica Prof. Richard Mamani
Sintaxis.
Cuando se ejecuta el comando input del fichero se muestra el mensaje que va entre
comillas simples y un cursor esperando la asignación del valor a nombre_variable.
Ejemplo.
En la ventana de comandos.
>> media2
ingrese el valor de a: 12
ingrese el valor de b: 15
ingrese el valor de c: 20
media =
15.6667
a=
10
Nota: el comando input sirve para ingresar desde teclado los tipos de valores
como vectores o matrices, recordar que los vectores y las matrices se asignan mediante
el uso de corchetes.
67
Escuela Académica Computación Científica Prof. Richard Mamani
En la ventana de comandos.
>> simb
ingrese la funcion f(x)= x^2+x
f=
x^2+x
fx =
f2 =
Inline function:
f2(y) = y^3+1
f2x =
Observación: el paso anterior se puede utilizar se quiere asignar una cadena a una
variable.
68
Escuela Académica Computación Científica Prof. Richard Mamani
Comandos de salida.
Como se vio en las anteriores líneas las salidas de las variables son de forma
automática en MATLAB, esto es simple cuando al final de instrucción no se teclea
punto y coma (;), pero sucede que es necesario mostrar mensajes cuando se esta
ejecutando, por ejemplo cuando queremos si un bucle se esta ejecutando, o para
mostrar de error. MATLAB tiene para estos casos los siguientes comandos.
Comando disp.
Sintaxis.
En la ventana de comandos
Observación. Con disp se puede visualizar una variable, para visualizar dos o mas
variables se debe de asignar a otra variable que contenga a los elementos que se va
mostrar.
69
Escuela Académica Computación Científica Prof. Richard Mamani
Comando fprintf.
Este comando soluciona el problema anterior; pues este comando permite la salida
de textos y datos en la ventana de comandos o para almacenar en un fichero fuera de
matlab con formato diferente para cada dato.
Código Acción
\b Borrar carácter anterior
\n Salto de línea
\t tabulaciones
\r Retorno a la línea anterior
%% Carácter porcentaje
Nota: la impresión que realiza este comando es una sola línea, no importa si se
digite en otra línea.
Ejemplo.
>> fprintf('texto1 '), fprintf('texto2 '),fprintf('texto3\n')
texto1 texto2 texto3
70
Escuela Académica Computación Científica Prof. Richard Mamani
texto3
Utilización de fprintf para visualizar datos y textos.
Sintaxis.
fprinf(' texto %5.2f texto adicional %5.2d texto ',variable1,variable2)
Donde: % significa que se va imprimir una variable con cierto formato, 5.2
significa la precisión de salida (opcional), por ejemplo en este caso es de dos decimales
de precisión y un formato de salida por lo general se elige real (float), existen otros
formatos revisar tabla.
Especificador Descripción
%d Notación decimal
%f Notación real o de punto fijo
%e Notación exponencial en minúscula
%E Notación exponencial en mayúscula
%i Entero
Nota: fprintf se puede utilizar para mostrar los elementos de un vector, para ello el
comando se visualizará tantas veces como elementos tenga el vector.
Una función definida por el usuario es un programa de matlab que el usuario crea
y almacena en disco en forma de un fichero que tiene su propia línea de instrucción,
esta función puede ser utilizada como cualquier otra función predefinida de matlab.
71
Escuela Académica Computación Científica Prof. Richard Mamani
Nota. Los argumentos de entrada pueden ser vectores, matrices o escalares, pero
no puede tener algo simbólico. Además, puede darse el caso que en que no se de
ninguna salida.
Ver:
72
Escuela Académica Computación Científica Prof. Richard Mamani
Comentario
Variables locales y globales.
Todas las variables de una función son locales, esto es todas las variables de salida
y entrada se pueden utilizar solo dentro del fichero función. Esto es cuando se ejecuta
una función sus variables nunca cambian de valor durante la ejecución, tanto es así que
cuando se tiene una variable fuera del fichero este permanece constante después de la
ejecución de la función. Esto es las variables después de la ejecución desaparecen.
Más aun MATLAB separa un espacio de memoria para los trabajos habituales de
ficheros script y para la ventana de comandos; por lo que otras variables declaras fuera
del fichero función no son reconocidas. Sin embargo, existe la posibilidad que tanto las
funciones como los script reconozcan una variable, tal como fue declarada esto se
realiza declarando la variable como global.
Global = nombre_variable.
Comando feval.
Sintaxis.
>>variable=fecal('nombre_funcion',argu_entrada_de_la_funcion)
73
Escuela Académica Computación Científica Prof. Richard Mamani
Programación en MATLAB
Operadores relacionales.
Nota: se puede dar el caso de agrupaciones, en este caso matlab opera de forma
tradicional.
Operadores lógicos
74
Escuela Académica Computación Científica Prof. Richard Mamani
75