Professional Documents
Culture Documents
Matemtica IV
ORIGEN
MATLAB nace como una solucin a la necesidad de mejores y ms poderosas herramientas de
calculo para resolver problemas de calculo complejos en los que es necesario aprovechar las
amplias capacidades de proceso de datos de grandes computadores.
El nombre MATLAB viene de "matrix laboratory" (laboratorio matricial). MATLAB fue originalmente
escrito para proveer acceso fcil al software matricial desarrollado por los proyectos LINPACK y
EISPACK, que juntos representan el estado del arte y software para computacin matricial. Hoy
MATLAB es usado en una variedad de reas de aplicacin incluyendo procesamiento de seales e
imgenes, diseo de sistemas de control, ingeniera financiera e investigacin mdica. La
arquitectura abierta facilita usar MATLAB y los productos que lo acompaan para explorar datos y
crear herramientas personalizadas que proveen visiones profundas tempranas y ventajas
competitivas.
INTRODUCCIN
MATLAB es un entorno de computacin y desarrollo de aplicaciones totalmente integrado orientado
para llevar a cabo proyectos en donde se encuentren implicados elevados clculos matemticos y la
visualizacin grfica de los mismos. MATLAB integra anlisis numrico, clculo matricial, proceso de
seal y visualizacin grfica en un entorno completo donde los problemas y sus soluciones son
expresados del mismo modo en que se escribiran tradicionalmente, sin necesidad de hacer uso de
la programacin tradicional.
MATLAB dispone tambin en la actualidad de un amplio abanico de programas de apoyo
especializado, denominado Toolboxes, que extienden significativamente el nmero de funciones
incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad prcticamente casi
todas las reas principales en el mundo de la ingeniera y la simulacin, destacando entre ellos el
'toolbox' de proceso de imgenes, seal, control robusto, estadstica, anlisis financiero, matemticas
simblicas, redes neurales, lgica difusa, identificacin de sistemas, simulacin de sistemas
dinmicos, etc. es un entorno de clculo tcnico, que se ha convertido en estndar de la industria,
con capacidades no superadas en computacin y visualizacin numrica.
De forma coherente y sin ningn tipo de fisuras, integra los requisitos claves de un sistema de
computacin tcnico: clculo numrico, grficos, herramientas para aplicaciones especficas y
capacidad de ejecucin en mltiples plataformas. Esta familia de productos proporciona al estudiante
un medio de carcter nico, para resolver los problemas ms complejos y difciles
1 ENTRANDO A MATLAB
Una sesin en MATLAB en el ambiente Windows se puede iniciar seleccionando con el Mouse el
icono de MATLAB y haciendo clic dos veces en el icono.
Cuando MATLAB es cargado, aparece una ventana de comandos de MATLAB (Command
Windows), y se exhibe un smbolo (>>) llamado prompt.
En la primera vez es recomendable ejecutar los comandos
>> demo
>> expo
Ingeniera Civil
Matemtica IV
2 CARACTERISTICAS BASICAS
2.1 MATEMATICA SENCILLA
MATLAB ofrece las siguientes operaciones bsicas:
OPERACIN
Suma, a+b
Resta, a-b
Multiplicacin, a*b
Divisin, a/b
Potencia, a^b
SIMBOLO
+
*
/
^
Observacin
El trmino que aparece al final de un resultado, ejemplo 3.148702 e2, significa que
el nmero 3.148702 es multiplicado por diez al cuadrado, y si por ejemplo se tiene
1.5768 e-2, nos dice que es multiplicado por diez a la menos dos.
2.2 VARIABLES
Por defecto, MATLAB almacena los resultados en la variable ans.
Las variables pueden contener hasta 19 caracteres. Deben comenzar con una letra.
MATLAB diferencia a la Mayscula de la Minscula.
El punto y coma al final de una lnea le dice a MATLAB que evalu la lnea, pero que no
nos diga la respuesta. Si se quiere ver el resultado se escribe el nombre de la variable.
EJERCICIOS
Mostrar los valores de las siguientes variables:
(a) var=0.475 x 837.2
(b) x1=-4.078 x 3.75
(c) mat= 3 x (5.78/6)
(d) yy=8/5 3.9^2
(e) ric=x1 x mat
(f) te=var yy
(g) total= te/mat
(h) result=
mat var
(i) 5 x (8.497)/2
Lic. Ana Gamarra Carrasco
Ingeniera Civil
Matemtica IV
Valor
ans
pi
eps
inf
NaN
iyj
realmin
realmax
OPER
format short
1.3333
format short e
1.3333e+000
format long
16 dgitos
1.33333333333333
format long e
format hex
Hexadecimal
3ff5555555555555
format rat
Aproximacin racional
4/3
format bank
2 dgitos decimales
1.33
0.0000
1.2345e-006
0.000000123450000
3eb4b6231abfd271
1/810045
0.00
EJERCICIOS
Visualizar los resultados, con los formatos dados en la tabla
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
ON SI
Observacin
Cuando MATLAB realiza un clculo, lo hace utilizando los valores que conoce del momento
en que se evalu la orden pedida.
Mediante la orden clear podemos borrar las variables en el espacio de trabajo.
Lic. Ana Gamarra Carrasco
Ingeniera Civil
Matemtica IV
clc
Limpia la pantalla, pero colocando hacia atrs los datos.
who Da una lista de los nombres de las variables que se estn utilizando
whos Seala algo ms de las variables.
Clear [variable]
Slo borra el nombre de la variable indicada
help muestra los directorios
help [expresin]
nos muestra el contenido del directorio indicado
quit
para cerrar MATLAB
3. CARACTERISTICAS CIENTFICAS
3.1 FUNCIONES MATEMTICAS ELEMENTALES
abs (x)
acos (x)
acosh (x)
angle (x)
asin (x)
asinh (x)
atan (x)
atan2 (x,y)
atanh (x)
ceil (x)
Lic. Ana Gamarra Carrasco
Ingeniera Civil
conj (x)
cos (x)
cosh (x)
exp (x)
fix (x)
floor (x)
imag (x)
log (x)
log10 (x)
real (x)
rem (x,y)
round (x)
sign (x)
sin (x)
sinh (x)
sqrt (x)
tan (x)
tanh (x)
Matemtica IV
Complejo conjugado
Coseno
Coseno hiperblico
Exponencial
Redondea hacia cero
Redondea hacia menos infinito
Parte imaginaria de un nmero complejo
Logaritmo natural
Logaritmo decimal
Parte real de un nmero complejo
Resto despus de la divisin
Redondea hacia el entero ms prximo
Devuelve el signo del argumento (funcin signo)
Seno
Seno hiperblico
Raz cuadrada
Tangente
Tangente hiperblica
Funcin Bessel
Funcin Beta
Funcin error
Funcin error complementario
Funcin Gamma
Ingeniera Civil
Matemtica IV
6.0000 + 0.4794i
>>c5=(c1+c2)/c3
c5 =
-7.7782 - 4.9497i
4 ARRAYS
4.1. ARRAYS SIMPLES :
Para crear un array en Matlab comenzamos con un corchete de apertura, introducimos
los valores deseados separados por espacios ( o por comas ) y cerramos el array con un
corchete de cierre.
Variable=[(lista de nmeros separados por espacios o comas)]
4.2. DIRECCIONAMIENTO DE ARRAYS :
Los elementos individuales de un array se acceden utilizando subndices; as, x(1) es el
primer elemento en x.
Para acceder a un bloque de elementos a la vez, se usa la notacin de dos puntos; as,
x(1:5) nos da los elementos del primero al quinto del array de elementos. Si introduc imos
un nmero entre el primero y el segundo, tambin separado por dos puntos (:), entonces se
mostrarn los elementos del primero al ltimo indicado, incrementados o decrementados el
nmero que aparece en el centro; as, si ponemos x(2:2:7), obtenemos el segundo,cuarto y
sexto elemento del array.
Otra forma de obtener un conjunto concreto de elementos del array es indicando entre
corchetes las posiciones de los elementos que queremos obtener; ponemos parntesis fuera
de los corchetes. Ejemplo : y([8 2 9 1]).
4.3. CONSTRUCCION DE ARRAYS :
Otras dos formas de introducir arrays son:
a.- Mediante la notacin dos puntos, (0:0.1:1) crea un array que comienza en cero,
incrementa 0.1 y finaliza en 1.
b.- Mediante la funcin linspace :
linspace(primer_exponente,ltimo_exponente,nmero_de_valores)
Las dos formas anteriores crean arrays donde los elementos individuales estn
espaciados linealmente entre s. Para espaciado logartmico:
logspace(primer_exponente,ltimo_exponente,nmero_de_valores)
4.4. MATEMATICAS CON ARRAYS DE ESCALARES :
Las operaciones matemticas sencillas entre escalares y arrays siguen una interpretacin
natural, es decir, se aplica la operacin a todos los elementos del array.
4.5. MATEMATICAS CON ARRAYS DE ARRAYS :
Cuando dos arrays tienen la misma longitud y orientacin, la suma, resta, multiplicacin y
divisin se aplican sobre la base de elemento-a-elemento.
Para multiplicar dos arrays elemento a elemento, escribimos .*, ya que si ponemos slo *,
sera multiplicacin matricial. Lo mismo para la divisin de arrays y la potencia de un array.
Se pueden combinar operaciones escalares y de arrays.
4.6. ORIENTACION DEL ARRAY :
Separar los elementos por espacios o comas especifica elementos en distintas columnas
(vector fila ); separar elementos por puntos y comas especifica elementos en filas diferentes
(vector columna ).
Usando el operador transpuesta ( ' ) de Matlab, podemos pasar de vector fila a vector
columna, y viceversa.
En el caso de un array complejo, la transpuesta ( ' ) da la transpuesta compleja conjugada.
La transpuesta con punto ( .' ) transpone el array, pero no lo conjuga.
La creacin de matrices ( orientacin rectangular ) sigue la misma estructura de los vectores
fila y columna.
Lic. Ana Gamarra Carrasco
Ingeniera Civil
Matemtica IV
Adems de los puntos y comas, pulsando la tecla enter cuando se est introduciendo una
matriz, tambin le dice a Matlab que comience una nueva fila.
Una matriz puede tener mltiples filas, pero cada fila debe tener un nmero igual de
columnas.
EJEMPLOS :
Ejemplo 1:
>> x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
>> y=sin(x)
y=
Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
>> x(3)
% El tercer elemento de x.
ans =
0.6283
>> x(1:5) % Para obtener los elementos del primero al quinto en x.
ans =
0 0.3142 0.6283 0.9425 1.2566
>>y(3:-1:1) % Comienza con 3, disminuye en una unidad, y para en 1.
ans =
0.5878 0.3090 0
>> y([8 2 9 11]) % Obtenemos los elementos 8, 2, 9 y 11 del array y.
ans =
0.8090 0.3090 0.5878 0
Ejemplo 2 :
>> a=1:5,b=1:2:9
a=
1 2 3 4 5
b=
1 3 5 7 9
>> c=[b a] % Crea un array de los elementos de b seguidos de los elementos de a
c=
1 3 5 7 9 1 2 3 4 5
>> a-2 % Matemticas con arrays de escalares.
ans =
-1 0 1 2 3
>>a.*b % Matemticas con arrays de arrays.
ans =
1 6 15 28 45
OPERACIONES BASICAS
max
mean
median
min
prod
sort
sum
Lic. Ana Gamarra Carrasco
Mayor componente
Promedio
Mediana
Menor componente
Producto de elementos
Ordenacin en forma ascendente
Suma de elementos
Lic. Javier Manrique Cataln
Ingeniera Civil
Matemtica IV
5. MATRICES
5.1 ENTRADA DE MATRICES
Las matrices pueden ser introducidas en MATLAB de diversas maneras>
Digitadas en la ventana de comandos (lista explicita de elementos)
Generadas por comandos y funciones.
Creadas en archivos .m.
Cargadas a partir de un archivo de datos externos.
El mtodo ms fcil de entrar con pequeas matrices en MATLAB es usando una lista explicita.
Los elementos de cada lnea de la matriz son separados por espacios en blanco o comas, y las
columnas separadas por punto y coma, colocndose corchetes alrededor de los elementos que
forman la matriz. Por ejemplo,
>> A=[1 2 3;4 5 6; 7 8 9]
A=
1
2
3
4
5
6
7
8
9
Otra manera para entrar matrices, es travs de un archivo en formato texto con extensin .m.
Por ejemplo, si un archivo llamado gera.m contiene los siguiente
A=[1 2 3;4 5 6; 7 8 9]
Entonces gera lee el archivo e introduce la matriz A.
>>gera <enter>
El comando load puede leer matrices generadas por MATLAB o por otros programas
almacenadas en archivos ASCII.
5.2 ELEMENTOS DE LAS MATRICES
Los elementos de las matrices pueden ser cualquier expresin de MATLAB, y se direccionan en
el formato fila, columna A(fila, columna), por ejemplo:
>> x=[-1.3 sqrt(2) ((1+2+2)*4/5)^2 ]
resultando
x=
-1.3000
1.4142
23.0400
Un elemento de una matriz puede ser referenciado con los subndices de los elementos
deseados entre parntesis.
5.3 MANIPULACIN MATRICIAL
Considere en ejemplo anterior que
>> x(6)=abs(x(1))
lo que produce
x=
-1.300
1.4142
23.0400
0
0
1.3000
Note que la dimensin del vector x es aumentado automticamente para acomodar el nuevo
elemento y los elementos de intervalo indefinido son establecidos como cero.
Grandes matrices pueden ser construidas a partir de pequeas matrices. Por ejemplo para
anexar otra fila a la matriz A haremos lo siguiente
>> r=[10 11 12];
>> A=[A; r]
que resulta
A=
1
2
3
4
5
6
7
8
9
10
11
12
y si queremos anexar a nuestra matriz A otra columna, escribimos
>> r=[10 11 12];
>> A=[A r]
Lic. Ana Gamarra Carrasco
Ingeniera Civil
Matemtica IV
que resulta
A=
1
4
7
2
5
8
3
6
9
10
11
12
5.4 SUBMATRICES
Utilizar el smbolo dos puntos (:) como la designacin de filas o columnas implica,
respectivamente, todas las filas o columnas. Sea A una matriz m x n, entonces
A(:,:) :=
todas las filas y columnas
A(:,j) :=
todas las filas de la j-sima columna
A(:,j:m) :=
todas las filas y las columnas de j hasta m
A(:,j:r:m) :=
todas las filas y las columnas de j hasta m de r en r
A(i,:) :=
todas las columnas de la fila i
A(i:n,:) :=
todas las columnas y las filas de i hasta n
A(i:p:n,:) :=
todas las columnas y las filas de i hasta n de p en p
Por ejemplo, A(:,1) representa todas las filas en la columna uno. A(1:3,:) selecciona las tres
primeras filas y todas las columnas de la matriz A actual. A(10:-3:1,:) significa filas desde 10
hasta la 1 de 3 en 3.
Ejemplo
>> A=[4 5 2 2 3; 3 1 0 1 7; 8 9 3 5 6; -1 4 pi 3; 0 2 1 4 5];
>> A=[2:2:4,1:3]
ans=
3
1
0
-1
4
Si Fijamos las filas o columnas de una matriz igual a la matriz vaca [ ], esto elimina estas filas o
columnas. Por ejemplo A(:,2)=[ ], elimina todas las filas de la segunda columna de A.
Usar slo los dos puntos, por ejemplo, A(:), reagrupa una matriz en un vector columna, tomando
todas las columnas a un tiempo.
Ejercicio
Escribir la siguiente matriz
>>A=[1:5,6:10,11:15,16:20]
y observar la salida de los siguientes comandos
>>A(1,:)
>>A(2,:)
>>A(:,3)
>>A(1, 1:2:5)
>>A([2 4],:)
>>A(4:-1:1,5:-1,1)
>>A([1 1],[2 2])
>>A([3 2], [5 4])
5.5 OPERACIONES MATRICIALES
En esta parte veremos algunas operaciones que se efectan en las matrices
Para multiplicar matrices usaremos * . El carcter apostrofe indica la transpuesta de la
matriz A.
En MATLAB para efectuar la divisin, existen dos smbolos \ y /. Si A es una matriz cuadrada
no singular, entonces A\B y A/B corresponden respectivamente a la multiplicacin a la izquierda y
a la derecha de la matriz B por la inversa de la matriz A, es decir inv(A)*B y B*inv(A). En general
X=A\B es la solucin de A*X=B
X=A/B es la solucin de X*A=B
OTRAS CARACTERISTICAS:
La transpuesta compleja conjugada de la matriz compleja A se escribe como A'. A.' es
la transpuesta de la matriz A.
Lic. Ana Gamarra Carrasco
Ingeniera Civil
Matemtica IV
d=eig(A) devuelve los valores propios asociados con la matriz cuadrada A como un
vector columna.
[V,D]=eig(A) devuelve los vectores propios en la matriz V y los valores propios como los
elementos diagonales en la matriz D.
[L,U]=lu(A) calcula la factorizacin LU de la matriz cuadrada A.
[Q,R]=qr(A) calcula la factorizacin QR de la matriz A.
[U,S,V]=svd(A) calcula la descomposicin en valores singulares de la matriz A.
rank(A) devuelve el rango de la matriz A.
cond(A) devuelve el nmero de condicin de la matriz A.
norm(A) calcula la norma de la matriz A. Admite el clculo de norma-1, norma-2, normaF y norma -.
poly(A) encuentra el polinomio caracterstico asociado con la matriz cuadrada A.
polyvalm(v,A) evala el polinomio caracterstico v usando la matriz cuadrada A.
det(A) determinante de la matriz A
q=null(A) devuelve una base ortonormal para elespacio nulo
trace(A) traza de la matriz A
r=chol(A) factorizacin cholesky.
10
Ingeniera Civil
Matemtica IV
>> C=[A B(:,[1 3])] % Crea C aadiendo todas las filas en la primera y tercera columna de B a la
derecha de A.
C=
1 2 3 7 9
4 5 6 4 6
7 8 9 1 3
>> B=A(1:2,2:3) % Crea B extrayendo las primeras dos filas y las ltimas dos columnas de A.
B=
2 3
5 6
>> C=[1 3]
C=
1 3
>> B=A(C,C) % Usa el array C para indexar la matriz A.
B=
1 3
7 9
>> B=A(:); % Construye B al disponer A en un vector columna tomando todas sus columnas a un
tiempo.
>> B=B.' % Operacin punto-transpuesta.
B=
1 4 7 2 5 8 3 6 9
>> B=A; B(:,2)=[] % Redefine B eliminando todas las filas en la segunda columna de la original B.
B=
1 3
4 6
7 9
>> B=B.'; B(2,:)=[] % Elimina la segunda fila de B.
B=
1 4 7
>> A(2,:)=B % Sustituye la segunda fila de A con B.
A=
1 2 3
1 4 7
7 8 9
>> B=A(:,[2 2 2 2]) % Crea B duplicando todas las filas en la segunda columna de A cuatro
veces.
B=
2 2 2 2
4 4 4 4
8 8 8 8
Ejemplo 2:
>> x=-3:3 % Introducimos datos.
x=
-3 -2 -1 0 1 2 3
>> abs(x)>1 % Da unos donde el valor absoluto de x es mayor que 1.
ans =
1 1 0 0 0 1 1
>> y=x(abs(x)>1) % Crea y al tomar aquellos valores de x donde su valor absoluto es mayor que
1.
y=
-3 -2 2 3
>> y=x([1 1 1 1 0 0 0]) % Crea y seleccionando slo los primeros 4 valores, y descartando los
otros.
y=
Lic. Ana Gamarra Carrasco
11
Ingeniera Civil
Matemtica IV
-3 -2 -1 0
>> y=x([1 1 1 1]) % Crea y tomando el primer elemento de x cuatro veces.
y=
-3 -3 -3 -3
>> x(abs(x)>1)=[] % Elimina valores de x donde abs(x)>1.
x=
-1 0 1
Ejemplo 3:
>> b=[5 -3;2 -4]
b=
5 -3
2 -4
>> x=abs(b)>2 % La extraccin de arrays lgicos 0-1 tambin funciona con matrices
x=
1 1
0 1
>> y=b(abs(b)>2) % Los resultados se convierten a un vector columna.
y=
5
-3
4
Ejemplo 4:
>> x=-3:3
x=
-3 -2 -1 0 1 2 3
>> k=find(abs(x)>1) % Encuentra aquellos subndices donde abs(x)>1.
k=
1 2 6 7
>> y=x(k) % Crea y utilizando los ndices en k.
y=
-3 -2 2 3
Ejemplo 5:
>> A=[1 2 3 4; 5 6 7 8]; B=pi:0.01:2*pi;
>> s=size(A) % devuelve un vector fila cuyo primer elemento es el nmero de filas y cuyo
segundo elemento es el nmero de columnas.
s=
2 4
>> [r,c]=size(A) % Devuelve el nmero de filas en la primera variable y el nmero de columnas
en la segunda variable.
r=
2
c=
4
>> lenght(A) % Devuelve el nmero de filas o de columnas, cualquiera que sea mayor.
ans =
4
>> size (B) % Muestra que B es un vector fila.
ans =
1 315
>> lenght(B) % Devuelve la longitud del vector (315).
5.7 MATRICES ESPECIALES :
zeros(n) Matriz de ceros (nxn).
ones(n,m) Matriz de unos (nxm).
Lic. Ana Gamarra Carrasco
12
Ingeniera Civil
Matemtica IV
13.1 EJEMPLOS :
>> zeros(3) % Una matriz 33 de ceros.
ans =
0 0 0
0 0 0
0 0 0
>> ones(2,4) % Una matriz 24 de unos.
ans =
1 1 1 1
1 1 1 1
>> rand(3,1)
ans =
0.2190
0.0470
0.6789
>> randn(2)
ans =
1.1650 0.0751
0.6268 0.3516
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
>> A=[1 2 3;4 5 6];
>> ones(size(A)) % Una matriz de unos del mismo tamao que A.
ans =
1 1 1
1 1 1
6. POLINOMIOS
6.1 RAICES :
Un polinomio se representa por un vector fila con sus coeficientes en orden descendente; se
deben incluir los trminos con coeficientes nulos. Las races de un polinomio se encuentran
utilizando la funcin roots(p). Matlab adopta el convenio de que los polinomios son vectores fila
y las races son vectores columna. Dadas las races de un polinomio, es posible construir los
polinomios asociados mediante la funcin poly(r).
6.2 OTRAS CARACTERISTICAS:
Matlab ofrece muchas capacidades para la manipulacin de polinomios:
conv(a,b) multiplica los dos polinomios a y b.
deconv(c,b) divide el polinomio b entre c.
polyder(p) calcula la derivada del polinomio p.
polyval(p,x) evala el polinomio p en todos los valores de x.
residue(n,d) calcula el desarrollo en fracciones simples del cociente de n a d, donde n y
d son polinomios.
polyder(n,d) calcula la derivada del cociente de n a d, donde n y d son polinomios.
Matlab no tiene incorporada una funcin para sumar polinomios. Sin embargo, es fcil
construir un archivo-M de funcin que lo haga.
Lic. Ana Gamarra Carrasco
13
Ingeniera Civil
Matemtica IV
EJEMPLOS :
Ejemplo 1 :
>> p=[1 -12 0 25 116] % Incluimos trminos con coeficientes nulos.
p=
1 -12 0 25 116
>> r=roots(p) % races del polinomio p.
r=
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 + 1.4672i
>> pp=poly(r) % Polinomios asociados.
pp =
1.0e+02 *
Columns 1 through 5
0.0100 -0.1200 -0.0000 0.2500 1.1600 + 0.0000i
>> pp=real(pp) % Extrae la parte real.
pp =
1.0000 -12.0000 -0.0000 25.0000 116.0000
Ejemplo 2 :
>> a=[1 2 3 4]; b=[1 4 9 16];
>>c=conv(a,b) % Multiplicacin.
c=
1 6 20 50 75 84 64
>> d=a+b % Suma.
d=
2 6 12 20
>> e=c+[0 0 0 d] % Porque son de distinto grado.
e=
1 6 20 52 81 96 84
>> f=c+[0 0 0 -d] % Resta.
f=
1 6 20 48 69 72 44
>> [q,r]=deconv(c,b) % Divisin.
q=
1 2 3 4
r=
0 0 0 0 0 0 0
>> g=polyder (f) % Derivada.
g=
6 30 80 144 138 72
% EJERCCIOS - COMANDOS BSICOS DE MATLAB
% EJECUTE LOS SIGUIENTES COMANDOS E INTERPRETE LOS RESULTADOS
a = 2500/20
a = 2500/20;
b = [1 2 3 4 5 6 7 8 9]
c = [1 2 3 ; 4 5 6 ; 7 8 9]
c = [c ; [10 11 12]
c(2,2) = 0
l = length(b)
[m,n] = size(b)
[m,n] = size(c)
who
whos
Lic. Ana Gamarra Carrasco
14
Ingeniera Civil
Matemtica IV
clear
who
b = l + 2 + 3 + 4 + ...
5+6-7
x=1:2:9
x = (0.8 : 0.2 : 1.4);
y = sin(x)
help sin
dir
a = 2^3
a = 4/3
format long
a = 4/3
format short
clear
a=[1 2 3 ; 4 5 6 ; 7 8 9];
b = a
c=a+b
c=a-b
a(l,:) = [-1 -2 -3]
c = a(:,2)
c = a(2:3, 2:3)
x = [- 1 0 2];
y = [-2 -1 1];
x*y
c=x+2
a = [1 0 2; 0 3 4 ; 5 6 0];
size(a)
b = inv(a);
c = b*a
c = b/a
c = b\a
clear a b x y
whos
% Trabajando con nmeros complejos
i = sqrt(-1)
a = [1 2;3 4] + i*[5 6;7 8]
realz = real(z)
imagz = imag(z)
modz = abs(z)
fasez = angle (z)
% Multiplicacin de polinomios
% x3 = (x^2 + 3x + 2).(x^2 - 2x + 1)
x3 = conv([1 2 3],[1 -2 1]) % Como el hace esto?
% Determinacin de las races de un polinomio
roots([1 3 2])
roots([1 -2 1])
roots(x3)
% Utilitrios para matrices
a = eye(4)
a = rand(5)
help rand
b = [2 0 0;0 3 0;0 0 -1];
d = det(b)
Lic. Ana Gamarra Carrasco
15
Ingeniera Civil
Matemtica IV
l = eig(b)
help det
help eig
clear
El comando
>> diag(v,k), donde v es un vector con n elementos, genera una matriz cuadrada de orden n+|k| con
los elementos de v en la k-diagonal. k=0 significa la diagonal principal, k>0 diagonal que estn
encima de la diagonal principal y k<0 significa la diagonal inferior de la referida.
Por ejemplo, si queremos generar una matriz tridiagonal, escribimos lo siguiente:
>> b=4*eyes(5)-diag(ones(1,3),2)-diag(ones(1,3),-2)
7. GRAFICOS EN MATLAB
7.1 GRAFICAS SIMPLES:
Primero se crean los valores para el eje horizontal X ( variable independiente ); a continuacin se
calcula el eje vertical Y ( variable dependiente ); y la orden plot genera la grfica:
>>plot(x,y)
Opciones de la funcin plot:
Superponer grficas sobre los mismos ejes:
>>plot(x,y,x,z)
Usar distintos tipos de lneas para el dibujo de la grfica:
>>plot(x,y,'+')
Adems se pueden colocar etiquetas sobre los ejes:
Etiqueta sobre el eje X de la grfica actual:
>>xlabel('texto')
Etiqueta sobre el eje Y de la grfica actual:
>>ylabel('texto')
Un ttulo en la cabecera de la grfica actual:
>>title('texto')
Dibujar una rejilla:
>>grid
7.2 ESTILO DE LINEAS, MARCADORES Y COLORES :
Se pueden especificar los colores y estilos de lnea dando un argumento adicional a plot
despus de cada pareja de arrays de datos. El argumento opcional adicional es una cadena de
caracteres formada por uno, dos o tres caracteres de la tabla siguiente:
SIMBOLO
y
m
c
r
g
b
w
k
COLOR
amarillo
magenta
celeste
rojo
verde
azul
blanco
negro
SIMBOLO
.
O
x
+
*
:
-.
--
ESTILO DE LINEA
punto
crculo
marca-x
ms
estrella
lnea slida
lnea punteada
lnea punto-raya
lnea de trazos
16
Ingeniera Civil
Matemtica IV
text(x,y,'string'), donde (x,y) representa las coordenadas de la arista del centro izquierda de la
cadena de texto en unidades tomadas de los ejes de la grfica. Tambin se puede poner una
cadena de texto con el ratn:
gtext('string')
7.4 EJES A MEDIDA :
ORDENES
axis([xmin xmax ymin ymax])
axis auto
axis('auto')
DESCRIPCION
Fija los valores mximo y mnimo de los ejes usando
los valores dados en el vector fila.
Devuelve el escalado de los ejes a sus valores por
defecto: xmin=min(x), xmax=max(x), etc.
EJEMPLOS
Ejemplo 1 :
>> x=linspace(0,2*pi,30); % Crea 30 datos en el intervalo 0 x 2p
>> y=sin(x); % Vector que contiene el seno de los datos en x.
>> plot(x,y) %Grafica x versus a y.
>> z=cos(x);
>> plot(x,y,x,z) % Grafica un seno y un coseno en la misma grfica.
>> W=[y;z]; % Crea una matriz con las funciones seno y coseno.
>> plot(x,W) % Representa las columnas de W frente a x.
>> plot(W,x) % Representa x frente a las columnas de W.
>> plot(x,y,'g:',x,z,'r--',x,y,'wo',x,z,'c+') % Usa diferentes estilos de lnea, colores y marcas de puntos.
>> plot(x,y,x,z)
>> grid % Activa la rejilla.
>> xlabel('Variable Independiente X') % Etiqueta del eje x.
>> ylabel('Variables dependientes Y y Z') % Etiqueta del eje y.
Lic. Ana Gamarra Carrasco
17
Ingeniera Civil
Matemtica IV
8. GRAFICOS 3-D :
Lic. Ana Gamarra Carrasco
18
Ingeniera Civil
Matemtica IV
Ejemplo 2 :
>> x=-7.5:.5:7.5;
>> y=x;
>> [X,Y]=meshgrid(x,y); % Genera puntos igualmente espaciados en el plano xy entre -7.5 y 7.5
en ambos x e y.
>> R=sqrt(X.^2+Y.^2)+eps; % Distancia desde el origen (0,0).
>> Z=sin(R)./R;
>> mesh(X,Y,Z) % Genera la grfica de malla.
>> surf(X,Y,Z) % Genera la grfica de superficie.
SIGNIFICADO
Menor que
Menor o igual que
Mayor que
Lic. Javier Manrique Cataln
19
Ingeniera Civil
>=
==
~=
&
|
~
Matemtica IV
20
Ingeniera Civil
Matemtica IV
9.2.4 IF
Permite ejecutar una operacin si se cumple una condicin lgica.
Sintaxis
if expresin lgica
conjunto de comandos
end
if expresin lgica
conjunto de comandos
else
conjunto de comandos
end
La forma ms general (con tres o ms alternativas) es
if expresin lgica
conjunto de comandos
elseif expresin lgica
conjunto de comandos
elseif expresin lgica
conjunto de comandos
.
.
.
else
conjunto de comandos
end
Ejemplo 1
for j=1:10
if mod(j,2)==0
n=j+5;
elseif mod(j,2)==1
n=j+10;
else
n=100;
end
n
end
Ejemplo 2
for i = l:5,
for j = l:5,
if i = = j
A(i,j) = 2;
else if abs(i-j) = = 1
A(i,j) = -1;
else
A(i,j) = 0;
end
end
end
9.2.5 BREAK
Al igual que en C, la sentencia break hace que se termine la ejecucin del bucle ms interno
de los que comprenden a dicha sentencia. (for y while)
Lic. Ana Gamarra Carrasco
21
Ingeniera Civil
Matemtica IV
Ejemplo
Este programa calcula todos los nmeros de la serie de fibonnaci menores que 1000
fibo(1)=1;
fibo(2)=1;
for k=3:1000
fibo(k)=fibo(k-1)+fibo(k-2);
if fibo(k)>1000
break
end
end
fibo
10 LECTURA Y ESCRITURA INTERACTIVA DE VARIABLES
10.1 FUNCIN INPUT
La funcin input permite imprimir un mensaje en la lnea de comandos de MATLAB y
recuperar
como valor de retorno un valor numrico o el resultado de una expresin tecleada por el
usuario.
Despus de imprimir el mensaje, el programa espera que el usuario teclee el valor numrico o
la
expresin. Cualquier expresin vlida de MATLAB es aceptada por este comando.
Vase un ejemplo de uso de esta funcin:
n = input('Teclee el nmero de ecuaciones')
Otra posible forma de esta funcin es la siguiente (obsrvese el parmetro s):
nombre = input('Cmo te llamas?','s')
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que se
almacena en la cadena nombre. As pues, en este caso, si se teclea una frmula, se almacena
como
texto sin evaluarse.
10.2 FUNCIN DISP
La funcin disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero
sin
imprimir su nombre. En realidad, disp siempre imprime vectores y/o matrices: las cadenas de
caracteres son un caso particular de vectores. Considrense los siguientes ejemplos de cmo
se
utiliza:
disp('El programa ha terminado')
A=rand(4,4)
disp(A)
Obsrvese la diferencia entre las dos formas de imprimir la matriz A.
11 FICHEROS *.M
Los ficheros con extensin (.m) son ficheros de texto (ASCII) que constituyen el centro de la
programacin en MATLAB. Estos ficheros se crean y modifican con un editor de textos cualquiera.
En el caso de MATLAB 5.6, lo ms sencillo es utilizar su propio editor de textos.
Existen dos tipos de ficheros *.m, los ficheros de comandos (llamados scripts en ingls) y las
funciones. Los primeros contienen simplemente una sucesin de comandos que se ejecutan
sucesivamente cuando se teclea el nombre del fichero en la lnea de comandos de MATLAB. Un
fichero de comandos puede llamar a otros ficheros de comandos. Si un fichero de comandos se
llama desde de la lnea de comandos de MATLAB, las variables que crea pertenecen al espacio de
trabajo base de MATLAB, y permanecen en l cuando se termina la ejecucin de dicho fichero.
Las funciones permiten definir funciones enteramente anlogas a las de MATLAB, con su nombre,
sus argumentos y sus valores de retorno. Las funciones definidas en ficheros *.m se caracterizan
porque la primera lnea (que no sea un comentario) comienza por la palabra function, seguida por
los valores de retorno, el signo igual (=) y el nombre de la funcin, seguido de los argumentos, entre
parntesis y separados por comas.
Lic. Ana Gamarra Carrasco
22
Ingeniera Civil
Matemtica IV
Recurdese que un fichero *.m puede llamar a otros ficheros *.m, e incluso puede llamarse a
mismo de forma recursiva.
El comando pause interrumpe la ejecucin del programa y aguarda para la digitacin de una tecla.
11.1 DEFINICIN DE FUNCIONES
La primera lnea de un fichero llamado name.m que define una funcin tiene la forma:
function [lista de valores de retorno] = name(lista de argumentos)
donde name es el nombre de la funcin. Entre corchetes y separados por comas van los valores
de retorno, y entre parntesis tambin separados por comas los argumentos. Recurdese que
los argumentos son los datos de la funcin y los valores de retorno sus resultados.
11.2 HELP PARA LAS FUNCIONES DE USUARIO
Tambin las funciones creadas por el usuario pueden tener su help, anlogo al que tienen las
propias funciones de MATLAB. Esto se consigue de la siguiente forma: las primeras lneas de
comentarios de cada fichero de funcin son muy importantes, pues permiten construir un help
sobre esa funcin.
En otras palabras, cuando se teclea en la ventana de comandos de MATLAB:
help funes
el programa responde escribiendo las primeras lneas del fichero funes.m que comienzan por el
carcter (%), es decir, que son comentarios.
11.3 SUB-FUNCIONES
Tradicionalmente MATLAB obligaba a crear un fichero *.m por cada funcin. El nombre de la
funcin deba coincidir con el nombre del fichero. En la versin 5.0 se han introducido las subfunciones, que son funciones adicionales definidas en un mismo fichero *.m, con nombres
diferentes del nombre del fichero (y del nombre de la funcin principal) y que slo pueden ser
llamadas por las funciones contenidas en ese fichero, resultando invisibles para otras funciones
externas.
A continuacin se muestra un ejemplo contenido en un fichero llamado mifun.m:
function y=mifun(x)
y=sin(x)+2;
En archivos script para evaluar la funcin dada en el fichero mifun.m, se usa del siguiente modo:
a=feval('fun',2) % evalua sen(2)+3
b=feval('fun',3) % evalua sen(3)+3
y en archivos de tipo funcin
function ej1(fun,w)
c=2+w;
a=feval('fun',c)
para obtener el resultado en este tipo de archivos, hacer
>> ej1(fun,2) % evalua sen(4)+3
Ejemplo
% Este programa calcula el factorial de un numero
function[p]=fact(n)
p=1;
if n==0
p=1;
elseif n < 0
p=input('Ingrese un nmero positivo ')
else
for i=1:n
p=p*i;
end
Lic. Ana Gamarra Carrasco
23
Ingeniera Civil
Matemtica IV
end
12 FUNCIONES FSCANF, SSCANF, FPRINTF Y SPRINTF
Estas funciones permiten leer y escribir en ficheros ASCII, es decir, en ficheros formateados. La
forma general de la funcin fscanf es la siguiente:
[var1,var2,...] = fscanf(fi,cadena de control,size)
donde fi es el identificador del fichero (devuelto por la funcin fopen), y size es un argumento
opcional que puede indicar el tamao del vector o matriz a leer. Obsrvese otra diferencia con C: las
variables ledas se devuelven como valor de retorno y no como argumentos pasados por referencia
(precedidos por el carcter &). La cadena de control va encerrada entre apstrofos simples, y
contiene los especificadores de formato para las variables:
%s para cadenas de caracteres
%d para variables enteras
%f para variables de punto flotante
%lf para variables de doble precisin
La funcin sscanf es similar a fscanf pero la entrada no proviene de un fichero sino de una cadena
de caracteres.
Finalmente, la funcin fprintf dirige su salida formateada hacia el fichero indicado por el identificador.
Su forma general es:
fprintf(fi,cadena de control,var1,var2,...)
Esta es la funcin ms parecida a su homloga de C. La cadena de control contiene los formatos de
escritura, que son similares a los de C, como muestran los ejemplos siguientes:
fprintf(fi,'El nmero de ecuaciones es: %d\n',n)
fprintf(fi,'El determinante es: %lf10.4\n',n)
De forma anloga, la funcin sprintf convierte su resultado en una cadena de caracteres, en vez de
enviarlo a un fichero. Vase un ejemplo:
resultado = sprintf(El cuadrado de %f es %12.4f\n,n,n*n)
donde resultado es una cadena de caracteres. Esta funcin constituye el mtodo ms general de
convertir nmeros en cadenas de caracteres, por ejemplo para ponerlos como ttulos de figuras.
Los formatos especiales \n,\r,\t,\b,\f se usan para producir salto de linea. aumento de lineas
Ejemplo 1
x = 0:.1:1;
y = [x; exp(x)];
fid = fopen('exp.txt','w');
fprintf(fid,'%6.2f %12.8f\n',y);
produce
0.00 1.00000000
0.10 1.10517092
...
1.00 2.71828183
Ejemplo 2
% Este es un programa que sirve para calcular la serie finita de 1/(n^2) %
%
%
% en forma ascendente y descendente, Probar con un n = 10000.
%
%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear
sum=0;
sum1=0;
n=input('Ingrese el valor de n : ');
disp(' ')
disp(' ')
for i=1:n
Lic. Ana Gamarra Carrasco
24
Ingeniera Civil
Matemtica IV
sum=sum+1/(i^2);
end
for i=n:-1:1
sum1=sum1+1/(i^2);
end
fprintf('La suma de 1 hasta n es ===> %2.15f\n\b',sum);
fprintf('La suma de n hasta 1 es ===> %2.15f\r',sum1);
produce
Ingrese el valor de n : 3
La suma de 1 hasta n es ===> 1.361111111111111
La suma de n hasta 1 es ===> 1.361111111111111
Otros Ejemplos de programas
EXPON.M
% Este programa sirve para evaluar la funcion exponencial en la siguiente serie:
1+x+x^2/2!+.....x^n/n!.....
%%%%%%%%%%%%%%%%%
clc
clear
x=input('ingrese x: ');
n=input ('ingrese n: ');tofi=exp(x);
y=1;
sum=1;
erro=tofi-sum;
disp (' n
aproximacion
erro')
for i=1:n;
fprintf(' %2.0f %1.15f %1.15f\n ',i,sum,erro)
y=y*x/i;
sum=sum+y;
erro=((tofi-sum)/tofi)*100;
end
PROMEDIO.M
% Este programa es diseado para determinar la nota de un curso que consiste en parciales,
trabajos y examen
% final, que al final seran mostrados al acabar el proceso.
%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear
s=input ('ingrese el nombre del curso: ','s');
t=input ('ingrese el codigo del curso: ');
fp=input ('ingrese el factor de peso del parcial: ');
ft=input ('ingrese el factor de peso del trabajo: ');
fF=input ('ingrese el factor de peso del examen final: ');
n=input ('ingrese el numero de examenes parciales: ');
for i=1:n
g(i)=input ('ingrese las notas de los parciales: ');
end
x=input ('ingrese el numero de trabajos: ');
for j=1:x
h(j)=input ('ingrese las notas de los trabajos: ');
Lic. Ana Gamarra Carrasco
25
Ingeniera Civil
Matemtica IV
end
prop=(sum(g))/n;
prot=(sum(h))/x;
nF=input ('existe la nota nota final (s/n): ','s');
if nF =='s'
pfin=input('calificacion final: ');
pp=(fp*prop+ft*prot+fF*nF)/(fp+ft+fF);
else
pp=(fp*prop+ft*prot)/(fp+ft);
end
t
s
pp
COSENO.M
function aproximada=coseno(x0,n,tol)
% Este programa sirve para aproximar la funccin f(x)=cos(x)
% por 1-(X^2)/2!+(X^4)/4!-(X^6)/6!+(X^8)/8!-....
% probar con: x0=pi/3 n=25 tol=0.00001
%%%%%%%%%%%%%%%%%%
clc
serie(1)=1;
i=1;
disp('iter
|Eap|%
Ev%
Evr%
Eap% ')
while i<=n
p=((-1)^i)*(x0^(2*i))/facto(2*i);
serie(i+1)=serie(i)+p;
Ev = cos(x0)-serie(i);
Evr= (cos(x0)-serie(i))*100/cos(x0);
Eap= (serie(i+1)-serie(i))*100/serie(i+1);
fprintf('i= %d %3.9f \t %3.9f \t %3.9f \t %3.9f\n',i,abs(Eap),abs(Ev),abs(Evr),abs(Eap))
i=i+1;
if abs(Eap) < tol
break
end
end
DERIN.M
% Este es un programa que sirve para calcular la derivada de y=x^3
% usar n:10
%%%%%%%%%%%%%%
clc
clear
b=10;
der=3*b^2;
b1=b^3;
n=input('ingrese n: ');
y=300; % y(10)=300 es la derivada exacta
disp(' n
h
f(x0)
Et')
for i=1:1:n;
h=10^(1-i);
f=b+h;
ff=f^3;
denum=(ff-b1)/h;
et=((y-denum)/y)*100;
fprintf(' %2.0f \t %4.10f \t %4.4f \t %4.4f\n',i,h,denum,abs(et))
Lic. Ana Gamarra Carrasco
26
Ingeniera Civil
Matemtica IV
end
end
PARAC.M
% Este es un programa que sirve para graficar la ecuacion de la caida
% un paracaidista en condiciones ideales.
% recomendacion: usar con t:10, m:68.1, v:40
%%%%%%%%%%%%%%%
clc
clear
t=input('ingrese el tiempo: ');
m=input('ingrese la masa: ');
g=9.8;
v=input('ingrese la velocidad: ');
c=2:2:20;
fc= ((m.*g)./c).*[1-exp(-(c./m).*t)]-v;
plot (c,fc,'b-',c,fc,'g*');
grid
end
title('grafico de la caida del paracaidista');
xlabel(' c '); ylabel('f(c) ');
end
SUMA.M
% Este programa sirve para calcular la serie infinita f(n)=sum 1/n^2, desde 1 hasta 10000
% recomendacion: dar n:10000
%%%%%%%%%%%%%%%%%
clc
clear
n=input ('ingrese n: ');
sum=0;
for i=1:n;
sum=sum+1/i^2;
end
sum
SUMAI.M
% Este programa sirve para calcular la serie infinita f(n)=sum 1/n^2, desde 10000 hasta 1
% Recomendacion: dar n:10000
%%%%%%%%%%%%%%%%%
clc
clear
n=input ('ingrese n: ');
sum=0;
for i=n:-1:1;
sum=sum+1/i^2;
end
sum
SENCOS.M
% Este es un programa que sirve para calcular la funcion: (sen 10x) + (cos 3x), en diferentes
Intervalos.
%%%%%%%%%%%%%%%%%
clc
Lic. Ana Gamarra Carrasco
27
Ingeniera Civil
Matemtica IV
clear
subplot 311
x=-5:0.001:5;
f=sin(10*x)+cos(3*x);
plot(x,f,'b-')
grid
title('grafico 1')
end
subplot 312
x1=3:0.01:5;
f1=sin(10*x1)+cos(3*x1);
plot(x1,f1,'m-')
grid
title('grafico 2')
ylabel(' f(x) = seno de 10x + coseno de 3x ');
end
subplot 313
x2=4.2:0.01:4.3;
f2=sin(10*x2)+cos(3*x2);
plot(x2,f2,'c-');
grid
title('grafico 3')
xlabel('Intervalos de Crecimiento');
end
13. MENUS
El comando menu permite crear menus en la ventana de MATLAB
Sintaxis
variable = menu(header, item1, item2, ...)
Por ejemplo:
>> K = menu('Colores','Rojo','Azul','Verde')
salida
----- Colores ----1) Rojo
2) Azul
3) Verde
Ejemplo
% Programa que determina la moda, desvacion standar, mediana y promedio
% de "n" valores dados
%
% Probar : estadis
clc
clear
k=menu('Estadistica','Promedio','Desv. Standar','Moda','Mediana', 'Exit');
if k==1
n=input('Ingrese el Nmero de datos : ');
for i=1:n
fprintf('\nIngrese el valor N %d',i)
y(i)=input(' : ');
Lic. Ana Gamarra Carrasco
28
Ingeniera Civil
Matemtica IV
end
u=(sum(y))/n;
disp('-----------------------------------------------------------')
fprintf('El promedio de los %d valores es : %2.7f\n',n,u)
disp('-----------------------------------------------------------')
disp('Pulse por favor una tecla para continuar ----------> ')
pause
estadis
elseif k==2
n=input('Ingrese el Nmero de datos : ');
for i=1:n
fprintf('\nIngrese el valor N %d',i)
y(i)=input(' : ');
end
u=(sum(y))/n;
ss=sum((y-u).^2)/n;
s=sqrt(ss);
disp('-----------------------------------------------------------')
fprintf('La Desviacin Standar de los %d valores es : %2.7f\n',n,s)
disp('-----------------------------------------------------------')
disp('Pulse por favor una tecla para continuar ----------> ')
pause
estadis
elseif k==3
n=input('Ingrese el Nmero de datos : ');
for i=1:n
fprintf('\nIngrese el valor N %d',i)
y(i)=input(' : ');
end
z=1;
for i=1:n
for j=1:n
if i~=j
if y(i)==y(j)
z=z+1;
mm(i,1)=z;
mm(i,2)=y(i);
end
end
end
end
if z > 1
[M,N]=size(mm);
p=mm(1,1);
for i=2:M
if p < mm(i,1)
p=mm(i,1);
ii=i;
end
end
m=mm(ii,2);
disp('-----------------------------------------------------------')
fprintf('La Moda de los %d valores es : %2.7f\n',n,m)
disp('-----------------------------------------------------------')
disp('Pulse por favor una tecla para continuar ----------> ')
pause
estadis
else
Lic. Ana Gamarra Carrasco
29
Ingeniera Civil
Matemtica IV
disp('-----------------------------------------------------------')
fprintf('La Moda de los %d valores No Existe\n',n)
disp('-----------------------------------------------------------')
disp('Pulse por favor una tecla para continuar ----------> ')
pause
estadis
end
elseif k==4
n=input('Ingrese el Nmero de datos : ');
for i=1:n
fprintf('\nIngrese el valor N %d',i)
y(i)=input(' : ');
end
x=sort(y);
if mod(n,2)==0
nn=n/2;
disp('-----------------------------------------------------------')
fprintf('La Mediana de los %d valores son :\n',n)
fprintf('\t\t\t %2.7f \t %2.7f\n',x(nn),x(nn+1))
disp('-----------------------------------------------------------')
else
nn=(n+1)/2;
disp('-----------------------------------------------------------')
fprintf('La Mediana de los %d valores es : %2.7f\n',n,x(nn))
disp('-----------------------------------------------------------')
end
disp('Pulse por favor una tecla para continuar ----------> ')
pause
estadis
elseif k==5
break
end
30