Professional Documents
Culture Documents
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.
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.
5
Figura I.2 La barra de herramientas y su descripcin.
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.
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
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]
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.
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.
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.
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.
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
14
unitarios, matrices o vectores cero, etc. En la Tabla II.3 se muestran algunos comandos que
generan matrices.
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
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
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
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
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
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.
La rutina se ejecuta mientras el contador n sea menor a 10, al incumplirse esta condicin, se
termina el ciclo.
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.
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
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
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
stem (n,xn)
title ('Grafica continua');
Grafica discreta
3
-1
-2
-3
0 5 10 15 20 25 30 35
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
plot3(x,y,z)
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
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
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)
27
IV. Simulacin usando archivos M
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.
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
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)
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.
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;
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;
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.
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)
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.
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;
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));
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
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)
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
0.5
-0.5
-1
0 2 4 6 8 10 12 14 16 18
t
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)
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
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
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.
1) Transformada de Laplace
El comando laplace nos permite obtener la transformada de Laplace de una expresin
simblica. Ejemplo:
>> syms a t;
>> y=exp(-a*t)*heaviside(t);
>> Y=laplace(y)
Y = 1/(a + s)
41
>> syms a s;
>> Y = 1/(s+a);
>> y = ilaplace(Y)
y = 1/exp(a*t)
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:
42
>> X = laplace(x);
>> H = laplace(h);
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)
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
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
44
Figura VII.1 Interfaz grfica de Disttool
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
la distribucin Binomial:
Figura VII.3. Interfaz grfica para una distribucin Binomial con n = 10 y p = 0.5.
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
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
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.
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
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
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
rea menor.
49
Figura VII.7. Obtencin de con N(10,2.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
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
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
gm gm
ct ct
gm gm
ct ct
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 )
52
De la grfica se observan tringulos semejantes
f ( xi ) f ( xu )
=
xr xi xr xu
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
gm gm
ct ct
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
3 a iteracin 4 a iteracin
gm gm
ct ct
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
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
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
f ( xi )
xi +1 = xi
f ' ( xi )
55
IX. Bibliografa y Referencias
[3] The MathWorks Inc., Getting Started with MATLAB Version 5.x
[6] The MathWorks Inc., Manuales de las siguientes herramientas (toolboxes): Control,
Fuzzy Logic, Signal Processing, Data Acquisition, Building GUIs in Matlab.
[8] Nakamura, Shoichiro, Anlisis numrico y visualizacin grfica con Matlab, Pearson
Educacin
56