You are on page 1of 56

Universidad Autnoma de Baja California

Facultad de Ciencias Qumicas e Ingeniera

Matlab como herramienta de apoyo en la enseanza de


las matemticas
M. C. Jos Jaime Esqueda Elizondo
M. C. Marco Antonio Pinto Ramos
I. E. Pedro Adame Valdz

Agosto 2014
I. Qu es MATLAB? ........................................................................................................ 4
I.1 La ventana de comando. ................................................................................................ 5
I.2 Comandos principales ................................................................................................... 8
VI. Escalares, vectores y matrices ................................................................................. 10
II.1 Expresiones en MATLAB ......................................................................................... 11
II.1.1 Nmeros .................................................................................................................. 12
II.1.2 Variables ................................................................................................................. 12
II.1.3 Operadores .............................................................................................................. 13
II.1.4 Funciones ................................................................................................................ 13
II.1.5 Expresiones ............................................................................................................. 14
II.2 Generacin de matrices .............................................................................................. 14
II.3 Comandos save y load ............................................................................................... 16
II.3.4 Concatenacin ......................................................................................................... 17
II.3.5 Condicionales ......................................................................................................... 17
II.3.6 Ciclos ...................................................................................................................... 18
II.3.6.1 Ciclos for.......................................................................................................... 19
II.3.6.2 Ciclos while ..................................................................................................... 20
III. Graficacin en MATLAB y generacin de secuencias discretas ............................. 20
III.1 Generacin de secuencias discretas. ......................................................................... 21
III.2 Graficacin en dos dimensiones. .............................................................................. 22
III.3 Generacin de grficas en tres dimensiones ............................................................ 24
III.4 Generacin de grficas semilogartmicas y logartmicas. ........................................ 25
III.5 Graficacin de matrices como superficies ................................................................ 26
IV. Simulacin usando archivos M .............................................................................. 28
IV.1 Scripts ....................................................................................................................... 28
IV.2 Funciones ................................................................................................................. 29
V. Graficacin de objetos tridimensionales en MATLAB ................................................ 29
V.1 Rotacin de objetos en el espacio tridimensional ...................................................... 30
V.1.1 Rotor de un ventilador ........................................................................................ 31
V.1.2 Avin .................................................................................................................. 33

2
VI. INTRODUCCIN A MATEMTICAS SIMBLICAS EN MATLAB ...................... 37
VI.1 DECLARACIN DE VARIABLES.................................................................... 37
VI.2 EXPRESIONES SIMBLICAS .......................................................................... 37
VI.3 CALCULO DIFERENCIAL E INTEGRAL ....................................................... 38
VI.4 GRAFICACIN................................................................................................... 39
VI.5 FUNCIONES ESPECIALES ............................................................................... 40
VI.6 TRANSFORMADA DE LAPLACE ................................................................... 41
VI.7 CONVOLUCIN CONTINUA ........................................................................... 42
VII. Herramienta Disttool ..................................................................................................... 44
VII.1 Distribucin Binomial ......................................................................................... 45
VII.2 Funcin Densidad de Probabilidad exponencial ................................................. 47
VII.3 Funcin Densidad de Probabilidad Normal o Gaussiana.................................... 48
VIII. Solucin numrica de ecuaciones de una sola variable. ........................................... 50
VIII.1 Mtodo de Biseccin ......................................................................................... 50
VIII.2 Mtodo de Falsa Posicin .................................................................................. 52
VIII.3 Mtodo de Newton-Raphson. ............................................................................ 54
IX. Bibliografa y Referencias ........................................................................................ 56

3
I. Qu es MATLAB?
MATLAB es un lenguaje de alto desempeo diseado para realizar clculos
tcnicos. MATLAB integra el clculo, la visualizacin y la programacin en un ambiente
fcil de utilizar donde los problemas y las soluciones se expresan en una notacin
matemtica. MATLAB es un sistema interactivo cuyo elemento bsico de datos es el
arreglo que no requiere de dimensionamiento previo. Esto permite resolver muchos
problemas computacionales, especficamente aquellos que involucren vectores y matrices,
en un tiempo mucho menor al requerido para escribir un programa en un lenguaje escalar
no interactivo tal como C o Fortran.

MATLAB se utiliza ampliamente en:


Clculos numricos
Desarrollo de algoritmos
Modelado, simulacin y prueba de prototipos
Anlisis de datos, exploracin y visualizacin
Graficacin de datos con fines cientficos o de ingeniera
Desarrollo de aplicaciones que requieran de una interfaz grfica de usuario (GUI,
Graphical User Interface).

En el mbito acadmico y de investigacin, es la herramienta estndar para los cursos


introductorios y avanzados de matemticas, ingeniera e investigacin. En la industria
MATLAB es la herramienta usada para el anlisis, investigacin y desarrollo de nuevos
productos tecnolgicos.

La ventaja principal de MATLAB es el uso de familias de comandos de reas


especficas llamadas toolboxes. Lo ms importante para los usuarios de MATLAB es que
los toolboxes le permiten aprender y aplicar la teora. Los toolboxes son grupos de
comandos de MATLAB (archivos M) que extienden el ambiente de MATLAB para
resolver problemas de reas especficas de la ciencia e ingeniera. Por ejemplo, existen
toolboxes para las reas de Procesamiento Digital de Seales, Sistemas de Control, Redes
Neuronales, Lgica Difusa, Wavelets, etc.

4
I.1 La ventana de comando.
La ventana de comando es la ventana principal, con la cual el usuario interacta con
MATLAB. Es la primer ventana que se abre al ejecutar MATLAB. Se utiliza para correr
los comandos, correr el editor de archivos M (MEDIT, presente en la barra de
herramientas), ejecutar los toolboxes, etc. En la figura I.1 se muestra la ventana de comando
de Matlab y algunas otras. Esta ventana cambia de acuerdo a la configuracin que se tenga
preestablecida.

Figura I.1 La ventana principal de Matlab; a la derecha se muestra la


ventana.

La barra de herramientas proporciona un acceso fcil y rpido a las operaciones ms


comunes. Al colocar el puntero del ratn sobre algn botn durante un par de segundos,
MATLAB despliega un tooltip, el cual da el nombre del botn ha seleccionado. En la figura
I.2 se muestra la barra de herramientas y las opciones que contiene.

5
Figura I.2 La barra de herramientas y su descripcin.

A travs de la barra de mens se accede a las operaciones que no estn disponibles en la


barra de herramientas. El men principal es File, en el se encuentra la gran mayora de las
operaciones no presentes en la barra de herramientas. El la figura I.3 se muestra el men
File.

Figura I.3 El men File.

La opcin Preferences permite fijar las opciones de despliegue de los resultados y de la


forma de operacin de la ventana de comando. En la figura I.4 se muestra la ventana con la
que responde MATLAB al seleccionar la opcin Preferences.

6
Figura I.4 Ventana desplegada por la opcin Preferences.

En esta ventana se aprecian las opciones General, Command Window y Figure Copy
Template, entre otras. En la Tabla I.1 se muestran las opciones presentes y se explica su
uso.

7
Tabla I.1 Opciones de la ventana Preferences.
General Funcin
Numeric Format Determina el formato numrico por omisin dentro de las opciones
mostradas.
Editor Preference Especifica que editor de texto se usar para crear archivos M, las
opciones son: el propio de MATLAB o alguno seleccionado por el
usuario.
Help Directory Especifica el directorio donde se encuentran los archivos de ayuda
de MATLAB.
Echo On Desactiva el eco de los archivos M, es decir, no despliega mensajes.
Show Toolbar Muestra o esconde la barra de herramientas en la ventana de
comando.
Enable Graphical Al llegar a cada punto marcado (breakpoint), automticamente
Debugging muestra el Debugger.
Command Window Especifica las caractersticas del tipo de letra para el texto que se
Font despliega en la ventana de comando.
Copying Options Especifica las opciones por omisin para copiar objetos de
MATLAB al portapapeles de Windows para pasar datos o grficas a
otras aplicaciones.

I.2 Comandos principales


En la Tabla I.2 se enlistan los comandos ms comunes de la plataforma de simulacin
MATLAB. Dentro de estos comandos se encuentran aquellos que realizan bsquedas, la
ayuda en lnea, desplegar las variables presentes en el espacio de trabajo, entre otras.

8
Tabla I.2 Comandos ms comunes de MATLAB
Comando Funcin
help Ayuda en lnea. Despliega lneas de texto en la ventana de comando
conteniendo la descripcin sobre un comando especfico
helpwin Despliega una ventana con la descripcin especfica de un comando y
permite ver informacin sobre otros temas relacionados
lookfor Busca en la ayuda de todos los comandos la clave espeficada
helpdesk Realiza una bsqueda en hipertexto en un buscador Web proporcionando
un acceso directo a toda la documentacin: PDFs, informacin sobre la
solucin de problemas, etc
doc Despliega en un buscador Web la pgina de referencia para el comando
especificado, proporciona una descripcin, referencias adicionales y
ejemplos del comando especificado
figure Crea una nueva grfica
close Cierra una grfica
who Despliega las variables presentes en el espacio de trabajo
whos Despliega las variables presentes en el espacio de trabajo en extenso.
which Indica la ruta en donde se encuentra la funcin especificada
cd Cambia la ruta al subdirectorio superior
pwd Despliega la ruta en donde se encuentra el directorio de trabajo actual

9
II. Escalares, vectores y matrices

La mejor manera de familiarizarse con MATLAB consiste en aprender a manejar


las matrices. En MATLAB, una matriz es un arreglo rectangular de nmeros. Las matrices
de 1x1 se conocen como escalares, y las matrices con una sola columna o rengln se
conocen como vectores. Estas matrices y/o vectores pueden contener datos tanto numricos
como no numricos.

Los datos pueden introducirse a MATLAB de diferentes maneras:


como una lista explcita de elementos
cargando los datos de un archivo externo
generados por otras funciones
creados por archivos M creados por el usuario.
Para asignar un escalar a una variable, se introducen los datos de la siguiente forma

Ejemplo. Dar a la variable dato el valor 2001


dato = 2014
y MATLAB responde de la siguiente manera:
dato =
2014
Para introducir una matriz o un vector, se siguen los siguientes convencionalismos
separar los elementos de una columna usando espacios en blanco
usar punto y coma (;) para indicar el fin de una columna o el fin del vector
encerrar la lista de elementos con parntesis rectangulares [ ]

Ejemplo. Si se desea introducir el siguiente vector


y = {0.2944 -1.3362 0.7143 1.6236 -0.6918 0.8580}
Teclear en la lnea de comando:
y = [0.2944 -1.3362 0.7143 1.6236 -0.6918 0.8580]
y MATLAB despliega
0.2944 -1.3362 0.7143 1.6236 -0.6918 0.8580
Ejemplo. Si se desea introducir la siguiente matriz

10
16 3 2 13
5 10 11 8
A=
9 7 6 12

4 15 14 1
Respuesta. Teclear en la lnea de comando
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

MATLAB responde de la siguiente manera:


A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Una vez que se he introducido la matriz en la lnea de comando, esta permanece en


el espacio de trabajo, y para invocarla solo es necesario teclear A para referirse al arreglo de
nmeros.

II.1 Expresiones en MATLAB


MATLAB como cualquier lenguaje de programacin proporciona expresiones
matemticas, pero a diferencia de la mayora de ellos, las expresiones matemticas que
maneja involucran matrices completas.

Las expresiones se dividen en:


Nmeros
Variables
Operadores
Funciones

11
II.1.1 Nmeros
MATLAB utiliza una notacin decimal convencional con punto decimal opcional y el signo
menos para indicar nmeros negativos. La notacin cientfica utiliza la letra e para
especificar el factor de escala en potencias de 10. Los nmeros imaginarios utilizan ya sea
la i o la j como sufijo. A continuacin se presentan varios nmeros permitidos.

Ejemplo. Nmeros permitidos


3 99 0.0001
9.6397238 1.60210e20 6.02252e23
1i 3.14159j 3e5i
Todos los nmeros se almacenan internamente usando el formato long especificado por el
estndar en punto flotante IEEE. Los nmeros en punto flotante tienen una precisin finita
aproximadamente de 16 dgitos decimales y un rango finito aproximadamente de 10-308 a
10-308.

II.1.2 Variables
MATLAB, a diferencia de la mayora de los lenguajes de programacin no requiere de
ningn tipo de declaraciones de tipo de datos (entero, punto flotante, complejos, etc) ni de
dimensionamiento. Cuando MATLAB encuentra una nueva variable, automticamente crea
la variable y reserva la cantidad de localidades de memoria necesarias. Si la variable ya
exista dentro del espacio de trabajo actual, simplemente cambia el contenido, si se
requiere, o de ser necesario agrega ms localidades de memoria a la variable para contener
ms datos.

Ejemplo. Definicin de variables.


Num = 25

Esta variable crea una matriz de 1 x 1 llamada Num y almacena el valor de 25. MATLAB
es case sensitive, es decir distingue entre maysculas y minsculas; es decir A y a no son la
misma variable.

12
II.1.3 Operadores
Las expresiones utilizan los operadores aritmticos comunes. Los operadores aritmticos
son los mismos que en cualquier lenguaje de programacin y se sigue un orden de
evaluacin similar al que se utiliza en los dems lenguajes de programacin. En la Tabla
II.1 se muestran los operadores aritmticos ms comunes en MATLAB.

Tabla II.1 Operadores aritmticos usados en MATLAB


Operador Operacin matemtica
+ Suma
- Resta
* Multiplicacin
/ Divisin
^ Potencia
Transpuesta compleja conjugada
() Especifica el orden de evaluacin

II.1.4 Funciones
MATLAB proporciona un gran nmero de funciones matemticas simples y avanzadas. La
gran mayora de estas funciones acepta argumentos complejos. Las funciones ms
comunes, como sqrt y sin son parte del ncleo de MATLAB y estn programadas en bajo
nivel para hacerlas ms eficientes y no es posible acceder a su cdigo. El resto de las
funciones est programada en archivos M y su cdigo est disponible para revisiones o
modificaciones.

Muchas funciones especiales proporcionan o requieren valores de constantes tiles.


MATLAB incorpora constantes matemticas y cierta simbologa, la cual se muestra en la
Tabla II.2.

13
Tabla II.2 Constantes y simbologa incorporada en MATLAB.
Constante Significado
pi 3.14159265
i Unidad imaginaria, 1
j Igual que i
eps Precisin relativa en punto flotante, 2-52
realmin Nmero ms pequeo representable en punto flotante, 2-1022
realmax Nmero ms grande representable en punto flotante, (2-e) 21023
Inf Infinito
NaN No es un nmero

II.1.5 Expresiones
A continuacin se presentan algunos ejemplos de programacin de expresiones

Ejemplo. Calcular:

=
(1 + 5 )
2
Es necesario teclear:
rho = (1+sqrt(5))/2
rho =
1.6180

Ejemplo. Calcular 3 + 4i
a = abs(3+4i)
a =
5

II.2 Generacin de matrices


Muchos de los comandos de MATLAB permiten generar vectores o matrices de datos de
algunas caractersticas. Por ejemplo, secuencias aleatorias con cierta distribucin, escalones

14
unitarios, matrices o vectores cero, etc. En la Tabla II.3 se muestran algunos comandos que
generan matrices.

Tabla II.3 Comandos que generan matrices bsicas


Comando Funcin
Zeros Todos los elementos de la matriz son ceros
Ones Todos los elementos de la matriz son unos
Rand Genera una matriz con de elementos con distribucin uniforme
Randn Genera una matriz con elementos con distribucin normal

Ejemplo. Generar una matriz de ceros de 2 renglones por 4 columnas


Z = zeros(2,4)
Z =
0 0 0 0
0 0 0 0

Ejemplo. Generar una matriz de 3 columnas por 3 renglones con todos sus elementos igual
a 5.
F = 5*ones(3,3)
F =
5 5 5
5 5 5
5 5 5

Ejemplo. Crear un vector de 10 valores aleatorios entre 0 y 9 con distribucin normal


N = fix(10*rand(1,10))
N =
9 2 6 4 8 7 4 0 8 4

Nota: el comando fix redondea el valor al entero inferior inmediato.

15
Ejemplo. Generar una matriz de 4 x 4 con nmeros aleatorios con distribucin normal.
R = randn(4,4)

R =
-0.4326 -1.1465 0.3273 -0.5883
-1.6656 1.1909 0.1746 2.1832
0.1253 1.1892 -0.1867 -0.1364
0.2877 -0.0376 0.7258 0.1139

II.3 Comandos save y load


El comando save guarda una variable en un archivo binario de la siguiente forma:
save nombrearchivo variable(s)

Si no se especifica ninguna variable, guarda todas las variables presentes en el espacio de


trabajo. El comando save crea un archivo en formato .mat.
Por otra parte, el comando load carga un archivo en el espacio de trabajo actual de la
siguiente forma:
load nombarch.dat

El archivo carga en el espacio de trabajo todas las variables presentes al momento de


guardar el archivo. Este comando tambin puede cargar archivos de texto que contengan
nmeros (nmeros en cdigo ASCII, con extensin .dat)

Ejemplo: Generar una matriz de 4 x 4 con nmeros aleatorios con distribucin normal;
crear un archivo que la contenga y posteriormente cargarla en un espacio de trabajo vaco.
r=randn(4,4)
r =
0.4282 0.0403 -0.3775 0.1184
0.8956 0.6771 -0.2959 0.3148
0.7310 0.5689 -1.4751 1.4435
0.5779 -0.2556 -0.2340 -0.3510
save datos r
clear all
load datos.mat

16
who
Your variables are:
r
r
r =
0.4282 0.0403 -0.3775 0.1184
0.8956 0.6771 -0.2959 0.3148
0.7310 0.5689 -1.4751 1.4435
0.5779 -0.2556 -0.2340 -0.3510

II.3.4 Concatenacin
La concatenacin es el proceso de unir pequeas matrices o vectores para crear otra matriz
o vector de mayor tamao. Este proceso ya se ha usado en algunos de los ejemplos
anteriores al concatenar elementos individuales para formar vectores o matrices mediante el
operador concatenacin, formado por el par de corchetes, [].
Ejemplo. Formar dos vectores de 4 elementos y concatenarlos para formar un solo vector
de 8 elementos.
a=[1 2 3 4];
b=[5 6 7 8];
c=[a b]
c =
1 2 3 4 5 6 7 8
Ejemplo. Formar una matriz de 2 renglones por 4 columnas con los vectores a y b del
ejemplo anterior.
d=[a; b]
d =
1 2 3 4
5 6 7 8

II.3.5 Condicionales
Las instrucciones condicionales permiten ejecutar secciones de cdigo o subrutinas una vez
que se satisface cierta condicin. Dentro de este grupo de instrucciones se encuentran if,
else y elseif.

17
La instruccin if evala una expresin lgica y ejecuta un grupo de instrucciones si la
expresin es verdadera. Las instrucciones opcionales elseif y else permiten la
ejecucin de un grupo de instrucciones alternativas. La instruccin if se cierra con una
instruccin end.
La forma general de la instruccin if es:
if expresin
instrucciones
elseif
instrucciones
else
instrucciones
end

Ejemplo. El siguiente cdigo compara dos nmeros, x, y y despliega un mensaje en la


ventana de comando indicando cual es mayor.

if x>y,
disp('x es mayor a y')
elseif x<y,
disp('x es menor a y')
else
disp('x es igual a y')
end

Las tres posibilidades en este ejemplo son mutuamente exclusivas

II.3.6 Ciclos
Los ciclos son una herramienta bsica en la programacin presente en Matlab, dentro de las
instruciones relacionadas con los ciclos se encuentran: for, while, continue, break.

18
II.3.6.1 Ciclos for
Los ciclos for permiten la ejecucin de un conjunto de instrucciones o rutina un nmero
predefinido de veces. La instruccin for debe ir acompaada de una instruccin end para
delimitar las instrucciones a repetir. La sintaxis bsica para un ciclo for es la siguiente

for n=1:1:10,
x(n)=n;
end
x

donde n es la variable ndice del contador, el cual inicia en 1, se incrementa de 1 en 1 hasta


llegar al 10, de la siguente forma: indice = inicio: incremento o paso: final. Si se
omite el incremento, se asume que es de 1 en 1. Pruebe con el siguiente cdigo:

for n=1:10,
x(n)=n;
end
x

El punto y coma se utiliza para evitar que se desplieguen en pantalla los resultados. Pruebe
con el siguiente cdigo, sin el punto y coma

for n=1:1:10,
x(n)=n
end
x

Las matrices tambin pueden generarse con ciclos for anidados, como se muestra en el
siguiente cdigo:

for m=1:5,
for n=1:5,
y(m,n)= m+n;

19
end
end
y
despliega:
y =
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
6 7 8 9 10

Cuando se manejan ciclos anidados se recomienda utilizar sangra para alinear el for con el
end correspondiente.

II.3.6.2 Ciclos while


El ciclo while ejecuta una rutina mientras se cumpla una condicin. Al igual que el ciclo
for, se cierra el ciclo con un end. Como ejercicio se presenta el siguiente ejemplo:
n= 1;
while n<10
x(n)= n
n=n+1;
end

La rutina se ejecuta mientras el contador n sea menor a 10, al incumplirse esta condicin, se
termina el ciclo.

III. Graficacin en MATLAB y generacin de secuencias


discretas
MATLAB grafica directamente en una ventana diferente a la ventana de comando. Dentro de
MATLAB a esta ventana se le conoce como figura (figure). Las funciones de graficacin
automticamente crean una nueva ventana si no existe ninguna previa, de lo contrario, la ventana
designada como ventana actual es usada por MATLAB para generar la nueva grfica, borrando as la
anterior. Generalmente la ventana actual es la ltima ventana a la cual se le hizo clic con el ratn.
Para referirse a una ventana generada anteriormente solo es necesario teclear figure(x), donde x

20
representa el nmero de identificacin de la ventana presente en la parte superior de la misma. En la
Tabla III.1 se enlistan los comandos bsicos de graficacin.

Tabla III.1 Comandos bsicos de graficacin en dos y tres dimensiones.


Comando Funcin
Plot Crea una grfica bidimensional continua con escala lineal en ambos ejes
Stem Crea una grfica bidimensional muestreada con escala lineal en ambos ejes
plot3 Crea una grfica tridimensional anloga a plot
stem3 Crea una grfica tridimensional anloga a stem
Loglog Crea una grfica bidimensional continua con escalas logartmicas en ambos
ejes
Semilogx Crea una grfica bidimensional continua con escala logartmica en el eje x y
escala lineal en el eje y
Semilogy Crea una grfica bidimensional continua con escala logartmica en el eje y y
escala lineal en el eje x

Ejemplo. Generar una seal senoidal de amplitud unitaria


t=0:pi/100:2*pi;
seno2=sin(t);
figure
plot(t,seno2)

III.1 Generacin de secuencias discretas.


Una seal continua x(t) se convierte a una seal discreta x(n) de la siguiente forma:
x (t ) x ( n )
En la figura III.1 se muestra el proceso de conversin de una seal continua a una seal discreta.
1
1

0.8
0.8

0.6
0.6

0.4

0.2
t = nT 0.4

0.2

0 0

-0.2 -0.2

-0.4

-0.6
x(t) x(n) -0.4

-0.6

-0.8
-0.8

-1
0 5 10 15 20 25 30 35 -1
0 5 10 15 20 25 30 35

Figura III.1 Generacin de secuencias discretas.


1
donde T = al periodo de muestreo y f m = es la frecuencia de muestreo.
T

21
x(t ) = A cos(2 f s t )
123

x(n) = A cos(2 f s nT )

fs
x(n) = A cos(2 n)
fm
{
f

x(n) = A cos(2 f n)
123

x(n) = A cos( n)
donde:
es la frecuencia analgica en radianes/seg
fs
f = es la frecuencia normalizada f 0.5
fm

f s es la frecuencia de la seal en Hertz

= 2 f s es la frecuencia digital en radianes


= T es la frecuencia digital en radianes,

III.2 Graficacin en dos dimensiones.


Es posible generar grficas bidimensionales con los comandos plot y stem usando dos vectores con
datos, uno para el eje horizontal, x y otro para el eje vertical, y.
Estos comandos funcionan de la siguiente manera.
plot(x, y)

Ejemplo. Generar una seal senoidal de amplitud 3, a una frecuencia de 250 Hz. Usar 32 muestras y
una frecuencia de muestreo de 8 KHz. Graficar de forma continua y de forma discreta.

n=0:1:31;
xn=3*sin(2*pi*n*250/8000);
plot(n,xn); title('Grafica continua');

Con las instrucciones anteriores MATLAB genera la grfica mostrada en la figura III.2

22
Grafica continua
3

-1

-2

-3
0 5 10 15 20 25 30 35

Figura III.2. Grfica de la seal contnua usando el comando plot.

stem (n,xn)
title ('Grafica continua');

Grafica discreta
3

-1

-2

-3
0 5 10 15 20 25 30 35

Figura III.3. Grfica de la seal discreta generada con el comando stem.

Es posible graficar varias secuencias en la misma grfica usando el comando plot. Esto se muestra
en el siguiente ejemplo.

23
Ejemplo. Generar una seal cosenoidal de 23 muestras de amplitud unitaria de 250 y una seal
senoidal del mismo nmero de muestras y frecuencia. Usar una frecuencia de muestreo de 8 KHz.
n = 0:1:31;
s1 = cos(2*pi*n*250/8000);
s2 = sin(2*pi*n*250/8000);
plot(n,s1,n,s2)

En la figura III.4 se muestra el resultado de este ejercicio. El mismo procedimiento se aplica para los
dems comandos. MATLAB automticamente asigna colores diferentes para cada grfica.

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 5 10 15 20 25 30 35

Figura III.4 Graficacin de dos secuencias en la misma figura usando el comando


plot.

III.3 Generacin de grficas en tres dimensiones


La graficacin en tres dimensiones es anloga a la graficacin en dos dimensiones. Para el caso
tridimensional, se tienen los vectores x, y y z, entonces para generar la grfica solo es necesario
teclear

plot3(x,y,z)

Ejemplo. Generar una grfica tridimensional de una helicoidal.

t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)

24
axis square; grid on

El comando axis permite fijar los lmites de los ejes en una grfica y la opcin square fija las
coordenadas iguales en los tres ejes. En la figura III.5 se muestra la grfica resultante.

35

30

25

20

15

10

0
1
0.5 1
0.5
0
0
-0.5
-0.5
-1 -1

Figura III.5 Grfica helicoidal resultante.

III.4 Generacin de grficas semilogartmicas y logartmicas.


Los comandos semilogx, semilogy y loglog funcionan de manera similar al comando plot, solo que
usan una escala logartmica y una lineal para los comandos semilogx y semilogy, mientras que
loglog utiliza ambas escalas logartmicas.

Ejemplo. Graficar 100 muestras de la secuencia y = seno (0.2n) utilizando una escala horizontal
logartmica. En la figura III.6 se muestra el resultado.

n=0:1:99;
seno=sin(0.2*n);
semilogx(n,seno)

25
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 1 2
10 10 10

Figura III.6 Grfica semilogartmica de y = seno (0.2*n).

III.5 Graficacin de matrices como superficies


MATLAB define una superficie con los puntos de coordenadas sobre el eje z sobre una rejilla
rectangular sobre el plano x-y. Esta grfica se forma al unir puntos adyacentes con lneas rectas. Las
grficas de superficie son muy tiles para visualizar matrices demasiado grandes para desplegarlas
de forma numrica o graficarse en forma de funciones de dos variables. Los comandos principales
que realizan esta funcin son mesh y surf.

El comando mesh grafica mediante superficies delimitadas por lneas de color de acuerdo a la
posicin en el eje z. El comando surf funciona de manera anloga, solo que adems despliega las
caras de la superficie comprendida entre las lneas que forman la grfica en color. En la Tabla III.2
se mencionan estos comandos y otros ms.

26
Tabla III.2 Comandos de graficacin de tres dimensiones.
Comando Funcin
mesh, surf Genera grficas de superficie
contour Genera grficas de trazas de nivel
meshc, surfc Genera grficas de superficie con trazas de nivel en el plano
inferior
pcolor Genera una grfica plana de superficie en la cual el valor es
proporcional al color
surfl Genera una grfica de superficie iluminada en una direccin
especfica
surface Es una funcin de bajo nivel en la cual estn basados los
comandos anteriores (excepto contour)

Ejercicio. Utilizar el comando peaks para observar el funcionamiento de los comandos de


graficacin. El comando peaks es una funcin de dos variables resultante de desplazar y escalar
curvas de distribucin gaussiana.

27
IV. Simulacin usando archivos M

Los archivos que contienen el cdigo de la plataforma de simulacin MATLAB se llaman


archivos M. Estos archivos M pueden ser funciones que acepten argumentos de entrada y
produzcan salidas, o simplemente pueden ser scripts que ejecuten una serie de comandos de
MATLAB. Para que estos archivos sean reconocidos en MATLAB, debe usarse la extensin .m.
Estos archivos pueden crearse en cualquier editor de textos.

IV.1 Scripts
Los scripts son la clase ms simple de archivos M, no tienen argumentos de salida. Los scripts son
muy tiles para automatizar los comandos de MATLAB cuando resulta muy engorroso hacerlo
desde la lnea de comando. Los scripts operan en el espacio de trabajo existente o pueden crear
nuevas variables; es decir pueden usar cualquier variable que este presente en el espacio o crear
nuevas variables que queden disponibles al terminar de ejecutar el script para nuevos clculos.

Ejemplo. Teclee las siguientes lneas en el Editor/Debugger de MATLAB.

%Este archivo M genera grficas conocidas como ptalos de flores

clear all;
theta = pi:0.01:pi;
rho(1,:) = 2*sin(5*theta).^2;
rho(2,:) = cos(10*theta).^3;
rho(3,:) = sin(theta).^2;
rho(4,:) = 5*cos(3.5*theta).^3;
for i = 1:4
polar(theta,rho(i,:))
pause
end

Al terminar de teclear, es necesario guardar el script en un archivo M, al cual se le dar el nombre


de petalos.m. Para ejecutar las lneas de este script basta teclear petalos en la lnea de comando.
Despus que el script despliegue una grfica, presione la tecla Enter para dar paso a la nueva grfica.

28
Una vez que termine la ejecucin del archivo M, las variables, i, theta y rho permanecen en el
espacio de trabajo. Para ver las variables presentes en el espacio de trabajo, teclear who.

IV.2 Funciones
Las funciones son archivos M que aceptan argumentos de entrada y de salida. Las funciones operan
dentro de su propio espacio de trabajo, el cual generan al ejecutarse y al cual no se puede acceder
desde el espacio de trabajo de MATLAB.

Ejemplo. Teclee las siguientes lneas en el Editor/Debugger de MATLAB. Esta funcin calcula el
promedio de los elementos de un vector

function y = promedio(x)
% PROMEDIO Calcula la media de los elementos de un vector
% PROMEDIO(X), donde X es el vector, es la media de los elementos del vector
% Si la entrada no es un vector, se produce un error.
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error(Input must be a vector)
end
y = sum(x)/length(x); % Clculo del promedio

La funcin PROMEDIO acepta un vector como argumento de entrada y regresa un solo valor como
argumento de salida. Para probar la funcin, teclear las siguientes lneas.
z = 1:99;
promedio(z)
ans =
50
y = promedio(z)

V. Graficacin de objetos tridimensionales en MATLAB


La creacin de objetos tridimensionales complejos con una sola superficie o malla suele ser difcil e
ineficiente. Es ms sencillo armar un objeto usando piezas que puedan crearse fcilmente como una

29
sola superficie o malla. El conjunto de coordenadas de x, y y z para una pieza puede crearse usando
un sistema de coordenadas local. Si se desea colocar las piezas en las posiciones adecuadas, sern
necesarias operaciones de rotacin, traslacin y cambio de escala de las coordenadas de cada pieza.

V.1 Rotacin de objetos en el espacio tridimensional


Transformacin del origen. Suponga que una pieza u objeto completo se define en un sistema de
coordenadas local (x, y, z), y si el origen se traslada a (xa, ya, za), las nuevas coordenadas (x, y, z ) se
convierten en:
x = x + xa
y = y + ya
z = z + za

Cambio de escala. Si se cambia la escala en el sistema local por un factor de escala , las nuevas
coordenadas en el sistema local sern:
x = x
y = y
z = z
Rotacin alrededor del eje x. Si el sistema local gira en sentido contrario a las manecillas del reloj
grados alrededor del eje x, las nuevas coordenadas sern:
x=x
y = y cos zsen
z = ysen + z cos
Rotacin alrededor del eje y. Si el sistema local gira en sentido contrario a las manecillas del reloj
grados alrededor del eje y, las nuevas coordenadas sern:
x = zsen + x cos
y=y
z = z cos + xsen
Rotacin alrededor del eje z. Si el sistema local gira en sentido contrario a las manecillas del reloj
grados alrededor del eje z, las nuevas coordenadas sern:
x = x cos + ysen
y = xsen + y cos
z=z
Las funciones M para girar un sistema son:

30
function [xd,yd,zd]=rotx_(x,y,z,th)
cosf=cos(th*pi/180);sinf=sin(th*pi/180);
xd =x;
yd = cosf.*y - sinf.*z;
zd = sinf.*y + cosf.*z;

function [xd,yd,zd]=roty_(x,y,z,th)
cosf=cos(th*pi/180);sinf=sin(th*pi/180);
yd =y;
xd = cosf.*x + sinf.*z;
zd = - sinf.*x + cosf.*z;

function [xd,yd,zd]=rotz_(x,y,z,phi)
cosf=cos(phi*pi/180);sinf=sin(phi*pi/180);
xd = cosf *x - sinf *y;
yd = sinf *x + cosf *y;
zd =z;

V.1.1 Rotor de un ventilador


En esta seccin se presenta el cdigo para dibujar el rotor de un ventilador, el cual consiste en un eje
cilndrico y seis aspas. En el listado que se da a continuacin (fan_rot.m) se crea una malla para una
aspa mediante un arreglo de perfiles de seccin, los cuales se calculan con la funcin b_design, la
cual se presenta primero.

function [thb,zb]=b_design
minz=-0.5;
maxz=0.1;
minth=-0.4;
maxth=0.4;
r=0.4;
dth=pi/32;
th=0:dth:2*pi ;
x=r*cos(th);
y=r*sin(th).* (x+0.5).*(5-x)/15 ...

31
- (x+0.4).*(x-0.4)+ (0.6/0.8)*(x)-0.2 ;
thb=x;
zb=y;

Cdigo del archivo fan_rot.m


set(gcf, 'NumberTitle','off','Name', 'Figure B.1; fan_rot')
clear,clf
colormap jet
r=0.601:0.1:2;
imax=length(r);
dth=pi/16;
th=-2*dth:dth:2*dth;
[th,zb]=b_design;
jmax=length(th);
for i=1:imax
for j=1:jmax
x(i,j)=r(i)*cos(th(j));
y(i,j)=r(i)*sin(th(j));
z(i,j)=zb(j);
end
end
zc=z;
for i=imax-1:imax
for j=1:jmax
x(i,j)=r(imax-2)*cos(th(j));
y(i,j)=r(imax-2)*sin(th(j));
if i== imax, z(i,j)=(zb(j)+zb(jmax+1-j))*0.5;, end
zc(i,j)=1;
end
end
hold on
for k=1:6
angl=60*k;
[xb,yb,zb] = rotz_(x,y,z,angl);
mesh(xb,yb,zb, zc)
pause
end
axis([-1.5,1.5,-1.5,1.5,-1.5,1.5])
[xc,yc,zc]=cylinder(0.595,80);

32
pause
xc(2,:)=xc(1,:);
yc(2,:)=yc(1,:);
zc(1,:)=-ones(size(xc(1,:)))*0.7;
zc(2,:)=ones(size(xc(1,:)))*0.7;
colr=0.7*ones(size(zc));
mesh(xc,yc,zc, colr*0.6)
pause
mesh(xc*0.95,yc*0.95,zc, colr*0.99)
view([-100,20])

V.1.2 Avin
En el segundo ejemplo, se dibuja un avin formado por cinco piezas. Primero se crea el fuselaje con
un arreglo de crculos. Con la funcin wing_2d se crea el ala, y la cola y el estabilizador son copias
del ala principal con cambios de escala, rotacin y traslacin.

set(gcf, 'NumberTitle','off','Name', 'Figure B.3; plane_ ')


clear, clf
dth=pi/16;
fuselen=6;
thf=pi:-dth:pi/2;
xa = 0:0.5:fuselen;

xt=fuselen+0.25:0.25:fuselen+2;
dxt = 1.4/(length(xt)-0) ;
yt = -1+dxt:dxt :0.4;
length(yt);

xft=[cos(thf),xa, xt];
yft=[sin(thf)- 0.3*sin(2*thf).^4, ones(size(xa)), ones(size(yt))];
xfb=[cos(thf),xa,xt] ;
yfb=[-sin(thf),-ones(size(xa)),yt ];

k=length([thf, xa]);
yfb(k)=( yfb(k-1)+yfb(k+1))/2;
xc =(xfb+xft)/2;
yc = (yfb+yft)/2;
L=length(xc);

33
for i=1:L
if xc(i)<0
yc(i)=0;
end
end

a=0.5;
b=0.5;

dth=pi/8;

th=0:dth:2*pi;
jmax=length(th);
xr=cos(th);

yr=sin(th);
L=length(xc);

for i=1:L
xr=cos(th);
yr=sin(th);
a = (yft(i) -yc(i))/(-yfb(i) + yc(i));
b = (-yfb(i) +yc(i));
for j=1:jmax
y(i,j)=yr(j)*b+yc(i);
if th(j)<pi y(i,j)=yr(j)*b*a + yc(i); end
x(i,j)=xr(j)*b;
z(i,j)=xc(i);
end
end
mesh(z, x,y)

axis([-2 8 -6 6 -6 6])
hold on
[xw,yw,zw] = wing_;
F = 1.7;
xw=F*xw; yw=F*yw; zw=F*zw;
[x1,y1,z1] = rotz_(xw,yw,zw,-90);
[x2,y2,z2] = rotx_(xw,yw,zw,180);

34
[x2,y2,z2] = rotz_(x2,y2,z2,-270);
mesh(x1+2,y1-0.5,z1+ 0.7);
pause
mesh(x2+2,y2+0.5,z2+ 0.7);
pause
mesh(0.8*x1+6.6,0.5*z1-0,-0.3*y1+1.2)
pause
mesh(0.7*x1+6.6,0.3*y1-0.7,0.9*z1+ 0.7);
pause
mesh(0.7*x2+6.6,0.3*y2+0.7,0.9*z2+ 0.7);
pause
caxis([-3,1])

axis([-2 8 -6 6 -6 6])

title('Avin')
caxis([-2, 2])
colormap(hsv)

Cdigo de la funcin que genera la informacin de las alas.


function [zw,xw,yw] = wing_
% Genera los datos para dibujar las alas del avin
x=0:0.1:1;
n=length(x);
for k=1:30

for i=2:n-1
x(i)=0.5*x(i-1)+0.4*x(i+1);
end
end
for i=2:n
x(n+i-1)=x(n-i+1);
end
y=0.2969*sqrt(x) - 0.126*x - 0.3516*x.^2 + ...
0.2843 * x.^3 - 0.1015*x.^4;
for i=n+1:length(y)
y(i)=-y(i);
end

35
%axis([-0.5, 1.5 ,-1 1])
%plot(x,y)
jmax=15;
for j=1:jmax
for i=1:2*n-1

xw(i,j)=x(i);
yw(i,j)=y(i);
zw(i,j)=0.3*(j-1);
end

end
yw(:,jmax)=zeros(size(yw(:,jmax)));
zw(:,jmax)=zw(:,jmax-1);

%mesh(zw,xw,yw)
%axis([0,2,0,2,-1,1])

36
VI. INTRODUCCIN A MATEMTICAS SIMBLICAS
EN MATLAB

Matlab cuenta con una librera dedicada al desarrollo de expresiones simblicas llamada Symbolic
Math Toolbox la cual permite la elaboracin de expresiones ambiguas, similares a las que
normalmente se utilizan en la enseanza de matemticas e ingeniera. Adems, nos permite realizar
operaciones matemticas con ellas (o entre ellas), las cuales van desde simple aritmtica (suma,
resta, multiplicacin, etc.), hasta algebra, clculo y transformadas, similares a las que se estudian en
el mbito de Seales y Sistemas.

VI.1 DECLARACIN DE VARIABLES


La declaracin de variables simblicas se realiza usando la funcin sym:
>> x = sym (x);

Esto nos dar como resultado, una variable simblica x.

Existe un formato corto para la declaracin de variables. Para esto se utiliza la variacin syms:
>> syms x;

Esto nos dar el mismo resultado que la declaracin anterior. La funcin syms incluso permite
declarar varias variables de forma simultnea:
>> syms x y z;

VI.2 EXPRESIONES SIMBLICAS


Existen dos maneras para la elaboracin de expresiones simblicas:

1) Sin declarar variables


Se puede formar una expresin simblica utilizando la funcin sym, sin antes haber declarado las
variables que la conforman, por ejemplo:
>> g = sym(sin(y));

2) Con variables declaradas


Con una variable declarada anteriormente, se pueden formar tambin expresiones simblicas:
>> syms y;
>> g = sin(y);

37
En ambos casos, la expresin resultante ser la misma. Tambin se pueden incluir constantes u otras
variables simblicas en la expresin, por ejemplo:
>> g = sym(sin(2*pi*f*y));

VI.3 CALCULO DIFERENCIAL E INTEGRAL


El Symbolic Math Toolbox nos permite calcular derivadas e integrales de expresiones simblicas y
obtener el resultado de la misma manera:

1) Derivacin
El comando diff puede calcular la derivada de una expresin simblica. Ejemplo:
>> syms x;
>> y = x^3
y = x^3
>> dy = diff(y)
dy = 3*x^2

En el caso de que la expresin contenga ms de una variable simblica, se debe de indicar con
respecto de cual variable se realizar la derivacin. Ejemplo:
>> syms A x;
>> y = A*x^3
y = A*x^3

Derivacin con respecto de x


>> dy = diff(y,x)
dy = 3*A*x^2

Derivacin con respecto de A


>> dy = diff(y,A)
dy = x^3

2) Integracin
El comando int calcula la integral de una expresin simblica. Ejemplo:
>> sym x;
>> y = sin(x)
y = sin(x)
>> dy = int(y);
dy = -cos(x)

Igual que en el caso de la derivacin, cuando la expresin contiene varias variables, se debe
de indicar con respecto de cul de ellas se integrar:
>> sym A x;
>> y = A*sin(x)
y = sin(x)

38
Integracin con respecto de x
>> dy = int(y,x);
dy = -A*cos(x)

Integracin con respecto de A


>> dy = int(y,A);
dy = (A^2*sin(x))/2

VI.4 GRAFICACIN
Para graficar expresiones simblicas, normalmente se utilizara la funcin ezplot. En la
figura IV.1 se muestra el resultado de graficar una senoidal simblica.
>> sym t;
>> y = sin(t)
y = sin(t)
>> ezplot(y);
sin(t)

0.5

-0.5

-1

-6 -4 -2 0 2 4 6
t

Figura VI.1 Senoidal simblica graficada.

Por defecto, ezplot le otorga valores a la variable independiente en un rango de -2 hasta


2. Si se desea graficar en un intervalo diferente, este se debe de especificar. Al teclear:
>> ezplot(y,[0,6*pi]);
Se obtiene la grfica mostrada en la figura IV.2
sin(t)

0.5

-0.5

-1

0 2 4 6 8 10 12 14 16 18
t

Figura VI.2 Senoidal simblica en el intervalo de 0 a 6.

39
Esto graficar la expresin en el intervalo de 0 (valor mnimo) hasta 6 (valor mximo).

Ejercicio
Graficar una suma de senoides y(t) = 3 sin(2t) + 5 sin(3.5t)

VI.5 FUNCIONES ESPECIALES


El Symbolic Math Toolbox incluye funciones para representar seales especiales, como son
la el escaln y el impulso.

1) Funcin escaln
En Matlab, la funcin heaviside nos permite obtener una representacin simblica del
escaln unitario tecleando lo siguiente (ver la figura VI.3):
>> syms t;
>> u=heaviside(t);
>> ezplot(u,[-2 10]);
heaviside(t)

0.8

0.6

0.4

0.2

-2 0 2 4 6 8 10
t

Figura VI.3 Escaln unitario obtenido

En el programa anterior, se guarda la funcin u(t) en u y se grafica utilizando ezplot en un


rango de -2 a 10.

2) Funcin impulso
Otra funcin utilizada en el estudio de seales y sistemas es el impulso unitario. En Matlab
este se representa con la funcin dirac, tal como se muestra a continuacin y en la figura
IV.4:
>> syms t;
>> d=dirac(t);
>> ezplot(d)

40
dirac(t)
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-6 -4 -2 0 2 4 6
t

Figura VI.4 Grfica del impulso obtenido simblicamente

En este caso, si graficamos la funcin dirac (ver figura VI.4), no se podr apreciar el
impulso debido a que su duracin es prcticamente nula. Sin embargo, su utilizacin es
necesaria al momento de conocer la respuesta de sistemas mediante la convolucin.

VI.6 TRANSFORMADA DE LAPLACE


Este Toolbox tambin permite la solucin simblica de transformadas comunes, como lo es
la transformada de Laplace

1) Transformada de Laplace
El comando laplace nos permite obtener la transformada de Laplace de una expresin
simblica. Ejemplo:

Se desea conocer la transformada de Laplace de la siguiente funcin:

>> syms a t;
>> y=exp(-a*t)*heaviside(t);
>> Y=laplace(y)
Y = 1/(a + s)

Con el cdigo anterior, se obtiene que la transformada de Laplace de la funcin en tiempo


mostrada es:

2) Transformada inversa de Laplace


De igual manera, el comando ilaplace nos permite calcular la transformada inversa
simblica de una expresin. Ejemplo:

41
>> syms a s;
>> Y = 1/(s+a);
>> y = ilaplace(Y)
y = 1/exp(a*t)

Se obtiene que la transformada inversa de la expresin inicial es:

VI.7 CONVOLUCIN CONTINUA


Aunque la Symbolic Math Toolbox no incluye en s misma una funcin para realizar la
convolucin entre seales, esta se puede realizar las propiedades de la convolucin en el
dominio s.

Por definicin, la convolucin continua se expresa de la siguiente manera:

Utilizando las propiedades de la transformada de Laplace, estas nos dicen que la


convolucin en tiempo se convierte en una multiplicacin en el dominio s:

Entonces, si se transforman las seales del dominio del tiempo al dominio s utilizando
Laplace, se realiza la multiplicacin para obtener Y(s), y se antitransforma, se obtendr la
seal y(t) que es el resultado de la convolucin. Ejemplo:

Se desea obtener la convolucin entre las siguientes seales:


x(t) = u(t) - u(t-2)
h(t) = u(t-1) u(t-3)

Estas son declaradas en Matlab de la siguiente manera:


>> syms t;
>> x = heaviside(t) - heaviside(t-2);
>> h = heaviside(t-1) - heaviside(t-3);

A continuacin, estas se transforman al dominio s con la funcin Laplace:

42
>> X = laplace(x);
>> H = laplace(h);

Despus se realiza la multiplicacin para obtener Y(s):


>> Y = X*H;

Finalmente se antitransforma con ilaplace y se observa el resultado


>> y = ilaplace(Y)
y = heaviside(t - 1)*(t - 1) - 2*heaviside(t -
3)*(t - 3) + heaviside(t - 5)*(t - 5)

Por lo tanto, el resultado de la convolucin de las seales x(t) y h(t) para este ejemplo, en
notacin comn, es:

Si se desea observar la seal obtenida, se grafica con el comando ezplot y que se muestra en
la figura VI.5:
>> ezplot(y)

heaviside(t - 1) (t - 1) -...+ heaviside(t - 5) (t - 5)

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

1 1.5 2 2.5 3 3.5 4 4.5 5


t

Figura VI.5 Resultado de la convolucin

En la figura VI.5, se observa el resultado grafico de la convolucin entre las seales


involucradas. Si se desea observar la seal en un intervalo ms amplio, solamente es
necesario indicar los lmites para el eje x, como se indica en la seccin de graficacin de
este documento.

Ejercicio. Obtener la convolucin de f(t) con h(t) si f(t) = t y h(t) = 5 sen(t).

Ejercicio. Obtener la convolucin grfica de f(t) con h(t), las cuales se muestran en la
figura VI.6.

43
h(t)

1 2 3

Figura VI.6 Funciones f(t) y h(t)

VII. Herramienta Disttool


Disttool (Probability Distribution Function Tool) es una herramienta para analizar
Funciones de Distribucin de Probabilidad perteneciente a la plataforma de simulacin
Matlab. Dicha herramienta consiste en una interfaz grfica, tal como se muestra en la figura
3, la cual permite ver la grfica de las FDPs, tanto de forma acumulativa (CDF
seleccionado en la casilla Function type) como en un punto particular (PDF seleccionado
en la casilla Function type). Esta interfaz permite que el usuario cambie los parmetros para
cada FDP con valores que algunas veces no est contemplados en las Tablas de FDP
tradicionales. En la Figura VII.1 se muestra el caso de la FDP Normal (que es el caso en el
que inicia la interfaz), con parmetros , correspondiente a la casilla Mu y ,

correspondiente a la casilla Sigma y se observa que dichos parmetros pueden modificarse


ya sea a travs de la caja de texto o a travs de la barra deslizante, para variarlos poco a
poco y ver su comportamiento en la grfica. En este caso, la probabilidad que existe de

a se muestra en la caja Probability.

44
Figura VII.1 Interfaz grfica de Disttool

VII.1 Distribucin Binomial


En la Figura VII.2 se muestra la configuracin de la interfaz grfica para el caso de una
distribucin binomial con parmetros n = 10 y p = 0.5, es decir B(5,10,0.5). En la casilla
Trials se introduce el valor del nmero de experimentos a ejecutar, en este caso 10 y la
probabilidad de xito p = 0.5 se introduce en la casilla Prob. La probabilidad
correspondiente a se calcula y despliega en la casilla

Probability, que en este caso corresponde a 0.62305. Cuando en la interfaz se tiene


seleccionada la opcin CDF en Function type, se obtienen los valores de las Tablas de
Distribucin de Probabilidad tradicionales.

Figura VII.2. Interfaz grfica para una distribucin Binomial acumulada con n = 10 y p =
0.5.

45
En la Figura VII.3 se muestra en la interfaz grfica el valor de la probabilidad para tener
exactamente 5 xitos una distribucin Binomial de 10 experimentos y se observa que
. Cambiando el valor de la casilla X, se puede obtener el valor

de correspondiente. Esta interfaz muestra el resultado de programar la ecuacin para

la distribucin Binomial:

Figura VII.3. Interfaz grfica para una distribucin Binomial con n = 10 y p = 0.5.

Si se desea obtener la probabilidad en un intervalo, por ejemplo en una

Distribucin Binomial con los mismos parmetros del caso anterior, se puede resolver de la
siguiente forma . Esto se puede resolver con la interfaz grfica de la

forma que se muestra en la Figura VII.4. De ah se observa que:

Al analizar la Figura VII.4, se puede observar que el resultado se obtiene de restar del rea
menor al rea mayor . En la prctica se ha observado que los alumnos

dudan a qu probabilidad se le resta qu probabilidad para obtener la probabilidad de un


intervalo. De esta forma, los alumnos pueden ver las reas referidas a cada probabilidad y

46
poder determinar que siempre al rea mayor se le va a restar el rea menor para poder
calcular la probabilidad en un intervalo. Esto es til en lo que el alumno se familiariza con
el uso de las Tablas de FDPs.

Figura VII.4. Clculo de la

VII.2 Funcin Densidad de Probabilidad exponencial


Como ejemplo para las FDPs continuas, se utiliza el siguiente ejercicio de distribucin
exponencial, el cual implica que se lleve a cabo una integracin:

Suponga que el tiempo de respuesta X en cierta terminal de computadora en lnea (el


tiempo transcurrido entre el fin de la consulta del usuario y el principio de la respuesta del
sistema a esa consulta) tiene una distribucin exponencial con tiempo esperado de respuesta
igual a 5 segundos. Cul es la probabilidad de que el tiempo de respuesta sea cuando
mucho de 10 segundos?

En este caso, , para y se desea hallar y aplicando la definicin

de la FDP exponencial se puede obtener de:


.

En la Figura VII.5 se muestra cmo se puede resolver este problema mediante la interfaz
grfica. Se introduce el parmetro de la media poblacional en la casilla Mu, en este caso la
media es de 5, en la casilla X se introduce el valor de 10 y en la casilla Probability se
despliega el resultado, en este caso 0.86466.

47
Figura VII.5. Obtencin del valor de en Distribucin Exponencial con media 5.

Por otra parte, si el problema pidiera la probabilidad de que el tiempo de respuesta sea de al
menos 10 segundos, es decir . Esto

porque la interfaz solo da probabilidades menores o iguales a x, es decir no calcula


probabilidades mayores o iguales a x de forma directa. Si se aplica la definicin, se hubiera
tenido que resolver:

VII.3 Funcin Densidad de Probabilidad Normal o Gaussiana


En el caso de la FDP Normal o Gaussiana, la interfaz automticamente hace el proceso de
la normalizacin de la variable, ya que se le introducen los parmetros de media y
desviacin estndar de la variable a normalizar. En el siguiente ejercicio se ilustra el
proceso:

Suponga una variable aleatoria con distribucin normal con media igual a 10 y variancia
igual a 2.1. Calcular:
a) la probabilidad de que la variable aleatoria x sea mayor que 11.
b) la probabilidad de la variable aleatoria x est entre 7.6 y 12.2

Dado que la interfaz requiere el parmetro de desviacin estndar, es necesario calcularlo a


partir de la variancia, es decir , el cual se introduce en la casilla Sigma,

mientras que en la casilla Mu se introduce el valor de 10. Para a), se pone en la casilla X el

48
valor de 11 y se sabe que , dado que los valores tabulados solo

se calculan para probabilidades menores a x. Este proceso se muestra en la Figura VII.6 y


se observa que , por lo que

Figura VII.6. Obtencin de con N(10,2.1).

Para b) se tiene que: , lo cual se resuelve tal

como se muestra en la Figura VII.7. De la Figura VII.7, se observa que


y que , por lo que

. Otra vez al rea mayor se le rest el

rea menor.

49
Figura VII.7. Obtencin de con N(10,2.1).

VIII. Solucin numrica de ecuaciones de una sola


variable.
Las soluciones de una ecuacin f ( x) = 0 , se llaman ceros o races de f (x) . En algunos
casos las races pueden ser obtenidas con mtodos directos como por ejemplo para una
ecuacin cuadrtica se utiliza formula general. Aunque existen ecuaciones que no pueden
se pueden resolver directamente, por ejemplo una funcin tan simple tal como
f ( x) = e x x . Para estos casos, la nica alternativa es una tcnica de solucin numrica

VIII.1 Mtodo de Biseccin


Este mtodo consiste en encerrar una raz entre un intervalo en el cul la funcin debe
cruzar al eje horizontal, e ir dividiendo el internalo a la mitad hasta encontrar la mejor
aproximacin, tal como se muestra en la figura VIII.1.

35

30

25

20
xi + xu
15 xr =
2
10

0
4 6 8 10 12 14 16 18 20 22
-5
xi xr xu
xi xr xu
-10
xi xu
-15

Figura VIII.1 Mtodo de Biseccin


El algoritmo se describe como sigue:
1.- Elegir lmites superior xu e inferior xi

xi + xu
2.- Obtener la nueva aproximacin a la raz xr =
2

50
3.- Si f ( xi ) f ( xr ) < 0 , entonces xi = xi y xu = xr
Si no
Si f ( xu ) f ( xr ) < 0 , entonces xi = xr y xu = xu

4.- Si f ( xu ) f ( xr ) = 0 , la raz es igual a xr ; termina el calculo

Ejemplo:
Resolviendo el ejemplo anterior utilizando el mtodo de biseccin con
xi = 12 y xu = 16 se tiene:

gm
ct
f (c ) = 1 e m v
c

i xi xu xr f ( xi ) f ( xu ) f ( xr ) er
1 12.0000000 16.0000000 14.0000000 6.1139431 -2.2302607 1.6111164 -
2 14.0000000 16.0000000 15.0000000 1.6111164 -2.2302607 -0.3844581 6.6666667
3 14.0000000 15.0000000 14.5000000 1.6111164 -0.3844581 0.5936984 3.4482759
4 14.5000000 15.0000000 14.7500000 0.5936984 -0.3844581 0.0998300 1.6949153
5 14.7500000 15.0000000 14.8750000 0.0998300 -0.3844581 -0.1434972 0.8403361
6 14.7500000 14.8750000 14.8125000 0.0998300 -0.1434972 -0.0221312 0.4219409
7 14.7500000 14.8125000 14.7812500 0.0998300 -0.0221312 0.0387748 0.2114165
8 14.7812500 14.8125000 14.7968750 0.0387748 -0.0221312 0.0083032 0.1055966
9 14.7968750 14.8125000 14.8046875 0.0083032 -0.0221312 -0.0069187 0.0527704

1a iteracin 2 a iteracin
xi + xu 12 + 16 xi + xu 14 + 16
xr = = = 14 xr = = = 15
2 2 2 2
gm gm
ct ct
f (12) = 1 e m v = 6.1139431 f (14) = 1 e m v = 1.6111164
c
c
gm gm
ct ct
f (16) = 1 e m v = -2.2302607 f (16) = 1 e m v = -2.2302607
c c

gm
ct
gm
ct
f (14) = 1 e m v = 1.6111164 f (15) = m
c
c 1 e v = -0.3844581

51
15 14
er = *100 = 6.6666667
15

3 a iteracin 4 a iteracin
xi + xu 14 + 15 xi + xu 14.5 + 15
xr = = = 14.5 xr = = = 14.75
2 2 2 2

gm gm
ct ct

f (14) = 1 e m v = 1.6111164 f (14.5) = 1 e m v = 0.5936984


c
c

gm gm
ct ct

f (15) = 1 e m v = -0.3844581 f (15) = 1 e m v = -0.3844581


c c

gm gm
ct ct

f (14.5) = 1 e m v = 0.5936984 f (14.75) = 1 e m v = 0.0998300


c c
14.5 15 14.75 14.5
er = *100 = 3.4482759 er = * 100 = 1.6949153
14.5 14.75
VIII.2 Mtodo de Falsa Posicin
Un defecto del mtodo de biseccin es que al dividir el intervalo de xi a xu en mitades, no se

considera la magnitud de f ( xi ) y de f ( xu ) .Por ejemplo, si f ( xi ) esta ms cercano a 0 que

f ( xu ) , es lgico pensar que la raz se encuentra ms cerca de xi que de xu . El mtodo de

falsa posicin aprovecha la visualizacin grfica de unir f ( xi ) y f ( xu ) con una recta,

donde la interseccin de esta recta con el eje x representa una mejor estimacin a la raz,
tal como se muestra en la figura VIII.2.

f ( xu )( xi xu )
xr = xu
f ( xi ) f ( xi ) f ( xu )

xr xu
0
xi

f ( xu )

Figura VIII.2 Mtodo de Falsa Posicin

52
De la grfica se observan tringulos semejantes
f ( xi ) f ( xu )
=
xr xi xr xu

de la ecuacin anterior despejamos xr y se obtiene:


f ( xu )( xi xu )
xr = xu
f ( xi ) f ( xu )
El algoritmo es igual al del mtodo de biseccin, lo nico que cambia es la ecuacin para
xr

Ejemplo
Utilizando el mtodo de la falsa posicin para determinar la raz de la ecuacin del
ejemplo anterior con xi = 12 y xu = 16 se tiene:

i xi xu xr f ( xi ) f ( xu ) f ( xr ) er
1 12.0000000 16.0000000 14.9308695 6.1139431 -2.2302607 -0.2514869 -
2 12.0000000 14.9308695 14.8150760 6.1139431 -0.2514869 -0.0271452 0.7815922
3 12.0000000 14.8150760 14.8026327 6.1139431 -0.0271452 -0.0029159 0.0840618
4 12.0000000 14.8026327 14.8012966 6.1139431 -0.0029159 -0.0003131 0.0090264
5 12.0000000 14.8012966 14.8011532 6.1139431 -0.0003131 -0.0000336 0.0009691
6 12.0000000 14.8011532 14.8011378 6.1139431 -0.0000336 -0.0000036 0.0001040
7 12.0000000 14.8011378 14.8011361 6.1139431 -0.0000036 -0.0000004 0.0000112
8 12.0000000 14.8011361 14.8011360 6.1139431 -0.0000004 0.0000000 0.0000012
9 12.0000000 14.8011360 14.8011359 6.1139431 0.0000000 0.0000000 0.0000001
10 12.0000000 14.8011359 14.8011359 6.1139431 0.0000000 0.0000000 0.0000000

1a iteracin 2 a iteracin

gm gm
ct ct

f (12) = 1 e m v = 6.1139 f (12) = 1 e m v = 6.1139


c c

gm gm
ct ct

f (16) = 1 e m v = -2.2302 f (14.9308) = 1 e m


v = -0.2514
c
c

53
(-2.2302)(12 16) (-0.2514)(12 14.9308)
xr = 16 = 14.9308 x r = 14.9308 = 14.8150
(-2.2302) (6.1139) (6.1139) (-0.2514)

gm gm
ct ct

f (14.9308) = m f (14.8150) = 1 e m v = -0.0271


c 1 e v = -0.2514 c

14.8150 14.9308
er = * 100 = 0.7815
14.8150

3 a iteracin 4 a iteracin

gm gm
ct ct

f (12) = 1 e m v = 6.1139 f (12) = 1 e m v = 6.1139


c c

gm gm
ct ct
m m
f (14.8150) = f (14.8026) = v = -0.0029
v = -0.0271
1 e 1 e
c c

(-0.0271)(12 14.8150) (-0.0029)(12 14.8026)
x r = 14.8150 = 14.8026 x r = 14.8026 = 14.8012
(6.1139) (-0.0271) (6.1139) (-0.0029)

gm gm
ct ct

f (14.8026) = m f (14.8012) = 1 e m v = -0.0003


c
1 e v = -0.0029 c

14.8026 14.8150 14.8012 14.8026
er = * 100 = 0.0840 er = * 100 = 0.0090
14.8026 14.8012

VIII.3 Mtodo de Newton-Raphson.


Los mtodos de Biseccin y Falsa posicin son llamados mtodos por intervalos en
los cuales los valores iniciales deben encerrar a la raz deseada. Los mtodos siguientes son
llamados mtodos de intervalo abierto dado que las condiciones iniciales no necesariamente
tienen que contener a la raz.
Si el valor inicial de la raz es xi , entonces se puede trazar una tangente del punto f ( xi ) ; el

punto donde esta tangente cruza al eje x representa una aproximacin de la raz, tal como se
muestra en la figura VIII.3.

54
f (x)
f ' ( xi )
f (xi )
f ( xi )
xi +1 = xi
f ' ( xi )

0
xi xi +1 x

Figura VIII.3 Mtodo de Newton Raphson

Si la pendiente en un punto dado le llamamos primera derivada de la funcin f ' ( x) y la

y 2 y1
pendiente de una recta es m = podemos tener que:
x 2 x1

y 2 y1 f ( xi )
f ' ( x) = m = =
x 2 x1 xi xi +1

Despejando xi +1 tenemos la ecuacin de Newton-Raphson

f ( xi )
xi +1 = xi
f ' ( xi )

55
IX. Bibliografa y Referencias

[1] J. Garca Lpez, Manual de simulaciones usando la plataforma de simulacin


MATLAB (manual que forma parte del Mdulo para desarrollo de prcticas de
Procesamiento Digital de Seales, proyecto de investigacin del CITEDI-IPN), CITEDI-
IPN, Departamento de Posgrado, 1999-2000.

[2] J. Garca Lpez, Procesamiento Digital de Seales, (libro en proceso de publicacin


por el Fondo de Cultura Econmica, Coleccin Ciencias de la Computacin), CITEDI-IPN,
Departamento de Posgrado, 1999.

[3] The MathWorks Inc., Getting Started with MATLAB Version 5.x

[4] The MathWorks Inc., Using MATLAB Version 5.x

[5] The MathWorks Inc., Using MATLAB Graphics Version 5.x

[6] The MathWorks Inc., Manuales de las siguientes herramientas (toolboxes): Control,
Fuzzy Logic, Signal Processing, Data Acquisition, Building GUIs in Matlab.

[7] Escuela Superior de Ingenieros Industriales Universidad de Navarra, Aprenda Matlab.

[8] Nakamura, Shoichiro, Anlisis numrico y visualizacin grfica con Matlab, Pearson
Educacin

56

You might also like