Está en la página 1de 75

ING.

GIOVENE PEREZ CAMPOMANES


Email: gpcampomanes@gmail.com
Blog:ingenieriahidraulicaunmsmimf.blogspot.com
El MATLAB, es un entorno de trabajo para el calculo
cientfico. Programado originalmente como Clever
Moler a finales de los aos 70, su finalidad inicial era
proporcionar una forma sencilla de acceder a
libreras LINPACK y EISPACK donde estn
implementadas de una forma altamente eficiente de
algoritmos; clave del anlisis matricial.

Su primera implementacin se hizo en Fortran que
era y aun sigue sindolo, el lenguaje estndar en la
implementacin de mtodos numricos.





INTRODUCCION
Posteriormente se reimplemento en C, que es
como se encuentra en la actualidad.
Las aplicaciones de MATLAB, se fueron
extendiendo a otras ramas del calculo cientfico y de
las ciencias aplicadas en general, dotndose de una
gran popularidad en ambientes cientficos
(especialmente ingeniera). Dichas extensiones se
consiguieron en gran parte mediante la
implementacin de toolboxes( libreras escritas en
el lenguaje de programacin), propio del MATLAB, y
que ampliaban el rango de problemas que podran
resolverse.





DEFINICIONES: Es un programa de calculo numrico
orientado a matrices. Por tanto, ser ms eficiente si se
disean los algoritmos en trminos de matrices y
vectores.

MATLAB (abreviatura de Matrix Laboratory,
("laboratorio de matrices") es una herramienta de
software matemtico que ofrece un entorno de
desarrollo integrado (IDE) con un lenguaje de
programacin propio (lenguaje MATLAB)

La desventaja es que el computador donde la
aplicacin tiene que ser utilizada necesita
MCR(MATLAB Component Runtime) para que los
archivos MATLAB funcionen correctamente. MCR se
puede distribuir libremente con los archivos de
biblioteca generados por el compilador MATLAB.
Contenidos
1) Entorno de MATLAB: En este capitulo se realizara
una descripcin de las diversas partes del MATLAB y
algunos comandos importantes.

2) Operacin con matrices y vectores: Se describe
como se define una matriz o un vector, las
operaciones aritmticas y la descripcin de comandos
importantes que involucran vectores y matrices.

3) Tipos de datos: Se comenta sobre los tipos de datos
que MATLAB maneja y de algunos comandos que
trabajan con ellos.

4) Programacin en MATLAB: En este capitulo se
describe las nociones bsicas que debe tener un
programador en MATLAB, teniendo problemas
resueltos.

5) Grficos en MATLAB: Se describe como
MATLAB realiza diversos tipos de grficos de
funciones: Ecuaciones no lineales, algebra lineal y
sistemas de ecuaciones lineales, polinomio e
interpolacin, diferenciacin numrica, integracin
numrica y soluciones numricas.

1. Entorno de MATLAB:
Barra de mens y Herramientas
Ventana de directorio actual
Ventana de historial de comandos: Sobre la cual
empezamos a digitar las ordenes despus del signo
>>.

Algunos comandos de importancia:

clc: limpia la informacin de la ventana de
comandos.
clear: borra las variables usadas en memoria( del
espacio de trabajo).

Demo: gua al usuario a ejecutar diversas
demostraciones que se eligen en un men.
Help: nos permite visualizar caracteres y
operaciones especiales que posee el MATLAB.
Para conocer la sintaxis de un comando solo
tenemos que digitar Help, seguido del comando.
Asignacin de variables:
Se debe tener en cuenta que cada variable que
definimos debe comenzar con una letra del alfabeto.
Ejemplo:
Operaciones aritmticas en MATLAB:
Al igual que la aritmtica, las operaciones de adicin,
sustraccin, multiplicacin, divisin, potenciacin y
radicacin que se pueden realizar.
2. Operaciones con matrices y vectores:
Existen diferentes formas de definir una variable
vectorial sin necesidad de explicar entre corchetes
todos los miembros separados por comas o espacios
en blanco.
Variable =[a:b]
Define al vector cuyos primero y ultimo elemento son a y respectivamente y los
elementos intermedios se diferencian en una unidad
Variable =[a:s:b]
Define el vector cuyos primeros y ultimo elementos son a y b, y los elementos
intermedios se diferencian en la cantidad especifica de incrementos.
Variable=linspace(a,b,n)
Define el vector cuyos primeros y ultimo elementos son a y b, que tiene en total
n elementos uniformemente espaciados entre si.
Variable =logspace(a,b,n)
Define el vector cuyos primeros y ltimos elementos son los elementos
especificados y que tienen en total n elementos en escala logartmica
uniformente espaciados entre si.
Visualizacin de un elemento de un vector y de una
matriz:

x(n) Devuelve el enesimo elemento del vector x
x(a:b)
Devuelve los elementos del vector x situados entre el a-esimo y el b-esimo,
ambos inclusive.
x(a:p:b)
devuelve los elementos del vector x situados entre el a-esimo y el b-esimo,
ambos inclusive, pero separados de p en p unidades.
x(b:p:a)
devuelve los elementos del vector x situados entre el b-esimo y el a- esimo
ambos inclusive separados de p en p unidades empezando por el b-esimo
(b>a).
Funcin Descripcion
ones(m,n) Crea una matriz mxn, todos unos
zeros(m,n) crea una matriz mxn, todos ceros
eye(m,n) crea una matriz identidad: una matriz de mxn con unos en la diagonal y ceros en los dems elementos
A transpose(A) Crea la matriz transpuesta de A(intercambia sus filas por columnas)
diag(vect.) Crea una matriz diagonal a partir de un vector.
horzcat Concatena matrices horizontalmente
eig(A) Calcula los valores y vectores propios de la matriz A
rref(A) Devuelve la matriz equivalente o forma canonica de A
magic(n) crea una matriz cuadrada de nxn con filas, columnas y diagonales cuyas sumas es la misma.
rand(m,n)
crea una matriz de mxn en forma aleatoria, donde sus elementos estn distribuidos uniformemente entre
0 y 1.
find(A) devuelve los indices de los elementos de la matriz A, que no son ceros, en forma vertical
size(A) devuelve el tamao de la matriz
trace(A) Computa la suma de los elementos de la diagonal principal
inv(A) Devuelve una matriz inversa a la original
det(A) Entrega el valor de la determinante de la matriz
tril(A) Devuelve la parte triangular inferior de la matriz A.
triu(A) Devuelve la parte triangular superior de la matriz A.
flipud(A) devuelve la matriz cuyas filas estan colocadas en orden inverso ( de arriba abajo) a las filas de A
fliplr(A) Devuelve la matriz cuyas columnas estan colocadas en orden inverso ( de izquierda a derecha) a las A
rot90(A) rota 90 grados la matriz A
reshape(A,m,n)
devuelve la matriz de orden mxn extrada de la matriz a tomando elementos consecutivos de A por
columnas.
MATRICES ESPECIALES EN MATLAB
Comandos Descripcion
det(A) Calcula el determinante de la matriz A
length(v) Calcula la dimensin del vector v.
size(A) Calcula la dimensin de la matriz A.
cross(u,v) Calcula el producto vectorial de dos vectores u y v en R3.
norm(v,p)
Calcula la norma de un vector v. donde puede ser 1,2 o inf. Si p=1 (calcula la
suma de los valores absolutos de todos los elementos de v); si p=2
(norma Euclidiana, opcin por defecto); p=inf(calcula el mximo valor
absoluto de sus elementos).
norm(V,p) Calcula la norma de una matriz A.
rank(A) Calcula el rango de la matriz A.
Propiedades y comandos de vectores y matrices
Concatenacin de matrices: Es el proceso de unir
una o mas matrices para crear una nueva. Los
smbolos corchetes[ ], sirven para construir matrices y
tambin para concatenar.

C= [A B] Concatena horizontalmente las matrices A y B.
C=[A;B] Concatena verticalmente las matrices Ay B.


Existen funciones que tambin permiten
concatenar.


Funcin Descripcion
Cat Concatena matrices con una dimensin especifica
horzcat Concatena matrices horizontalmente
vertcat Concatena matrices verticalmente
repmat(A,m,n)
Crea una nueva matriz de copias , m veces verticalmente y n
veces horizontalmente
blkdiag
Crea una nueva matriz de copias , m veces verticalmente y n
veces horizontalmente bloque diagonal a partir de matrices
existentes, los dems elementos de la nueva matriz son ceros.
Operadores lgicos:
Matlab, ofrece smbolos para denotar las operaciones
lgicas. Los operadores lgicos ofrecen un camino para
combinar o negar expresiones relacionales.
Para aplicar los siguientes operadores las matrices
deben tener dimensiones iguales.
Operador Descripcion
&
Devuelve el valor de 1 en cada posicin , donde los
elementos de ambas matrices no son ceros , o para
los otros casos
I
devuelve el valor de 1 en cada posicin , donde los
elementos por lo menos de una matriz no es nula, y
o para los otros casos.
~
Complementa cada elemento de la matriz de
entrada.
xor
Devuelve el valor de 1, en cada posicin donde los
elementos de ambas matrices son diferentes, y 0
para los otros casos.
Operadores relacionales:
Los operadores relacionales ejecutan comparaciones
elemento a elemento entre dos matrices y devuelve una
matriz del mismo tamao cuyos elementos son ceros si
la correspondiente relacin es cierta. O unos si la
correspondiente relacin es falsa. Los operadores
relacionales tambin permiten comparar escalares con
vectores o matrices, en cuyo caso se compara el escalar
con todos los elementos de la matriz.
Operadores Descripcin
~ = a~=: establece la condicin de ab(afecta a los nmeros complejos)
> a>b: establece la condicin de a mayor que b. ( solo afecta a partes reales)
<
a<b: establece la condicin de a menor que b. ( para complejos solo afecta a partes
reales)
>= a>=b: establece la condicin de a mayor o igual que b.
<=
a<=b: establece la condicin de a menor o igual que b (solo afecta a las partes
reales)
ab: establece la disyuncin a o b.
= =
a==b: establece la condicin de a igual que b. (afecta a los nmeros complejos)
Tipos de datos:
Nmeros enteros

NUMEROS ENTEROS
TIPO DE DATO RANGO DE VALORES FUNCION DE CONVERSION
Entero con signo de 8 bit -2^7 a 2^7-1 int8
Entero con signo de 16 bit -2^15 a 2^15-1 int16
Entero con signo de 32 bit -2^31 a 2^31-1 int32
Entero con signo de 64 bit -2^63 a 2^31-1 int64
Entero sin signo de 8 bit 0 a 2^8-1 uint8
Entero sin signo de 16 bit 0 a 2^16-1 uint16
Entero sin signo de 32 bit 0 a 2^32-1 uint32
Entero sin signo de 64 bit 0 a 2^32-1 uint64
Nmeros enteros: Matlab representa nmeros
decimales en forma simple y doble precisin con una
funcin de conversin.
a) Doble precisin:
Valores mximo y mnimos de doble precisin: Las
funciones realmax y realmin retornan los valores
mximos y mnimos que pueden representarse con el
tipo doubl
Creacin de datos de doble precisin: como el tipo
de dato numrico por defecto de Matlab es de doble
precisin, entonces solo se requiere una simple
sentencia de comandos.
Conversin a doble precisin: Se puede convertir
otros datos numricos, caracteres o cadenas , y datos
lgicos a doble precisin usando la funcin Matlab
double.
Programacin en Matlab:

1. Lectura y escritura de variables : input, disp, fprintf.

Las siguientes funciones permiten leer variables desde el
teclado y visualizar mensajes en la pantalla de la
computadora.

a. Input: Aparece un mensaje en la pantalla pidiendo un
dato. El valor digitado ser asignado a la variable. Si
se desea asignar una cadena que debe aadir el
argumento s.

b)disp: Permite visualizar en pantalla un mensaje de texto
o el valor de una matriz, pero sin imprimir su nombre.
Las cadenas de caracteres se consideran un caso
especial de errores.

c) fprintf: Permite visualizar un valor numrico o el
resultado de la expresin guardada por el usuario.
Tiene ventaja que se pueda escoger un formato.
Las especificaciones de formato para las variables son:

%s para cadenas de caracteres.
%d para variables enteras.
%f para variables decimales .
%lf para grandes variables decimales.


Estructuras condicionales:

Son instrucciones que permiten controlar un bloque de
sentencias segn cumpla o no una condicin.

a. Estructura if:
Caso 1.1. Su forma mas simple se escribe as:
if condicin
sentencias
end
Caso 1.2. Con dos bloque de sentencias
else %opcin por defecto cuando no se cumple la
condicin 1, puede ser omitida.
Bloque2 de sentencias
end
Caso 1.3. Con condiciones mltiples ( anidadas)
if Condicion1
bloque1
Elseif condicion2
bloque2
Elseif condicion3
bloque3
Else %opcin por defecto cuando no se
cumplen ni la condicin 1,ni 2,ni3.
Bloque4
End



b. Estructura Swich. ( similar a la instruccin if anidada)
Swich expresin
case Valor1
Bloque1
Case {valor2,valor3,valor4,.)
Bloque2
.
Case Valor n
Bloquen
otherwise
Bloque(n+1)
End


c. Estructura Try.catchend
Controla los errores que se producen durante la
ejecucin de un programa.
Si el error se produce durante la ejecucin del bloque
sentencias1, el control se transfiere al bloque
sentencias2. si la ejecucin transcurriera sin errores,
sentencias 2 no se ejecuta.
Sintaxis:
Try
sentencias1
Catch end
sentencias
End.

3. Estructuras repetitivas:
Permiten ejecutar mas de una vez un mismo bloque
de sentencias. Al igual que las estructuras
condicionales, tambin se pueden anidar.

a. Estructura For
permite repetir la ejecucin de un bloque de
sentencias, un numero definitivo de veces. Si se
omite el incremento, se asigna un incremento de
1.



b Estructura While:
La repeticin del bloque de sentencias depende si se
cumple o no las condiciones. Si se usa cuando no se
sabe previamente el numero de veces que se ha
repetir el proceso.
While ( mientras se cumple la condicin)
sentencias
End
Si se cumple la condicin vuelve a ejecutarse la
repeticin.





4 Operadores lgicos:






Operadores Lgicos
&(and)
Condicion1 Condicion1 Resultado
Falsa falsa falsa
Falsa VERDADERO falsa
VERDADERO Falsa falsa
VERDADERO VERDADERO VERDADERO
/(Or)
Condicion1 Condicion1 Resultado
Falsa falsa falsa
Falsa VERDADERO VERDADERO
VERDADERO Falsa VERDADERO
VERDADERO VERDADERO VERDADERO
~(Not)
c Estructura break:
Termina la ejecucin de un bucle for y/o while mas
interno de los que comprende dicha sentencia.





5 Creacin de archivos M:
La ejecucin de comandos en la ventana de
comandos solo es adecuada si se desea probar un
numero pequeo de ideas en forma interactiva
donde no se tenga que corregir . Sin embargo, en
los casos en que los comandos ocupen mas de
unas cuantas lneas es preferible almacenar estas
lneas de comandos en archivos de textos. Tiene
ventajas usar el propio editor de Matlab llamado
medit, que tiene extensin (.m).

Existen dos tipos de archivos *.m:

a. Los archivos de comandos *.m(o scripts):
Contienen un conjunto de comandos que se ejecutan
sucesivamente cuando se digita el nombre del archivo en la
ventana de comandos de Matlab.
Cuando se llama a un archivo de comando desde la lnea de
comandos se crean variables en el espacio de trabajo que
permanecen en la memoria al terminar la ejecucin de dicho
archivo.
Para crear un archivo m:seleccionar del men File, la opcin
new y luego SCRIPT.
b. Las funciones:
Una funcin es un bloque de instrucciones que realiza una
tarea y que devuelve un valor al procedimiento o funcin que
la llama.
El espacio de trabajo de una funcin es independiente del
espacio de trabajo base y del espacio de trabajo de las
dems funciones. No puede haber interferencia entre nombres
de variables.
El comando function permite definir funciones similares a las
de Matlab, con su nombre, argumentos y valores de retorno.
Los argumentos de entrada son los datos de la funcin.
Los argumentos de salida o valores son los resultados.
La sintaxis para definir una funcin es:
Function[valores de retorno]= nombre_funcion(argumentos de
entrada).
En caso de que haya mas de un parmetro por de salida , se
separan por comas. Si solo hay un valor de retorno no se
colocan corchetes.



Variable local: La variable local se declara dentro de una
funcin y es reconocida solo por esta. Pertenece al propio
espacio de trabajo de la funcin.

Variable global: Son aquellas a las cuales puede acceder
una funcin sin haber sido pasadas como argumentos. La
variable se debe declarar tanto en el programa principal
como en las distintas funciones que deben acceder a su
valor.
6. Subfunciones:
Los archivos m pueden contener cdigo para mas de una
funcin. A la funcin principal se le llama funcin primaria,
que es la funcin que invoca el archivo m.
Las otras funciones secundarias son llamadas subfunciones.


7. Creacin de referencias a funciones:
El tipo de dato: Manipulador de funcin ( Function
Handle).
Un manipulador de funcin es un valor MATLAB
que provee una forma de llamada indirecta a una
funcin.
Se puede pasar manipuladores de funcin en la
llamada a otras funciones para que esta se haga
referencia a una funcin especifica de entre
varias ( lo que se llama funcin de funciones).

Tambin puede ser utilizado en estructuras de
datos para un uso posterior.
a. Construccin de un manipulador de una funcin
conocida(funciones de la biblioteca de MATLAB):
Sintaxis:
fhandle=@nombrefuncion

Ejemplo:
Crear un manipulador de funcin senoidal de
MATLAB y evaluar la funcin referenciada en pi/2;
luego, evalu el valor de e1 mediante una nueva
referencia de la misma variable manipuladora de
funcin.


b. Manipuladores a funciones personalizadas:
Consiste en crear un manipulador de una funcin
creada por el usuario
Sintaxis:
fhandle= @(lista de variables) implementacin de
funcin
Para ejecutar la funcin asociada al manipulador
se hace mediante:
fhandle(arg1,arg2,argN).
Ejemplo: Crear una funcin sqr que calcule el
cuadrado de un numero
c. Funciones que utilizan manipuladores de funcin:
Estas funciones reciben como argumentos de entrada
manipuladores a funcin para particularizar sus clculos
con la funcin referenciada.
Dadas las funciones:



Calcular el valor de:


Sintaxis:
q=quad(fhandle,a,b)
Nota: la funcin quad, calcula la integral aproximada de la
funcin de valores escalares a la que hace fhandle desde
a hasta b con error de 1 e-6, usando la cuadratura
Simpson adoptiva y recursiva.
Grficos en Matlab:
1. Las ventanas de la figura:
Todas las graficas realizadas en MATLAB se
realizan en ventanas denominadas ventanas de
figura. Cada ventana figura tiene asignado un
identificador, con lo cual podremos hacer referencia
a ella. A este manipulador (handle) de ventana de
figura.
2. Creacin de ventanas figura:
Las ventanas de figura se crean de 2 maneras:
a. Automticamente al invocar alguna funcin de
trazado de grafica.



b. Manualmente, mediante la invocacin a la
funcin figure.
Ejemplo: Obtener en una ventana de figura, el trazado
de la funcin f(x) = x^2, para x [-3;3] con paso x=0.5
Ejemplo: teniendo cerradas cualquier ventanas figura,
crear una ventana de figura vaca mediante:
En este instante, cualquier funcin de trazado se
efectuara sobre la ventana de la figura que sean
necesarias; asi:

En este instante, cualquier funcin de trazado se
efectuara sobre la ventana de figura figure3(ventana de
figura actual).
Para obtener el manipulador de la actual ventana de
figura ( la ultima visualizacin) utilizamos funcin gcf
(get current figure).
Finalmente, para cerrar una ventana de figura figure n
lo hacemos mediante la funcin close(n); el orden no
interesa, en caso no exista la ventana close retornara el
mensaje de error invalid figure handle
Graficas en dos dimensiones en el plano:
COMANDOS DESCRIPCION
Plot(X,Y) Dibuja el conjunto de puntos (x,y) en un sistema cartesiano
Bar(X,Y) Grafico de barras vertical , donde "y" representa las frecuencias y "x" define el intervalo en el eje x.
Barh(x,y) Grafico de barras horizontal, donde "y" representa las frecuencias y "x" define el intervalo del eje y.
stem(x,y) Grafico de bastones verticales, donde "y" representa las frecuencias y "x"define el intervalo en el eje x.
stairs(x,y) Grafica una curva escalada
Polar(x,y) Dibuja una curva en coordenadas polares , y=y(x)
Pie(x) Realiza el grafico de sectores relativo al vector x.
rose(x) Dibuja el histograma angular relativo al vector x.
compass(x,y)
Dibuja un conjunto de flechas con origen en (0,0) y cuya magnitud y direccin estn determinadas por el modulo de z.
(z=x+iy)
feather(x,y)
Dibuja un conjunto de flechas con origen en el eje x, y cuya magnitud y direccin estn determinados por el modulo
de y.
fplot("f",[a,b]) grafica la funcin f en el intervalo [a,b].
ezplot("f",[a,b]) grafica la funcin f en el intervalo [a,b], adicionndole el titulo por defecto
loglog(x,y) Realiza una grafica cartesiana con escala logartmica en los ejes coordenados.
semilogx(x,y) Realiza una grafica cartesiana con escala logartmica en el eje "x" y escala normal en el eje "y".
semilogy(x,y) Realiza una grafica cartesiana con escala logartmica en el eje "y" y escala normal en el eje "x".
fill(x,y,c)
dibuja la regin poligonal cuyos vrtices son los elementos de los vectores columna x, y;el parmetro "c" contiene el
color al graficar
line:
bar:
stairs:
polar:
polar:
pie:
loglog:
fplot:
GRAFICAS
EN 3
DIMENSIONE
S.
COMANDOS DESCRIPCION
Plot3(x,y,z) Dibuja el conjunto de puntos (x,y,z) en un sistema de tres dimensiones
fill3(x,y,z,c)
Dibuja una regin poligonal cuyos vrtices son los elementos de los vectores columna
x,y,z. el parmetro "c" contiene el color a graficar.
meshgrid(x,y)
Crea arreglos bidimensionales a partir de los arreglos "x" e "y", para elaborar la grafica de
una superficie explicita z=f(x,y).
mesh(x,y,z) Grafica una superficie explicita z=f(x,y) con los arreglos x,y e z.
meshc(x,y,z)
Grafica una superficie explicita z= f(x,y) con los arreglos x,y e z, proyectando las curvas
de nivel en el plano xy.
meshz(x,y,z)
Grafica una superficie explicita z= f(x,y) con los arreglos x,y e z, cerrando la grafica con
las fronteras de dominio.
surf(x,y,z)
Grafica una superficie explicita z= f(x,y) con los arreglos x,y e pintando cada una de las
celdas
surfc(x,y,z)
Grafica una superficie explicita z= f(x,y) con los arreglos x,y e z, proyectando las curvas
de nivel en el plano xy.
surfl(x,y,z)
Grafica una superficie explicita z= f(x,y) con los arreglos x,y e z, considerando una
iluminacin en formato bsico.
waterfall(x,y,z) grafica una superficie explicita z=f(x,y) en forma de cascada
contour(x,y,z) Grafica las curvas de nivel de la superficie explicita z=f(x,y).
bar3(x,y)
Grafica barras verticales , donde "y" representa las frecuencias y el incremento en "x"
define el lado del cuadrado que es la base del paralelepipedo.
comet3(x,y,z) grafica con movimiento una curva para mtrica x=x(t), y=y(t), z= z(t).
sphere grafica la esfera unitaria usando 20*20 caras
cylinder('f')
grafica una superficie de revolucin generada por la rotacin de la funcin f=f(t) en el
intervalo definido para t.
stem3r(x,y,z)
grafica puntos de una curva para mtrica x=x(t), y=y(t), z=z(t), representndola con
bastones.
pie3(x) grafica sectores tridimensionales para la frecuencia de x.
ribbon(y,z,c)
grafica una superficie explicita z=f(x,y) como cintas tridimensionales , "c" especifica el
ancho de la cinta.
quiver3(x,y,z,u,v,w,c)
grafica los vectores de componentes (u,v,w) en los puntos (x,y,z); "c" indica el tamao de
los vectores.

ING. GIOVENE PEREZ CAMPOMANES
Email: gpcampomanes@gmail.com
Blog:ingenieriahidraulicaunmsmimf.blogspot.com

También podría gustarte