Вы находитесь на странице: 1из 46

Ing. HENRRY R.

OCHOA LEON
ESPECIALISTA EN PROGRAMACIN DE SOFTWARE DE INGENIERA

Henry_ol_iq@hotmail.com

2013

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Captulo I
QU ES MATLAB?
MATLAB = 'MATrix LABoratory' (LABORATORIO DE MATRICES).
MATLAB es un medio computacional tcnico, con un gran desempeo para el clculo numrico
computacional y de visualizacin. MATLAB integra anlisis numrico, matrices, procesamiento
de seales y grficas, todo esto en un ambiente donde los problemas y soluciones son
expresados tal como se escriben matemticamente.
MATLAB fue escrito originalmente en fortran, actualmente est escrito en lenguaje C. MATLAB
es un lenguaje de programacin amigable al usuario con caractersticas ms avanzadas y
mucho ms fciles de usar que los lenguajes de programacin como Basic, pascal o C. Al
arrancar MATLAB se abre una ventana del tipo de la indicada 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.

Figura 1

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(4),
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. Current Directory muestra los ficheros del directorio
activo o actual. El Workspace contiene informacin sobre todas las variables que se hayan
definido en esta sesin.
En la parte inferior derecha aparecen otra ventana, Command History. La ventana Command
History muestra los ltimos comandos ejecutados en la Command Window. Estos comandos

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

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.
A diferencia de versiones anteriores de MATLAB en que el directorio activo se deba cambiar
desde la Command Window, a partir de la versin 6.0 se puede cambiar 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 uno de los ficheros
*.m del directorio activo se abre el editor de ficheros de MATLAB, herramienta fundamental
para la programacin.
GENERALIDADES
Manejo de variables:
En MATLAB como en cualquier otro lenguaje de programacin, y/o asistente matemtico se
utilizan variables. Las variables deben tener un nombre segn ciertas reglas. Estas reglas son:
NO pueden comenzar con un nmero, aunque si pueden tener nmeros (variable1 es
un nombre vlido).
Las maysculas y minsculas se diferencian en los nombres de variables. (A y a son dos
variables diferentes)
Los nombres de variables no pueden contener operadores ni puntos. (No es vlido
usar /, *, -, +, ...)
Si se trabaja con complejos slo puede utilizarse un de los nombres i y/o j para
variables.
No es necesario definir el tipo de variable o tamao (si se usa un vector y despus se
expande, no hay problema)
Para el uso de una variable no es necesario declarar sus nombres, en la siguiente tabla
se presenta las variables predefinidas que posee Matlab.
Nombre de la variable
Pi
Inf
Eps
NaN
Realmin
Realmax

Significado

1.0000e-006
No es nmero
Menor nmero2-1022
Mayor nmero (2-e)21023

Manejo de expresiones:
Una expresin en MATLAB, puede ser:
Una variable o un nmero. (ej: variable1, x, 3, 22.3)
Un comando aplicado. (ej: norm(A), sin(2*pi) )
Una expresin matemtica. (ej: 2+3*variab1^ 4.5)
Si cualquiera de las anteriores se escribe en la lnea de comandos (>> ) del MATLAB, l
devolver el nombre de la variable y su valor (en caso de que la expresin tenga nombre, de
no tenerlo, MATLAB devolver ans = resultado). Un punto importante que se debe resaltar es
que esto ocurre siempre y cuando la expresin no termine con punto y coma. Al aadir un
punto y coma al final de la expresin MATLAB no imprime su valor en la pantalla, aunque si
realiza el clculo. (a=3+2; deja en a el valor de 5, pero no lo muestra).

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Manejo de comandos:
Cada comando en MATLAB es un archivo con extensin .m, por lo tanto es necesario tener las
libreras en que se encuentran los comandos que se desean utilizar. Aunque la gran mayora de
los comandos utilizados siempre vienen incluidos en las libreras.
MATLAB NO distingue entre maysculas y minsculas en los comandos (a menos que se
trabaje en Unix). El resto de esta presentacin trata cada comando en detalle (los ms usados).
COMANDOS DE MATLAB
Comandos globales
o Para salir de MATLAB, use quit o exit.
o El comando clc despeja la ventana de comandos.
o El comando clf borra la figura actual despejando la ventana de grficos.
o El comando clear tiene varias formas posibles:
clear sin argumentos, clear elimina todas las variables creadas previamente (excepto
las variables globales).
clear A, b borra las variables indicadas.
clear global borra las variables globales.
clear functions borra las funciones.
clear all borra todas las variables, incluyendo las globales, y las funciones.
o El ; al final de la instruccin omite el eco o salida a la pantalla.
o Guardar variable save.
o Recuperar variable guardada load.
Formatos Numricos
Comando MATLAB
format short
format short e
format long
format long e
format bank
format rat

Exhibicin
Por omisin
4 decimales
14 decimales
15 decimales
2 decimales
fraccin

Ejemplo
2.3333
2.3333e+000
2.33333333333333
2.333333333333334e+000
2.33
2/5

Comandos de Operaciones Aritmticas


ESCALAR
+
*
/
\
^

MATRIZ
+
*
/
\

VECTOR
+
.*
./
\.
.

DESCRIPCIN
Adicin
Sustraccin
Multiplicacin
Divisin hacia la derecha
Divisin hacia la izquierda
Transposicin

Comandos de Operadores Relacionales

OPERADOR

DESCRIPCIN

<
<=
>
>=

menor que
menor o igual que
mayor que
mayor o igual que

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
==
~=

Igual
no igual

Comandos de Operadores Lgicos


OPERADOR
&
|
~

DESCRIPCIN
Y (and)
O (or)
NO (not)

Caracteres Especiales:
Caracteres
[]
()
,
;

Descripcin
Se utilizan para formar vectores y matrices
Define precedencia en expresiones aritmticas. Encierra argumentos de
funciones en forma usual
Separador de elementos de una matriz, argumentos de funciones y
declaraciones en lneas con declaraciones mltiples
Separador de declaraciones, termina renglones de una matriz

Funciones Matemticas Elementales que Operan de Modo Escalar


Matlab ofrece un sinnmero de funciones las que acepta como argumentos variables reales
y/o complejos sin discriminacin, as como con argumentos matriciales.
Funciones Trigonomtricas
Funcin

Descripcin

sin(x)

Senos de x.

asin(x)

Arco seno de x.

sinh(x)

Seno hiperblico de x.

asnh(x)

Arco seno hiperblico x.

cos(x)

Coseno de x.

acos (x)

Arco coseno de x.

cosh(x)

Coseno hiperblico de x.

acosh(x) Arco coseno hiperblico de x.


tan(x)

Tangente de x.

atan(x)

Arco tangente de x.

tanh(x)

Tangente hiperblico de x.

atanh(x) Arco tangente hiperblico de x.

cot(x)

Cotangente de x.

sec(x)

Secante de x.

csc(x)

Cosecante de x.

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
Funciones Que Realizan Tareas
Funcin

Descripcin

abs(x)

Valor absoluto de x.

sqrt(x)

Raz cuadrada de x.

real(x)

Parte real del nmero complejo x.

imag(x)

Parte imaginaria del nmero complejo x.

sign(x)

Funcin signo de x.

exp(x)
log(x)

Logaritmo natural.

log10(x)

Logaritmo decimal.

num2str(x)

Convierte en cadena el nmero x.

str2double(x) Convierte en nmero real la cadena x.


rem(x,y)

Resto de la divisin (2 argumentos que no tienen que ser enteros)

mod(x,y)

Similar a rem

round(x)

Redondeo hacia el entero ms prximo

fix(x)

Redondea hacia el entero ms prximo a 0

floor(x)

Valor entero ms prximo hacia -

ceil(x)

Valor entero ms prximo hacia +

gcd(x)

Mximo comn divisor

lcm(x)

Mnimo comn mltiplo

Funciones Reales
Funcin

Descripcin

eval(f,x)

Evala una funcin en los valores de x.

fplot(f,[a,b]) Grafica la funcin en el intervalo [a,b].


fzero(f,a)

Calcula la raz de la funcin f, partiendo del valor a.

trapz(x,f)

Calcula el rea de la regin plana limitada por f en el intervalo [a, b], donde a es
el primer valor de x y b el ltimo valor de x, x debe ser una variable con
mltiples ordenados en orden creciente.

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Captulo II
MATRICES Y ARREGLOS
Arreglo: Es un conjunto de nmeros, ordenados en filas y columnas.
Arreglos unidimensionales: Es un conjunto de nmeros, ordenados en una sola fila o
columna.
Arreglos bidimensionales: Es un conjunto de nmeros, ordenados en filas y
columnas, teniendo para ello ms de una.
Matriz: Es un arreglo rectangular de nmeros (reales o complejos) ordenados en filas y
columnas.
a11 a12 a1n
a21 a21.. a2n
A=
..
am1 am2
amn
En su forma simplificada lo escribiremos como: A= (aij) y los nmeros aij constituyen los
elementos de la matriz A.
Si una matriz tiene solo una columna, se denomina matriz columna, y si posee solo una fila se
denomina matriz fila.
TIPOS DE MATRICES PREDEFINIDOS
eye(4)

Forma la matriz unidad de tamao (4x4)

zeros(3,5)

Forma una matriz de ceros de tamao (3x5)

ones(3)

Forma una matriz de unos de tamao (3x3)

linspace(x1,x2,n) Genera un vector con n valores igualmente espaciados entre x1 y x2


rand(3)
rand(2,5)
randn(4)
magic(4)

Forma una matriz de nmeros aleatorios entre 0 y 1, con distribucin


uniforme, de tamao (3x3)
Idem de tamao (2x5)
Forma una matriz de nmeros aleatorios de tamao (4x4), con distribucin
normal, de valor medio 0 y varianza 1.
Crea una matriz (4x4) con los nmeros 1, 2,... 4*4, con la propiedad de que
todas las filas y columnas suman lo mismo.

FUNCIONES MATRICIALES ELEMENTALES


B = A'

Calcula la traspuesta (conjugada) de la matriz A

t = trace(A)
[m,n] = size(A)

Devuelve la traza t (suma de los elementos de la diagonal) de una matriz


cuadrada A
Devuelve el nmero de filas m y de columnas n de una matriz rectangular A

n = size(A)
nf = size(A,1)
nc = size(A,2)
det(A)
inv(A)

Devuelve el nmero de filas de A


Idem de tamao (2x5)
Devuelve el nmero de columnas de A
Sirve para calcular el determinante de la matriz A.
Sirve para invertir la matriz A.

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

APLICACIN DE MATRICES
DEFINICIN DE UNA MATRIZ
MATLAB trabaja esencialmente con matrices numricas rectangulares. La manera ms fcil de
ingresar matrices es enumerando los elementos de sta de tal manera que:
Para obtener una columna, los elementos deben estar separados por espacios en
blanco comas.
Para obtener una fila, se coloca punto y coma ; al final de ingresar los elementos.
Los elementos estn cerrados entre corchetes, [ ].

TRANSPOSICIN DE UNA MATRIZ


El carcter ' (apstrofe) denota la matriz transpuesta. Si tenemos la matriz A y llamamos b =
A', b es la matriz transpuesta de A.

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

SUBMATRICES
Generacin de una submatriz a partir de una matriz dada.

3:4 nos indica la tercera y cuarta fila completa de la submatriz A.


1:3 nos indica, desde la primera hasta la tercera columna completa de la submatriz A.

Submatriz formada por los elementos que estn en todas las filas que hay entre la segunda y la
tercera fila en las columnas primera y tercera.

ASIGNACIN DE UNA MATRIZ


A los elementos de una matriz se accede sin ms que escribir el nombre de la matriz y, entre
parntesis, los respectivos ndices:

Tambin se puede acceder a una fila o columna completas

Podemos acceder a la matriz como si fuera una columna,

MATRICES ESPECIALES
En MATLAB podemos generar matrices especiales con las siguientes instrucciones:
FUNCIONES DE MATRICES
Diag
Nos permite hallar la diagonal de una matriz

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Tril
Matriz formada por la parte triangular inferior de A

Triu
Matriz formada por la parte triangular superior de A

Sum(matriz)
Realiza la suma de todas las filas con su respectiva columna

prod(matriz)
Realiza el producto de todas las filas con su respectiva columna

10

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

min
Muestra los valores mnimos de los elementos que se encuentran en la matriz.

max
Muestra los valores mximos de los elementos que se encuentran en la matriz.

inv
Sirve para invertir una matriz (matriz cuadrada), la sintaxis de la orden es:
matriz1 = inv(matriz2);
matriz2: Es la matriz que se desea invertir
matriz1: Se almacena la matriz inversa de la matriz 2.

Det
Sirve para calcular el determinante de una matriz. La sintaxis de la orden es: Valor=det(Matriz)
Matriz: Es la matriz (cuadrada) a la que se le desea calcular el determinante.
Valor: Es donde se almacena el valor del determinante.

11

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
FUNCIONES QUE ACTAN SOBRE VECTORES

Las siguientes funciones actan sobre vectores (no sobre matrices ni sobre escalares)
[xm,im]=max(x)
Mximo elemento de un vector. Devuelve el valor mximo xm y la
posicin que ocupa im
min(x)
Mnimo elemento de un vector. Devuelve el valor mnimo y la posicin
que ocupa
sum(x)
Suma de los elementos de un vector
cumsum(x)

mean(x)
std(x)
prod(x)
cumprod(x)
[y,i]=sort(x)

l = length (x)

Devuelve el vector suma acumulativa de los elementos de un


vector(cada elemento del resultado es una suma de elementos del
original)
Valor medio de los elementos de un vector
Desviacin tpica
Producto de los elementos de un vector
Devuelve el vector producto acumulativo de los elementos de un vector
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.
Determina el nmero de componentes de un vector.

ASIGNACIN DE UN VECTOR DE COORDENADAS


Si queremos declarar un vector de coordenadas equiespaciadas entre dos valores dados.

No necesariamente se tiene que incrementar por nmeros enteros, pueden ser decimales,
nmeros negativos constantes

Equivalentemente, si lo que conocemos del vector es que la primera coordenada vale 0, la


ltima 10 y que tiene 6 elementos en total, escribiremos:

Otra forma de asignar valores a un vector es por medio de los subndices. El menor subndice
utilizado por MATLAB es 1, y va aadiendo valores a medida que se requieran. Los subndices
se escriben entre parntesis.

12

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Si se desea cambiar todo el valor de una fila o una columna, se utiliza el operador ::

SUBVECTORES
Se pueden extraer subvectores:

POLINOMIOS
Los polinomios en MATLAB se representan como vectores fila, conteniendo todos los
coeficientes en orden decreciente, incluyendo ceros. Por ejemplo, el polinomio
en Matlab debemos ingresar a p de la siguiente manera
>> p = [8 - 5 1 3 4 ]
p=8-5134
Observe que Matlab al responder no reescribe los corchetes. De ahora en adelante
utilizaremos los trminos vector y polinomio indistintamente para referirnos al mismo
concepto.
FUNCIONES PARA CLCULOS CON POLINOMIOS
roots(pol)

Races del polinomio pol.

polyval(pol,x)

Evaluacin del polinomio pol para el valor de x. Si x es un vector, pol se


evala para cada elemento de x.
Producto de convolucin de dos polinomios p1 y p2.

conv(p1,p2)

[c,r]=deconv(p,q) Divisin del polinomio p por el polinomio q. En c se devuelve el cociente y


en r el resto de la divisin.
residue(p1,p2)
Descompone el cociente entre p1 y p2 en suma de fracciones simples.
polyder(pol)
Calcula la derivada de producto de polinomios.
polyder(p1,p2)
Producto de los elementos de un vector

13

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Captulo III
GRFICAS CON MATLAB
FUNCIONES GRFICAS 2D ELEMENTALES
Matlab ofrece una gama amplia de opciones a la hora de realizar representaciones graficas.
Permite realizar graficas de curvas planas y superficies, posibilitando la agrupacin y
superposicin de ellos.
GRAFICAS EN EL PLANO
Con Matlab es sencillo crear objetos grficos e incluso artsticos mediante expresiones
matemticas a travs de los siguientes comandos.
Comandos
plot(x,y)
bar(x,y)
barh(x,y)
stem(x,y)
stairs(x,y)
polar(x,y)
pie(x,y)
rose(x,y)

descripcin
Dibuja el conjunto de puntos (x,y) en un sistema cartesiano.
Grafico de barras vertical, donde y representa las frecuencias y x
define los espacios en el eje x.
Grafico de barras vertical, donde x representa las frecuencias y y
define los espacios en el eje y.
Grafico de bastones vertical, donde y representa las frecuencias y x
define los espacios en el eje x.
Grafica una curva escalonada.
Dibuja una curva en coordenadas polares, y=y(x).
Realiza el grafico de sectores relativo al vector x.
Dibuja la histograma angular relativo al vector y.

ETIQUETAS EN LAS GRAFICAS DE MATLAB.


Matlab presenta funciones para colocar textos, etiquetas en los ejes coordenados, colocar
titulo y efectuar un subrayado a los ejes, a continuacin se presentan estas funciones:
title('ttulo')

Aade un ttulo al dibujo

xlabel('tal')

Aade una etiqueta al eje de abscisas. Con xlabel off desaparece

ylabel('cual')

Aade una etiqueta al eje de ordenadas. Con ylabel off desaparece

text(x,y,'texto')

Introduce 'texto' en el lugar especificado por las coordenadas x e y. Si x


e y son vectores, el texto se repite por cada par de elementos. Si texto
es tambin un vector de cadenas de texto de la misma dimensin, cada
elemento se escribe en las coordenadas correspondientes.
Introduce texto con ayuda del ratn: el cursor cambia de forma y se
espera un clic para introducir el texto en esa posicin.
Define rtulos para las distintas lneas o ejes utilizados en la figura.
Activa la inclusin de una cuadrcula en el dibujo. Con grid off
desaparece la cuadrcula.
El comando plot puede utilizarse tambin con matrices como
argumentos.

gtext('texto')
legend(rotulo)
grid

GRAFICO DE MLTIPLES CURVAS


Matlab provee con la opcin plot para realizar simultneamente la grafica de ms de una
curva, estableciendo por efecto 2 colores distintos.
plot(x,y,x,z);

14

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

ESTILOS DE LNEA Y MARCADORES EN LA FUNCIN PLOT


Matlab permite realizar graficas de funciones utilizando diferentes caracteres, en la siguiente
tabla se presenta las siguientes opciones.

Ejemplos
1

line;
x=-1:0.1:5;
y=sin(x.^2);
plot(x,y);

0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1

bar
x=-3:0.2:3;
y=exp(-x.^2);
bar(x,y);

0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-4

15

-3

-2

-1

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
4
3

barh
x=-3:0.2:3;
y=cos(x.^3)-2.*x+1;
barh(x,y);

2
1
0
-1
-2
-3
-4
-6

-4

-2

1
0.8

Stairs
x=0:0.2:10;
y=sin(x);
stairs(x,y);

0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

90

10

0.5

120

60
0.4

polar
t=0:0.1:2*pi;
y=abs(sin(2*t).*cos(2*t));
polar(t,y);

0.3
150

30
0.2
0.1

180

210

330

240

300
270
4%

12%

36%

20%

28%

16

Pie
x=1:2:9;
pie(x)

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
90

120

60
1.5
1

150

Rose
x=[1 3 6 2 7 1 5 12];
rose(x);

30

0.5

180

210

330

240

300
270

1
0.8

x=0:0.05:5;
y=sin(x);
z=cos(x);
plot(x,y,x,z);

0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

0.5

1.5

2.5

3.5

4.5

Observacion: Despus de haber graficado una o mas curvas, se puede incrementar una curva
en los mismos ejes precediendo el comando.
hold on, al uso del ultimo plot.
1

x=0:0.05:5;
y=sin(x);
z=cos(x);
plot(x,y,x,z);
hold on
w=abs(x-2)-2;
plot(x,w,'g');
grid

0.5

-0.5

-1

-1.5

-2

0.5

1.5

2.5

3.5

4.5

Grafica con Matlab 7


5

x=-2:0.05:5;
y=-x.^2+sin(x);
plot(x,y);
text(2.7,-4,'y=-x.^2+sin(x)');
title('Grafica con Matlab 7');
xlabel('x');
ylabel('y');
grid

0
y=-x. 2+sin(x)

-5

-10

-15

-20

-25

-30
-2

-1

2
x

17

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

GRAFICAS CON MLTIPLES EJES


Matlab permite construir mltiples ejes en una sola pantalla en la cual se elaboran mltiples
grficas.
COMANDO SUBPLOT
Una ventana grfica se puede dividir en m particiones horizontales y n verticales, con
objeto de representar mltiples grficos en ella. Cada una de estas sub. Ventanas tiene
sus propios ejes, aunque otras propiedades son comunes a toda la figura. La forma
general de este comando es:
subplot(m,n,i) donde m y n son el nmero de subdivisiones en filas y columnas, e i es la
subdivisin que se convierte en activa. Las subdivisiones se numeran
consecutivamente empezando por las de la primera fila, siguiendo por las de la
segunda, etc. Por ejemplo, la siguiente secuencia de comandos genera cuatro grficos
en la misma ventana:
subplot(F,C,N)
FILAS, COLUNMAS Y UBICACIN
x=pi/2:pi/16:8*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)
1

0.5

0.5

-0.5

-0.5

-1

10

20

30

-1

10

20

30

10

20

30

0.5

0.5

0
-0.5

-0.5
-1

10

20

30

-1

GRFICAS ESPECIALES EN EL PLANO


Matlab dispone de un grupo de comandos para presentar formas geomtricas especiales en
dos dimensiones, estos se describen en la siguiente tabla.
Comandos
compass(x,y)

feather(x,y)
fpolt('f',[a,b])
ezplot('f',[a,b])
loglog(x,y)
semilogx(x,y)

18

Descripcin
Dibuja un conjunto de flechas con origen en (0,0) y cuya
magnitud y direccin vienen determinadas por el modulo de z,
(z=x+iy).
Dibuja un conjunto de flechas con origen en el eje X, y cuya
magnitud y direccin vienen determinadas por el modulo de Y.
Grafica la funcin f en el intervalo [a,b].
Grafica la funcin f en el intervalo [a,b], adicionndole el titulo
por defecto.
Realiza una grafica cartesiana con escala logartmica en los ejes
coordenados.
Realiza una grafica cartesiana con escala logartmica en el eje

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

X y escala normal en el eje Y.


Realiza una grafica cartesiana con escala logartmica en el eje
Y y escala normal en el eje X.
Dibuja una regin poligonal cuyos vrtices son los elementos
de los vectores columna x, y; el parmetro c contiene el color a
graficar.

semilogy(x,y)
fill(x,y,c)

90

120

60

Compass:
x=-pi:0.8:pi;
y=3-sin(x);
compass(x,y);

4
3
150

30
2
1

180

210

330

240

300
270

Feather:
x=-pi:0.8:pi;
y=3-sin(x);
feather(x,y);

3.5
3
2.5
2
1.5
1
0.5
0
-4

-2

10

12

y=cos(x)
1

fplot;
fplot('cos(x)',[-3,3]);

0.8
0.6
0.4

0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-3

-2

-1

0
x

4-abs(x)

ezplot;
ezplot('4-abs(x)',[-3,3]);

3.5

2.5

1.5

1
-3

19

-2

-1

0
x

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Loglog:
x=1:0.2:10;
y=11+exp(-x.^2);
loglog(x,y);

1.054

10

1.052

10

1.05

10

1.048

10

1.046

10

1.044

10

1.042

10

10

10
x

Fill:
x=1:0.2:10;
y=cos(x);
fill (x,y, 'm');

0.8
0.6
0.4

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10

GRFICOS TRIDIMENSIONALES
Quizs sea sta una de las caractersticas de MATLAB que ms admiracin despierta entre los
usuarios no tcnicos (cualquier alumno de ingeniera sabe que hay ciertas operaciones
algebraicas como la descomposicin de valor singular, sin ir ms lejos que tienen dificultades
muy superiores, aunque "luzcan" menos).
GRAFICA DE SUPERFICIES
Matlab permite realizar graficos en tres dimensiones tanto de lneas como de superficies,
siendo sencillo crear objetos graficos a travs de los siguientes comandos.
Comandos
plot3(x,y,z)

Descripcin
Dibuja el conjunto de puntos (x,y,z) en un sistema de tres dimensiones.
Dibuja una regin poligonal cuyos vrtices son los elementos de los vectores
fill3(x,y,z,c)
columna x, y, z. el parmetro c contiene el color a graficar.
Crea arreglos bidimensionales a partir de los arreglos x e y, para elaborar la grafica
meshgrid(x,y)
de una superficie explicita z = f(x,y).
mesh(x,y,z) Grafica una superficie explicita z - f(x,y) con los arreglos x, ye z.
Grafica superficie explicita z - f(x,y) con los arreglos x, y e z; proyectando las curvas
meshc(x,y,z)
de nivel enel plano xy.
Grafica una superficie explicita z - f(x,y) con los arreglos x, ye z; cerrando la grafica
meshz(x,y,z)
con las fronteras del dominio.
Grafica una superficie explicita z - f(x,y) con los arreglos x, ye z; pintando cada una
surf(x,y,z)
de las celdas.
Grafica superficie explicita z - f(x,y) con los arreglos x, y e z; proyectando las curvas
surfc(x,y,z)
de nivel en el plano xy.
Grafica una superficie explicita z = f(x,y) con los arreglos x,ye z; considerando una
surfl(x,y,z)
iluminacin en formato bsico.
waterfall(x,y,z) Grafica una superficie explicita z = f(x,y) en forma de cascada.
contour(x,y,z) Grafica las curvas de nivel de la superficie explicita z = f(x,y).

20

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

A continuacin se presentan grficos con tres dimensiones haciendo uso de los comandos
descritos anteriormente.
Plot3:
t=-6:0.2:8;
x=t;
y=3-t;
z=cos(t);
plot3(x,y,z);
gris

0.5

-0.5

-1
10
10

5
0

0
-5
-5

-10

fill3:
t=-6:0.2:8;
x=t;
y=3-t;
z=cos(t);
c=[1 0.8 0.1];
fill3(x,y,z,c);
grid

0.5

-0.5

-1
10
10

5
0

0
-5
-5

-10

Observacin.-En los siguientes grficos simplificaremos el cdigo de la programacin:


[x,y]=meshgrid(-2:0.2:2) en reemplazo de:
xa=-2:0.2:2; ya= -2:0.2:2; [x,y]=meshgrid(xa,ya);

z=x.*exp(-x. 2-y. 2)

mesh:
[x,y]=meshgrid(-2:0.2:2);
z=x.*exp(-x.^2-y.^2);
mesh(x,y,z)
title('z=x.*exp(-x.^2-y.^2)');
xlabel('x');ylabel('y');zlabel('z');

0.5

-0.5
2
1

2
1

-1
y

21

-1
-2

-2

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

meshc:
[x,y]=meshgrid(-2:0.2:2);
z=x.^2+y.^2;
meshc(x,y,z)
title('z=x.^2+y.^2');
xlabel('x');ylabel('y');zlabel('z ');

z=x. 2+y. 2

0
2
1

2
1

-1

-1
-2

-2

meshz:
[x,y]=meshgrid(-3:0.2:3);
z=x.^2-y.^2-9;
meshz(x,y,z)
title('z=x.^2-y.^2-9');
xlabel('x');ylabel('y');zlabel('z');

z=x. 2-y. 2-9

-5

-10

-15

-20
4
2

4
2

-2

-2
-4

-4

z=sin(x. 2+y. 2)

surf:
[x,y]=meshgrid(-1.5:0.2:1.5);
z=sin(x.^2+y.^2);
surf(x,y,z)
title('z=sin(x.^2+y.^2)');
xlabel('x');ylabel('y');zlabel('z');

0.5

-0.5

-1
2
1

2
1

-1
y

22

-1
-2

-2

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
z=-x+y. 2

surfc:
[x,y]=meshgrid(-5:0.2:5);
z=-x+y.^2;
surfc(x,y,z)
title('z=-x+y.^2');
xlabel('x');ylabel('y');zlabel('z');

30

20

10

-10
5
5
0

0
-5

-5

surfl:
[x,y]=meshgrid(-7.5:0.5:7.5);
z=sin(sqrt(x.^2+y.^2))./(sqrt(x.^
2+y.^2));}
surfl(x,y,z)
title('z=sin(sqrt(x.^2+y.^2))./(sq
rt(x.^2+y.^2))');
xlabel('x');ylabel('y');zlabel('z');

z=sin(sqrt(x. 2+y. 2))./(sqrt(x. 2+y. 2))

0.5

-0.5
10
5

10
5

-5

-5
-10

-10

Observacion:En la orden surfl(x,y,z), es el parmetro s es un vector direccional de iluminacin


cuyo angulo en perspectiva es medida en grados.
waterfall:
[x,y]=meshgrid(-3:0.2:3);
z=sin(x)+cos(y);
waterfall(x,y,z)
title('z=sin(x)+cos(y)');
xlabel('x');ylabel('y');zlabel('z');

z=sin(x)+cos(y)

-1

-2
4
2

4
2

-2
y

23

-2
-4

-4

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

contour:
[x,y]=meshgrid(-2:0.2:2);
z=x.*exp(-x.^2-y.^2);
contour(x,y,z)
title('z=x.*exp(-x.^2-y.^2)');
xlabel('x');ylabel('y');zlabel('z');

z=x.*exp(-x. 2-y. 2)
2
1.5
1
0.5

0
-0.5
-1
-1.5
-2
-2

-1.5

-1

-0.5

0
x

0.5

1.5

contour3:
[x,y]=meshgrid(-4:0.2:4);
z=-x.^2-y.^2+8;
contour3(x,y,z,20)
title('z=-x.^2-y.^2+8');
xlabel('x');ylabel('y');zlabel('z');

z=-x. 2-y. 2+8

10

-10

-20

-30
4
2

4
2

-2

-2
-4

-4

Observaciones:
El parmetro m de contour (x,y,z,m) o de contour3(x,y,z,m),indica el numero de niveles de
contorno a graficar.
El comando contour puede ser usado para graficar una funcin implcita.
Por ejemplo y3 +exp(y)=tanh(x)
Luego graficamos el contorno de uj solo nivel que corresponde a f=0.
y.3+exp(y)-tanh(x)
3

[x,y]=meshgrid(-3:0.2:3);
f=y.^3+exp(y)-tanh(x);
contour(x,y,f,[0,0])
xlabel('x');ylabel('y');

-1

-2

-3
-3

24

-2

-1

0
x

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
GRAFICA ESPECIALES
Lnea diagrama de un chirrido (Lnea plot of a chirp)
Line plot a chirp
1

x =0:0.05:5;
y=sin(x.^2);
plot(x,y);

0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

0.5

1.5

2.5

3.5

4.5

Los diagramas de la barra de una campana formaron la curva (Bar plot pf a bell shaped
curve)
1
x=-2.9:0.2:2.9;
0.9
bar(x,exp(-x.*x));
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-3

-2

-1

Diagrama del Escaln de una onda del seno (Stairstep plot of a sirve wave)
1

x=0:0.25:10;
stairs(x,sin(x));

0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10

Diagrama de Errorbar (Errorbar plot)


x=-2:0.1:2;
y=erf(x);
e=rand(size(x))/10;
errorbar(x,y,e);

1.5

0.5

-0.5

-1

-1.5
-2.5

25

-2

-1.5

-1

-0.5

0.5

1.5

2.5

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
90

0.5

120

60
0.4

t=0:0.01:2*pi;
r=sin(2*t).*cos(2*t);
polar(t,r)

0.3
150

30
0.2
0.1

180

210

330

240

300
270

Diagrama del vstago (Stem plot)


0.35

x=0:0.1:4;
y=sin (x.^2).*exp(-x);
stem(x,y)

0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15

0.5

1.5

2.5

3.5

Diagramas de XYZ en MATLAB. Aqu estn algunos ejemplos de los diagramas superficiales
en MATLAB.
Diagrama del acoplamiento del pico (Mesh Plot of Peak)
10

z=peaks (25);
mesh (z);
colormap (hsv)

-5

-10
30
25

20

20
15

10

10
5

Diagrama superficial de picos (Surface Plot of Peaks)


z=peaks(25);
surf(z);
colormap(jet);

10

-5

-10
30
25

20

20
15

10

10
0

26

5
0

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Diagrama superficial (con sombra) de picos (Surface Plot (with Shading) of Peaks)
z=peaks(25);
surfl(z);
10
shading interp;
5
colormap(pink);
0

-5

-10
30
25

20

20
15

10

10
0

5
0

Diagrama del contorno de picos (Contour Plot of Peaks)


25

z=peaks (25);
contour (z,16);
colormap (hsv)

20

15

10

10

15

20

25

Temblor (Quiver)
1.5

x=-2:.2:2;
y=-1:.2:1;
[xx,yy]=meshgrid(x,y);
zz=xx.*exp(-xx.^2-yy.^2);
[px,py]=gradient(zz,.2,.2)
;
quiver(x,y,px,py,2);

0.5

-0.5

-1

-1.5
-2.5

-2

-1.5

-1

-0.5

0.5

1.5

Rebanada (Slice)
[x,y,z]=meshgrid (-2:.2:2,2:.2:2,-2:.2:2);
v=x.*exp (-x.^2-y.^2z.^2);
slice (v,[5 15 21],21,[1
10])
axis ([0 21 0 21 0 21]);
colormap(jet)

20

15

10

0
20
15

20
15

10

10

5
0

27

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Captulo IV
LIMITES, DERIVACIN E INTEGRACIN
Lmites utilizando Matlab
El lmite de una funcin real de variable real en un punto slo requiere la declaracin de la
variable en uso como simblica con syms y la orden limit a continuacin.
syms x
limit (f, x, x0)

Se calcula

limit (f, x, x0, right) Se calcula el lmite lateral

por la derecha.

limit (f, x, x0, left)

por la izquierda

Se calcula el lmite lateral

Derivadas utilizando Matlab


Dada una funcin simblica, MATLAB nos permite encontrar la funcin derivada de cualquier
orden, y evaluarla si fuera necesario.
Esta operacin, se hace de forma simblica utilizando el comando diff(.), pero hay que
resaltar que no acta sobre funciones definidas inline, slo lo hace sobre expresiones
simblicas en s mismas.
diff (' f ', 'x', n)
syms x
diff (f , x , n)

calcula la derivada de f respecto de x de orden n, sin declaracin previa


de variables
calcula la derivada de f respecto de x de orden n, con declaracin previa
variable simblica

Integral de una funcin real utilizando Matlab


Dada una funcin simblica, MATLAB nos permite encontrar la familia de primitivas o la
integral definida, entre otras muchas utilidades que nos ofrece.
Esta operacin, se hace de forma simblica utilizando el comando int(.), pero hay que
resaltar que no acta sobre funciones definidas inline, slo lo hace sobre expresiones
simblicas en s mismas.
int (' f ', 'x', n)

calcula la

int (f, x, a, b)

calcula la

syms x , int ( f , x)

calcula la

syms x , int (f, x, a, b)

calcula la

, SIN declaracin previa de variables


, SIN declaracin previa de variables
, CON declaracin precia de la variable simblica
, CON declaracin precia de la variable simblica

Comandos Aplicados a Derivadas e Integrales


simplify(f)

Se simplifica la deriva a la mnima expresin

pretty(f)

Imprime la funcin de una forma fcil de observar

28

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Aplicaciones
1) Aplicacin de Limites

Solucin
syms x
y=(x^2-3)/(3*x^5+5*x)
l=limit(y,x,3)
l=1/124

Solucin
syms x
y=(exp(x)-1)/log10(1+x)
l=limit(y,x,0)
l=log(2)+log(5)
2) Aplicacin de Derivadas
Calcular la primera deriva de y(x)
y(x)=4.x.sen(x)
Solucin
syms x
y=4*x*sin(x)
k=diff(y)
k=4*sin(x)+4*x*cos(x)
Calcular la tercera derivada de f(x)
f(x)= 4.x.sen(x)+ln(x).x5
Solucin
syms x
F=4*x*sin(x)+log(x)*x^5
M=diff(F,3)
S=simplify(M)
pretty(M)
M =-12*sin(x)-4*x*cos(x)+47*x^2+60*log(x)*x^2
S =-12*sin(x)-4*x*cos(x)+47*x^2+60*log(x)*x^2

Solucin de otra manera


f(x)= 4.x.sen(x)+x5+ x2
Solucin
F='4*x*sin(x)+x^5+x^2'

29

Ingeniera Qumica
M=diff(F,3)
S=simplify(M)
pretty(M)
M =-12*sin(x)-4*x*cos(x)+60*x^2
S =-12*sin(x)-4*x*cos(x)+60*x^2

Calcular la tercera derivada parcial de f(x)


f(x)=4.y2.sin(x)+x5+y3*x3
Solucin
F='4*y^2*sin(x)+x^5+y^3*x^3'
M=diff(F,'x',3)
S=simplify(M)
pretty(M)
M =-4*y^2*cos(x)+60*x^2+6*y^3

3) aplicacin de integracin

Solucin
syms x
y=x/(x^2+1)
I=int(y)
pretty(I)
I=1/2*log(x^2+1)

Solucin
syms x
y=x/(x^2+1)
I=int(y,0,1)
I=1/2*log(2)

30

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera
Captulo V
DIAGRAMA DE FLUJOS

Definicin
Un Diagrama de Flujo es una representacin pictrica de los pasos en un proceso, til para
determinar cmo funciona realmente el proceso para producir un resultado. El resultado
puede ser un producto, un servicio, informacin o una combinacin de los tres. Al examinar
cmo los diferentes pasos en un proceso se relacionan entre s, se puede descubrir con
frecuencia las fuentes de problemas potenciales. Los Diagramas de Flujo se pueden aplicar a
cualquier aspecto del proceso desde el flujo de materiales hasta los pasos para hacer la venta
u ofrecer un producto. Los Diagramas de Flujo detallados describen la mayora de los pasos en
un proceso. Con frecuencia este nivel de detalle no es necesario, pero cuando se necesita, el
equipo completo normalmente desarrollar una versin de arriba hacia abajo.
Reglas Bsicas
Todos los smbolos han de estar conectados.
A un smbolo de proceso pueden llegarle varias lneas.
A un smbolo de decisin pueden llegarle varias lneas, pero slo saldrn dos.
A un smbolo de inicio nunca le llegan lneas.
De un smbolo de fin no parte ninguna lnea.
Smbolo
Imagen o figura con la que se representa un concepto. Aunque hay literalmente docenas de
smbolos especializados utilizados para hacer Diagramas de Flujos, se utiliza con ms
frecuencia los siguientes:
Smbolo

Descripcin
Inicio o fin de un diagrama

Identificacin de variables, un paso o tarea del proceso, una


descripcin breve del proceso.
Punto de verificacin o de decisin. Este diamante indica un punto
de la rama en el proceso. La descripcin est escrita dentro del
smbolo, generalmente en la forma de una pregunta. La respuesta a
la pregunta determina el camino que debe tomarse desde el smbolo
de decisin. Cada camino est identificado para que corresponda a
una respuesta.
Bucles de programacin for, while

Salida de datos por impresora

Lneas de conexin y direccin del flujo


Conexin o relacin entre partes de un diagrama

31

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
Organigrama Genrico
INICIO

ENTRADA DE
DATOS

CONDICIN

PROCESO

SALIDA DE
DATOS

FIN
Aplicacin de bifurcaciones y bucles
Determinar la velocidad a partir de la energa cintica

32

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Determinar las variables de la ecuacin de calor

Determinar de la fuerza electroesttica

33

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Captulo VI
PROGRAMACION EN MATLAB
Manejo de archivos con extensin .m:
Todos los comandos a que se refiere esta presentacin pueden utilizarse directamente desde
la lnea de comandos del MATLAB (>>). Sin embargo la idea es hacer un archivo (con extensin
.m) que contenga el programa (para poder modificarlo, revisarlo, correrlo otra vez) ya que es
ms ventajoso as. Los programas no requieren in denotacin como en los ejemplos que he
puesto aqu, sin embargo es recomendable hacerlo por claridad al intentar modificar el
programa o revisarlo.
Para trabajar estos archivos, es necesario saber:

Que es: Es un archivo de texto como cualquier otro donde se encuentra el listado
del programa. (slo que su extensin no es txt sino m)

Como crear uno: Las formas ms fciles son:

Como correrlo para obtener los resultados: Desde la lnea de comandos de MATLAB
se escribe el nombre del archivo (sin el .m)

Ficheros *.M
Los ficheros con extensin (.m) son ficheros de texto sin formato (ficheros ASCII) que
constituyen el centro de la programacin en MATLAB. Ya se han utilizado en varias ocasiones.
Estos ficheros se crean y modifican con un editor de textos cualquiera. En el caso de MATLAB
ejecutado en un PC bajo Windows, lo mejor es utilizar su propio editor de textos, que es
tambin Debugger.
Existen dos tipos de ficheros *.m, los ficheros de comandos (llamados scripts en ingls) y las
funciones. Los primeros contienen simplemente un conjunto de comandos que se ejecutan
sucesivamente cuando se teclea el nombre del fichero en la lnea de comandos de MATLAB o
se incluye dicho nombre en otro fichero *.m. Un fichero de comandos puede llamar a otros
ficheros de comandos. Si un fichero de comandos se llama desde de la lnea de comandos de
MATLAB
Programacin De Matlab Propiamente Dicho
Como ya se ha dicho varias veces incluso con algn ejemplo MATLAB es una aplicacin que se
puede programar muy fcilmente. De todas formas, como lenguaje de programacin pronto
ver que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas...). Se
comenzar viendo las bifurcaciones y bucles, y la lectura y escritura interactiva de variables,
que son los elementos bsicos de cualquier programa de una cierta complejidad.
Instrucciones de Entrada y Salida en la Programacin
x=input(mensaje)

Permite la introduccin de datos numricos por pantalla.

x=input(mensaje,*s+) Permite la introduccin de datos por pantalla. La opcin s se emplea


para leer una variable de tipo carcter (string), evitando los
apostrofes.
Ejemplos:
a=input(Numero de filas: ).
m=input(Nombre del fichero: ,s).

34

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

disp(mensaje)
disp(texto)
disp(A)
disp([A B C])

o Muestra un texto o una matriz de texto por pantalla


Muestra el valor de numrico de A
Muestra el valor de numrico de A, B y C respectivamente

Dentro de los comandos ms tiles de Matlab, similares a disp se encuentran sprintf y fprintf,
que permiten la impresin de datos con formatos ms complejos.
La forma de utilizarlos es la siguiente:
sprintf(texto %g texto2 \n, variables )
fprintf(id, texto %g texto2 \n, variables )

Cajas box
Boxtittle =('nombre de caja');
entries={'nombre de variable1', 'nombre de variable2',};
f=inputdlg(entries,boxtittle);
variable1=str2num(f{1});
variable2=str2num(f{2});

Bifurcaciones y bucles
MATLAB posee un lenguaje de programacin que como cualquier otro lenguaje dispone de
sentencias para realizar bifurcaciones y bucles. Las bifurcaciones permiten realizar una u otra
operacin segn se cumpla o no una determinada condicin. La Figura muestra tres posibles
formas de bifurcacin.

35

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Los bucles permiten repetir las mismas o anlogas operaciones sobre datos distintos.
Mientras que en C/C++/Java el "cuerpo" de estas sentencias se determinaba mediante
llaves {...}, en MATLAB se utiliza la palabra end con anloga finalidad. Existen
tambin algunas otras diferencias de sintaxis.

36

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

BIFURCACIONES
SENTENCIA IF
En su forma ms simple, la sentencia if se escribe en la forma siguiente (obsrvese que a
diferencia de C/C++/Java la condicin no va entre parntesis, aunque se pueden poner si se
desea):
if condicin
Sentencias
end
Existe tambin la bifurcacin mltiple, en la que pueden concatenarse tantas condiciones
como se desee, y que tiene la forma:
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else % opcin por defecto para cuando no se cumplan las condiciones
1,2,3
bloque4
end
Ejemplos 1: altura mxima
Diagrama de flujo

37

Ingeniera Qumica
function alturamaxima
clc,clear
boxtitle='altura maxima';
entries={'velocidad inicial','a','gravedad'};
w=inputdlg(entries,boxtitle);
v=str2num(w{1});
a=str2num(w{2});
g=str2num(w{3})
if g~=0
g=12;
xmax=(v^2)*sin(a)/g
else
xmax=(v^2)*sin(a)/g
boxtitle='altura maxima';
entries={'velocidad inicial','a','gravedad'};
w=inputdlg(entries,boxtitle);
v=str2num(w{1});
a=str2num(w{2});
g=str2num(w{3});
end
disp(xmax)
Ejemplos 1: Determinacin de radio
Diagrama de flujo

Programacin
function superficie
clc,clear
disp('El radio de una esfera')

38

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

A=input('area de la esfera A=');


Pi=3.1416;
if A<0
disp('Un area no pude ser negativa')
disp('consideraremos A=10')
A=10;
R=sqrt(A/(4*Pi));
else
R=sqrt(A/(4*Pi));
end
disp('El radio es:')
disp(R)
SENTENCIA SWITCH
La sentencia switch realiza una funcin anloga a un conjunto de if...elseif concatenados. Su
forma general es la siguiente:
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3, case_expr4,...}
bloque2
% opcin por defecto
bloque3
end
Ejemplos 1: Determinar las variables de la ecuacin de calor
Diagrama de flujo

39

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Programacin
clc,clear
disp('Qu deseas calcular?')
disp('*)Variacion de temperatura k=1')
disp('*)El valor de la masa k=2')
disp('*)Calor especifico k=3')
disp('*)Cantidad de calor k=4')
k=input('Elige cual quieres k= ');
switch k
case 1
Q=input('Cantidad de calor Q=');
m=input('Cantidad de masa m=');
Ce=input('Calor especfico Ce=');
VT=Q/(Ce*m);
disp('La variacion de temperatura es:')
disp(VT)
case 2
Q=input('Cantidad de calor Q=');
Ce=input('Calor especfico Ce=');
VT=input('Variacion de temperatura VT=');
m=Q/(Ce*VT);
disp('La cantidad de masa es:')
disp(m)
case 3
Q=input('Cantidad de calor Q=');
m=input('Cantidad de masa m=');
VT=input('Variacion de temperatura VT=');
Ce=Q/(m*VT);
disp('El calor especifico es:')
disp(Ce)
case 4
m=input('Cantidad de masa m=');
Ce=input('Calor especfico Ce=');
VT=input('Variacion de temperatura VT=');
Q=m*Ce*VT;
disp('La cantidad de calor es:')
disp(Q)
end
Ejemplos 2: Determinar las variables de la ecuacin de movimiento rectilneo uniformemente
variado
Diagrama de flujo

40

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ejemplos 2: Determinar las variables de la ecuacin de la ley de columb


Diagrama de flujo

41

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica
Programacin
clc,clear
disp('Ley de columb')
disp('Calcular la fuerza w=1')
disp('Calcular la distancia w=2')
disp('Calcula la carga uno w=3')
disp('Calcular la carga dos w=4')
w=input('Qu deseas calcular? w=');
k=9*10^9;
switch w
case 1
Q1=input('Carga uno Q1= ');
Q2=input('Carga dos Q2= ');
D=input('Distancia de separacion d= ');
F=(k*Q1*Q2)/D^2;
disp('La fuerza es: ')
disp(F)
case 2
F=input('fuerza entre cargas F= ');
Q1=input('Carga uno Q1= ');
Q2=input('Carga dos Q2= ');
D=sqrt((k*Q1*Q2)/(F));
disp('La distancia de separacin entre cargas es:')
disp(D)
case 3
F=input('fuerza entre cargas F= ');
Q2=input('Carga dos Q2= ');
D=input('Distancia de separacion d= ');
Q1=(F*(D^2))/(k*Q2);
disp('La carga uno es:')
disp(Q1)
case 4
F=input('fuerza entre cargas F= ');
Q1=input('Carga uno Q1= ');
D=input('Distancia de separacion d= ');
Q2=(F*(D^2))/(k*Q1);
disp('La carga dos es:')
disp(Q2)
end

BUCLES
SENTENCIA FOR
La sentencia for repite un conjunto de sentencias un nmero predeterminado de veces. La
sentencia for de MATLAB es muy diferente y no tiene la generalidad de la sentencia for de
C/C++/Java. La siguiente construccin ejecuta sentencias con valores de i de 1 a n, variando de
uno en uno.
for i=1:n
Sentencias
end o bien,
for i=vector Valores
Sentencias
end

42

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ejemplos 1: Determinar de la fuerza electroesttica


Diagrama de flujo

Programacin
function buclefor1
clc,clear,clf
box_tittle=('fuerza electroestatica');
entries={'ingrese q1','ingrese q2'};
f=inputdlg(entries,box_tittle);
q1=str2num(f{1});
q2=str2num(f{2});
K=9000000000;
for d=10:100;
F=(K.*q1.*q2)./(d.^2);
fprintf('"F"electrostatica=%g distancia=%g carga1=%g carga2=%g\n',F,d,q1,q2)
disp([F' d' q1' q2])
hold on
grid on
plot(F,d,'r>'),title('fuerza VS distancia');
end
Ejemplos 2: Tabla de multiplicar
Diagrama de flujo

43

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ingeniera Qumica

Programacin
function buclefor
clc,clear
boxtitle='multiplicacion';
entries={'que tabla quieres'};
M=inputdlg(entries,boxtitle);
n=str2num(M{1});
for i=0:15
m=i*n;
fprintf(1,'%g * %g = %g\n',i,n,m)
hold on
plot(i,m,'*'),xlabel('valor de los numero'),ylabel('valor del producto'),title('multiplicacion')
end
SENTENCIA WHILE
La estructura del bucle while es muy similar a la de C/C++/Java. Su sintaxis es la siguiente:
while condicin
Sentencias
end
Donde condicin puede ser una expresin vectorial o matricial. Las sentencias se siguen
ejecutando mientras haya elementos distintos de cero en condicin, es decir, mientras haya
algn o algunos elementos true. El bucle se termina cuando todos los elementos de condicin
son false (es decir, cero).

Ejemplos 1: Sumatoria de nmeros naturales


Diagrama de flujo

44

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Programacin
function bublewhile
clc,clear,clf
boxtitle='suma de impares';
entries={'cantidad de numeros a sumar'};
M=inputdlg(entries,boxtitle);
n=str2num(M{1});
sum=0;
c=0;
impar=1;
while c<n
sum=sum+impar;
impar=impar+2;
c=c+1;
fprintf(1,'%g=====%g=====%g\n',c,sum,impar)
hold on
plot(c,sum,'*'),xlabel('cantidad de numeros'),ylabel('valor de la suma'),title('suma de
numeros')
end
disp([sum])

45

Ingeniera Qumica

Ing. Henrry Ochoa Len


Especialista en Programas de Ingeniera

Ejemplos 2: Determinar las variables de la ecuacin de los gases


Diagrama de flujo

Programacin
function buclewhile1
clc,clear
disp('ecuacion de los gases')
disp('**********************')
boxtittle=('ecuacion de los gases');
entries={'ingrese el valor de la temperatura','ingrese la presion ','ingrese el numero de moles'};
f=inputdlg(entries,boxtittle);
to=str2num(f{1});
p=str2num(f{2});
n=str2num(f{3});
R=0.082;
t=to+273;
while p<=0
box_title=('Ingrese otro valor')
entries=('ing valor de p')
y=inputdlg(entries,box_title)
p=str2num(y{1})
end
V=(n*R*t)/(p);
fprintf('V=en litros=%g\n',V)
disp('*********************')

46

Вам также может понравиться