Sunteți pe pagina 1din 47

Universidad Autónoma de Zacatecas (UAZ)

Unidad Académica de Ingeniería


MIA-RH, Programa de Civil
Métodos Numéricos con Aplicaciones en MATLAB

MATLAB 6.1-7.1

Profesor : M. I. Fidel A. Ortiz R.


2013-2014 e-mail : miarh.uaz@gmail.com
MATLAB

• Es un sistema interactivo basado en


matrices cuyo propósito principal son los
cálculos numéricos científicos e ingenieriles
y su visualización.
• Se pueden resolver problemas numéricos
complejos en una fracción de tiempo del
requerido en los lenguajes de programación
como son Fortran y C.
• MATLAB: MATrix LABoratory.

Profesor: FAOR 2
Ayuda On-line

• Para solicitar ayuda de una función


específica de MATLAB utilizar (en la
Ventana de Comandos “ventana principal”):

help nombre_de_la_funcion

Profesor: 3
Accesando a MatLab

• Para ejecutar MATLAB se debe ejecutar el


archivo matlab.exe ubicado en el directorio
bin dentro del directorio donde se instaló
Matlab.

Profesor: 4
Ingreso de Matrices

• MATLAB trabaja casi únicamente con un


tipo de objeto, una matriz rectangular con
entradas reales o complejas.
– Matrices de 1-1 representan escalares.
– Matrices con una columna o una fila se llaman vectores.
• Formas de introducir una matriz:
– Ingresando una lista explícita de los elementos […].
– Generado por funciones o sentencias.
– Creado en un archivo con algún editor
– Cargado de datos externos o aplicaciones.

Profesor: 5
Operaciones con Matrices
• Las siguientes operaciones con matrices
están disponibles en MATLAB:
+ suma
- resta
* multiplicación
^ potencia
‘ transpuesta conjugada
\ división izquierda
/ división derecha
• Obs:
– Las operaciones se aplican a escalares.
– En caso que la dimensión sea incorrecta se muestra mensaje de
error.
Profesor: 6
Sentencias, expresiones y variables
• MATLAB es una lenguaje de expresión, es decir, las
expresiones que se ingresan son interpretradas y evaluadas.

• Sentencias de MATLAB son de la forma:


Variable = expresion
expresion

• Expresiones están compuestas por operadores, funciones y


nombres de variables.

– Evaluación de la expresión produce una matriz, la cual se


muestra en pantalla y es asignada a una variable para un futuro
uso. Si no se asigna a una variable, se crea la variable por
default ans
Profesor: 7
Sentencias, expresiones y variables
• Anotaciones importantes:
– Una sentencia puede ser continuada en la línea
siguiente colocando ‘…’
– Varias sentencias se pueden colocar en una
misma línea usando ‘,’ o ‘;’
– Si una sentencia es terminada con ‘;’, el
resultado de la operación no se escribe en
pantalla.
– MATLAB es sensible a mayúsculas y minúsculas.
– El operador ‘%’ actúa en MATLAB como aquel
comando que permite introducir comentarios…

Profesor: 8
Sentencias, expresiones y variables
• who o whos: muestra las variables que se
encuentran en el área de trabajo.
• clear nombre_variable: elimina una variable.
• clear: borra todas las variables.
• eps: le entrega al computador la unidad de
redondeo (~10-16).
• Las letras i y j pueden ser utilizadas como
unidad imaginaria.
• Los cálculos pueden ser parados con
CTRL-C o CTRL-BREAK.
9
Profesor:
Funciones Escalares

sin seno
cos coseno
tan tangente
asin arcseno
acos arcoseno
atan arcotangente
exp exponencial
log logaritmo natural
rem resto
abs valor absoluto
mod módulo

Profesor: 10
Funciones Escalares

Funcion Utilidad
sqrt Raiz cuadrada
sign Signo
round Redondeo
floor Truncar
ceil Aproximar hacia arriba

Profesor: 11
Relaciones y Operadores Lógicos
• Los siguientes operadores lógicos-
relacionales están disponibles en MatLab:
< menor que
> mayor que
<= menor que o igual
>= mayor que o igual
== igual
~= no igual
& y
| o
~ no

Profesor: 12
Ingreso de Matrices
• Ejemplo:
A=[1 2 3; 4 5 6; 7 8 9]

A=[
1 2 3;
4 5 6;
7 8 9]

crea una matriz A de tamaño 3x3.


Los elementos ubicados dentro de una misma fila
pueden ir separados por coma.

Profesor: 13
Matriz

Columnas
1 2 3
1 1 2 3
Filas 2 4 5 66 A(2,3)

3 7 8 9

Profesor: 14
Submatrices

0.2:0.2:1.2 [0.2 0.4 0.6 0.8 1.0 1.2]

a b c d d
e f g h A(1:3,4)= h
A=
i j k l l
m n o p
bd
f h
A(2,:)= efgh A(:,[2 4])=
j l
n p
Profesor: 15
Matrices Complejas
• Las letras i y j pueden ser utilizadas como
unidad imaginaria.
• Ejemplos:
2+6i
A=[1 2; 3 4] + i*[5 6; 7 8]
A=[1+5i 2+6i; 3+7i 4+8i]

– Unidad imaginaria: i=sqrt(-1) o j=sqrt(-1)

Profesor: 16
Matriz
• Lectura de una Matriz desde el Archivo
– Al crear una matriz con un editor esta puede ser cargada
utilizando el comando
load datos.ext

• Funciones que generan matrices:


– rand(n) , rand(mxn) : Crea una matriz de tamaño nxn y
mxn respectivamente con entradas generadas
aleatoriamente y distribuidas uniformemente entre 0 y 1.
– magic(n) : crea una matriz de tamaño nxn el cual es un
cuadrado mágico.
– hilb(n) : Crea una matriz de Hilbert de tamaño nxn.

Profesor: 17
Operaciones con Matrices
• Si A es una matriz cuadrada invertible y b
un vector columna (o fila) entonces:
x = A\b es la solución de A*x=b
x = b/A es la solución de x*A=b

• Operaciones con Arreglos:


– Operadores: .* ./ .\ .^
Actúan elemento por elemento.
Ejemplo: [1,2,3,4].*[1,2,3,4]=[1,4,9,16]

Profesor: 18
Funciones constructoras de
Matrices
Funcion Utilidad
eye matriz identidad
zeros matriz de ceros
ones matriz de unos
diag crea o extrae la diagonal
triu obtiene la parte triangular superior de una matriz
tril obtiene la parte triangular inferior de una matriz
rand genera una matriz aleatoria
hilb crea una matriz de Hilbert
magic crea un cuadrado (matriz) magico
toeplitz crea una matriz de toeplitz

Profesor: 19
Funciones Vectoriales

Funcion Utilidad
max Maximo
min Minimo
sort Ordenar
sum Suma
prod Producto
median Mediana
mean Media
std Desviacion estandard
any Alguno
all Todos

Profesor: 20
Funciones con Matrices

Funcion Utilidad
eig Obtiene los valores y vectores propios
chol Factorizacion de Cholesky
svd Descomposicion del valor singular
inv Inversa
lu Factorizacion LU
qr Factorizacion QR
hess Forma Hessenberg
schur Descomposicion de schur
expm matriz exponencial

Profesor: 21
Funciones con Matrices

Funcion Utilidad
sqrtm Raíz cuadrada de la matriz
poly Polinomio característico
det Determinante
size Tamaño de la matriz
norm Norma-1, norma-2, norma-F, norma-infinita
cond Número de condición en la norma-2
rank Rango

Profesor: 22
Gráficos y Visualización en MatLab

23
Profesor:
Estructura de las Gráficas

Ventana Figura (Figure)


(ventana para gráficos)

24
Profesor:
Gráficos en 2D

• plot: crea un gráfico en el plano x-y


• fplot: grafica una función dentro de un intervalo.
• title: título del gráfico.
• xlabel: etiqueta del eje x
• ylabel: etiqueta del eje y
• gtext: coloca un texto en el gráfico usando el
mouse
• text: posiciona el texto en coordenadas
especificadas.
• grid: coloca una malla al gráfico.

25
Profesor:
Gráficos en 2D

• axis([xmin,xmax,ymin,ymax]): reescala los ejes.


• axis(axis): coloca la misma escala para los otros
gráficos.
• axis auto: retorna el auto-escalamiento.
• axis square: Misma escala en ambos ejes.
• axis equal: Misma escala y marcas en ambos ejes.
• axis off: Quita los ejes y sus marcas.
• axis on: Coloca los ejes y marcas.

Profesor: 26
Proceso de Graficado

27
Profesor:
Ejemplo en 2D

x=-4:.01:4;
y=sin(x);
plot(x,y);
title(‘Funcion Seno’)
grid on;
xlabel(‘eje x’);
ylabel(‘eje y’);

Profesor: FAOR 28
Personalizando Gráficas

Color: [R G B]
[1 0 1], [0.75 0.25 0], …

29
Profesor: FAOR
Múltiples Figuras

Múltiples Ejes

“Matriz de plots”

30
Profesor: FAOR
Múltiples Gráficas

“Matriz de plots”

Diferentes tamaños de Ejes

31
Profesor: FAOR
Gráficos en 3D

Trazo de líneas y puntos en 3D:


plot3(x, y, z, ’ Espec. de línea ‘, ‘ Propiedades ‘, ‘ Valores ‘)
32
Profesor: FAOR
Creación de gráficos de malla y de
superficie

1° Creación de la rejilla de puntos: [X , Y] = meshgrid(x, y)


2° Obtención de la imagen de los puntos: Z = f(X, Y)
33
Profesor: FAOR
Creación de gráficos de malla y de
superficie

3° Creación de gráficos de malla: mesh(X , Y, Z) o mesh(Z)


Creación de gráficos de superficie: surf(X, Y, Z) o surf(Z)

34
Profesor: FAOR
Cambio de propiedades de Mesh y Surface

Cambio de color: colormap(C), C = [R G B], C = [0 0 0] Negro


colormap(jet) o colormap(cool)
35
Profesor: FAOR
Cambio de propiedades de Mesh y Surface

Algunas otras funciones: meshz(X, Y, Z); meshc(X, Y, Z);


meshc(X, Y, Z); surfc(X, Y, Z); surfl(X, Y, Z); waterfall(X, Y, Z);
contour3(X, Y, Z, n); contour(X, Y, Z, n) -- plano x-y.
Algunos gráficos especiales: quiver3(X, Y, Z, U, V, W);
[X, Y, Z] = sphere(n); [X, Y, Z] = cylinder(r); bar3(Y); stem3(X,
Y, Z); scatter3(X, Y, Z); pie3(X, status).

36
Profesor: FAOR
Vista de los Gráficos

Control de la dirección de la vista del gráfico generado:


view(az,elev) o view([az, elev]) …
37
Profesor: FAOR
Entrada/Salida

• Asignar un string a una variable:


variable=‘texto’

• Mostrar un texto por la pantalla:


disp(‘texto’)

• Mostrar mensaje de error:


error(‘texto’)

• Entrada de un dato:
variable=input(‘texto’)

Profesor: 38
Guardar y cargar la sesión de
Trabajo
• save: Guarda las variables del área de
trabajo en el archivo ‘matlab.mat’.

• load: carga las variables.

• Import Wizard: comando uiimport

• open: abre el archivo,


open(‘C:\datos.mat’)

Profesor: 39
Guardar y cargar la sesión de
Trabajo

• diary: Registra las sentencias y acciones


ejecutadas en la Ventana de Comandos
hasta que se indique el cierre del registro.

Sintaxis: >>diary(‘nombre_archivo.ext’)
>>diary off %cierra registro

Profesor: 40
Cómo podemos cargar datos y
resguardar resultados?
• La información se asigna y resguarda en el
directorio actual “default” de trabajo.
• Se puede definir un directorio de trabajo
de manera inmediata, sobre la ruta de
búsqueda (set path):

path(path, ‘C:\MATLAB7\work’)

Profesor: 41
Cómo podemos cargar datos y
resguardar resultados?
• Datos o información de entrada:
– Variables asignadas dentro de un fichero script.
– Variables definidas en la Ventana de Comandos.
– Variables asignadas directamente sobre la
ejecución de un fichero ‘script’:
Función “input”
input(‘Mensaje que se muestra en CW’)
input(‘Mensaje’, ‘s’) indica que se
introducirán caracteres en la entrada…
Profesor: FAOR 42
Cómo podemos cargar datos y
resguardar resultados?
• Cargar o leer datos de un archivo
load(‘C:\MATLAB7\work\datos.txt’)
xlsread(‘ … ’)

• Guardar y resguardar resultados:


save C:\MATLAB7\work\resultado.txt
variable –ASCII –DOUBLE –TABS
xlswrite(‘ … ’)

Profesor: 43
Comandos y funciones de salida

• disp: visualiza un texto o el contenido de


una variable sin mostrar su nombre,

disp(nombre de variable) o
disp(‘mensaje’) disp([‘mensaje’, var])

Profesor: 44
Comandos y funciones de salida

• fprintf: visualiza salidas de programas


(texto y datos) en la pantalla o hacia un
fichero, con formato definido,

fprintf(‘Texto %-5.2f texto adicional’,


nombre_variable)
fprintf(‘Valor de x(%i) es: %8.4f\n’,k,x(k))

Profesor: 45
Utilización de fprintf para guardar
la salida generada a un fichero
• Abrir el fichero utilizando el comando
fopen
fid=fopen(‘nombre_fichero.ext’,’permisos’)
permisos: ‘r’; ‘w’; ‘a’
• Escribir la salida en el fichero, utilizando el
comando fprintf
fprintf(fid,‘texto %-5.2f texto’,nombre_var)
• Cerrar el fichero utilizando el comando
fclose
fclose(fid)
46
Profesor: FAOR
Universidad Autónoma de Zacatecas
Unidad Académica de Ingeniería I
MIA-RH, PIC

2013-2014

Fin Tema: MATLAB


¿Preguntas?

Profesor : M. I. Fidel A. Ortiz R.


e-mail : miarh.uaz@gmail.com

S-ar putea să vă placă și