Manual de Prácticas de Métodos Numéricos Usando El Programa Matlab
Manual de Prácticas de Métodos Numéricos Usando El Programa Matlab
1
Índice
1. Introducción......................................................................................................................6
4. Funciones Matemáticas...................................................................................................16
2
4.2. Funciones Trigonométricas.........................................................................................17
5.2. Matrices.......................................................................................................................23
5.3. Hipermatrices:.............................................................................................................25
3
6.3. Funciones que operan solo sobre vectores:.................................................................29
7. Gráficos en MATLAB....................................................................................................31
8. Programación de MATLAB............................................................................................44
4
8.2.2. Operadores lógicos...............................................................................................45
9. Análisis estadístico..........................................................................................................47
5
1. Introducción
Todas las operaciones que realiza MATLAB se basan en una estructura de datos matricial.
Dentro del entorno de trabajo de MATLAB, se pueden definir nuevos comandos o funciones,
programadas por el propio usuario, a través de los ficheros .m. Este tipo de ficheros se
encuentran en las llamadas toolbox de MATLAB, que son una colección de funciones ya
programadas y disponibles para el usuario. En este sentido, MATLAB funciona como un
lenguaje interpretado, es decir, reconoce y ejecuta los comandos que se le pasan a través del
editor de comandos (Command Window). Todas estas funciones o comandos se agrupan en
las toolboxes y abarcan diferentes campos, como son el análisis y adquisición de datos,
procesamiento de imágenes y de señales, análisis y diseño de sistemas de control,
comunicaciones, simulaciones en tiempo real y también herramientas para finanzas,
estadística, economía o lógica borrosa.[ CITATION Ber10 \l 10250 ]
Según Sassano, Greco, Yommi, & Heinze(2016) la ventana de apertura de Matlab R2014a,
consta de algunas ventanas, cuatro de las cuales se abren en la vista por defecto. Otras se
abren conforme se necesiten durante una sesión y son configurables desde las opciones de
MATLAB.
6
Figura 1. Interfaces de la ventana.
7
El operador comentario en Matlab es el signo de porcentaje (%) se recomienda el uso
de comentarios como recordatorios.
Ejemplo : Comentarios.
8
Figura 5. Workspace (Ventana 4):
Según Chapra & Canale, (2007) las operaciones con cantidades escalares se llevan a
cabo de manera directa, como en otros lenguajes de computación. Los operadores
comunes, son:
Tabla 1
Operadores matemáticos básicos en MATLAB
9
Según Casado , (2007) el orden de precedencia en Matlab es:
Tabla 2
Orden de procedencia de operaciones
Orden de procedencia de operaciones
1°
2° * /
3° + -
Fuente: Fernández, s.f., Manual Básico de MATLAB
10
3.2. Almacenamiento de datos en MATLAB
11
>> b = 4; % no escribe el valor de b en la pantalla por el ; del final
11
MATLAB distingue entre mayúsculas y minúsculas en los nombres de variables,
es decir la variable AB y la variable ab son distintas.
Los nombres de variables deben empezar siempre por una letra y pueden constar
de hasta 63 caracteres, que pueden ser letras y números.
No pueden utilizarse para nombrar variables los caracteres especiales siguientes:
+, -,=,*, <, >, ^,…. El carácter guion bajo (_) se considera como una letra.
No se debe nombrar variables ya predefinidas en Matlab ya que son variables
permanentes, es decir, poseen significado especial y no se pueden eliminar. Por
ejemplo: pi ya tiene un valor predefinido en el programa, no podría usar pi=7,
porque ya no podría usar el verdadero valor de pi en el programa.
En Matlab eps es el numero mas pequeño que admite el programa o también es
la precisión de la maquina en análisis numérico, es el máximo error relativo en la
representación de un número real.
Realmin: es el menor número positivo utilizable.
Realmax: es el mayor número positivo utilizable.
A continuación presentamos algunas variables permanentes:
Tabla 4
Reglas para nombrar los datos en MATLAB
Variable Significado
Eps Número más pequeño, tal que cuando se le suma 1, crea un número
en coma flotante en el computador mayor que 1.
Ans Variable usada por defecto para almacenar el último resultado
Pi Razón de una circunferencia a su diámetro
iyj Constante imaginaria
Inf ∞. Se trata de un valor excesivamente grande para ser almacenado.
NaN Magnitud no numérica
date toma el valor de la fecha actual.
Fuente: Fernández, s.f., Manual Básico de MATLAB
12
3.4.1. Comando who:
Cuando se quiere tener una relación de las variables que se han utilizado en
una sesión de trabajo.
Ejemplo:
>> who
Your variables are:
a temperatura
b volumen
c nombre
3.4.2. Comando whos:
Se utiliza para eliminar una variable, si usamos clear all borra todas las
variables.
3.5. Tipos de datos fundamentales
Según el autor Educational Purposes, (2019) los tipos de datos fundamentales son:
numérico, logical , char , cell , struct , table y function_handle .
13
MATLAB representa números de punto flotante en formato de precisión
doble o de precisión simple. El valor predeterminado es la precisión doble,
pero puede hacer que cualquier número tenga una sola precisión con una
función de conversión simple.
b. Enteros
MATLAB tiene cuatro clases enteras con signo y cuatro sin signo. Los
tipos con signo le permiten trabajar con enteros negativos y positivos, pero
no pueden representar un rango de números tan amplio como los tipos sin
signo porque se utiliza un bit para designar un signo positivo o negativo
para el número. Los tipos sin firmar le ofrecen una gama más amplia de
números, pero estos números solo pueden ser cero o positivos.
c. Char:
Las matrices de caracteres proporcionan almacenamiento para datos de
texto en MATLAB. De acuerdo con la terminología de programación
tradicional, una matriz (secuencia) de caracteres se define como una cadena.
d. Lógico:
Los valores lógicos de 1 o 0, representan verdadero y falso
respectivamente. Se usa para condiciones relacionales e indexación de
matrices. Porque es VERDADERO o FALSO tiene un tamaño de 1 byte.
e. Estructura:
Una matriz de estructura es un tipo de datos que agrupa variables de
diferentes tipos de datos utilizando contenedores de datos llamados campos.
Cada campo puede contener cualquier tipo de datos. Acceda a los datos en
una estructura usando la notación de puntos del formulario
structName.fieldName.
f. Tabla:
14
Las variables de la tabla pueden ser de diferentes tamaños y tipos de
datos, pero todas las variables deben tener el mismo número de filas.
g. Célula:
Es muy útil el tipo de datos MATLAB: la matriz de celdas es una
matriz en la que cada elemento puede ser de diferente tipo y tamaño de
datos. Es un instrumento muy fuerte para manipular los datos como desee.
h. Manijas de función:
Almacena un puntero a una función (por ejemplo, a función anónima). Le
permite pasar una función a otra función o llamar a funciones locales desde
fuera de la función principal
15
después de la coma
Format hex Hexadecimal 400921fb5442d18
Format rat Aproximación racional 353/113
Format + Positivo, negativo o espacio en +
blanco
Fuente: Fernández, s.f., Manual Básico de MATLAB
4. Funciones Matemáticas
Tabla 6
Aproximaciones
Tabla 7
5.
Funciones Trigonométricas
Función ¿Qué hace?
… (x) función trigonométrica con el ángulo expresado en radianes
16
sin (x),cos (x) seno (radianes) coseno tangente cosecante secante
tan (x),csc (x) cotangente
sec (x),cot (x)
…d (x) función trigonométrica con el ángulo expresado en grados
sind (x) seno (grados)
…h (x) función trigonométrica hiperbólica con el ángulo expresado en radianes
sinh (x) seno hiperbólico (radianes)
a… (x) inversa de la función expresado en Trigonométrica con el resultado
radianes
asin (x) arco seno (radianes)
a…d (x) inversa de la función expresado en grados Trigonométrica con el resultado
asind (x) arco seno (grados)
a…h (x) inversa de la función trigonométrica hiperbólica con el resultado expresado en radianes
asinh (x) arco seno hiperbólico (radianes)
Fuente: Fernández, s.f., Manual Básico de MATLAB
Ejemplos:
Tabla 8
5.
Algunas operaciones
17
complejo
sign (x) signo del argumento si x es un valor real
(-1 si es negativo, 0 si es cero, 1 si es positivo)
exp (x) exponencial
gcd (m,n) máximo común divisor
lcm (m,n) mínimo común múltiplo
log (x) logaritmo neperiano o natural
log2 (x) logaritmo en base 2
log10 (x) logaritmo decimal
mod(x,y) módulo después de la división
rem (x,y) resto de la división entera
sqrt (x) raíz cuadrada
nthroot raíz n-ésima de x
(x,n)
Fuente: Fernández, s.f., Manual Básico de MATLAB
Nota:(x e y cualquier escalar, m y n enteros)
Ejemplo:
Tabla 9
5.
Números Complejos
18
abs (x) magnitud del número complejo x 5
angle (x) ángulo (en radianes) del complejo x 0.9273
complex (y,z) genera el complejo y + zi 2.0000 + 7.0000i
conj (x) conjugado del número complejo x 3.0000 - 4.0000i
imag (x) parte imaginaria del número complejo x 4
real (x) parte real del número complejo x 3
sign (x) divide el complejo x por su magnitud, devuelve 06000 + 0.8000i
un número complejo con el
mismo ángulo de fase pero con magnitud 1
isreal (x) devuelve 1 si es real, y 0 si es complejo 0
Fuente: Fernández, s.f., Manual Básico de MATLAB
Nota: (x número complejo, y y z números reales)
4.5. Lectura y escritura interactiva de variables
Según el autor Naya, (2019): “Todos los m-ficheros admiten sentencias que permiten
mantener una comunicación con el usuario sobre la ventana de comandos. Para ellos, se
verá a continuación una forma sencilla de leer variables desde teclado y escribir
mensajes en la pantalla del PC”
Ejemplo:
Diseñe un programa que determine el cociente y el residuo de una división
entera.
Solución:
Figura 7. Cociente y residuos de una división entera
19
Fuente: Elaboración propia
Funciones Estadísticas
20
tabulate (v) tabla de frecuencias del vector
var (X) varianza de la muestra
Fuente: Fernández, s.f., Manual Básico de MATLAB
Ejemplo:
5.1. Vectores:
El tratamiento que el paquete MATLAB hace de los vectores, también llamados
arrays, amplifica considerablemente la resolución de problemas básicos como pueden
ser la respresentación gráfica de funciones, el tratmiento estadístico de datos,etc.
21
EJEMPLO;
En general, se introducen como los vectores “fila”, separando las filas por un
punto y coma.
Ejemplo:
22
Ejemplo:
5.2. Matrices
Las matrices se definen de forma similar a los vectores, introduciendo sus filas
como vectores fila y separando unas filas de otras mediante punto y coma o saltos de
línea. [ CITATION Nay19 \l 10250 ]
Según el autor Naya, (2019) las matrices pueden también utilizarse como
argumento de las funciones intrínsecas. Algunas funciones específicas para manejo
de matrices son:
diag(A) vector conteniendo la diagonal principal de la matriz A
diag(A,k) k-ésima sub o super diagonal de A (según sea k>0, k=0, k<0)
23
max(A) Vector conteniendo el valor máximo de las componentes de cada
columna. [y,k]=max(A) nos da, además, la fila en la que se produce el
máximo de cada columna
zeros(n,m) matriz nxm con todas sus componentes iguales a cero
zeros(n) ídem nxn
ones(n,m) matriz nxm con todas sus componentes iguales a uno
ones(n) ídem nxn
eye(n,m) matriz unidad: matriz nxm con diagonal principal =1 y el resto de
las componentes =0
diag(v) (donde v es un vector) matriz con la diagonal principal = v y ceros en
el resto
diag(v,k) (donde v es un vector) ídem con la k-ésima diagonal=v y ceros en
el resto
Ejemplo:
24
[L,U] = lu (A) factorización LU
[Q,R] = qr (A) factorización QR
Ejemplo:
25
5.3. Hipermatrices:
MATLAB permite trabajar con matrices de más de dos dimensiones. Los elementos
de una hipermatriz pueden ser números, caracteres, estructuras y vectores o matrices de
celdas. Las funciones que operan con matrices de más de dos dimensiones son análogas a
las funciones vistas anteriormente aunque con algunas diferencias.
Estas funciones, que comprenden las funciones matemáticas y otras básicas, cuando se
aplican a una matriz actúan sobre cada elemento de la matriz. Entre estas funciones se
encuentran: [ CITATION Gal15 \l 10250 ]
Tabla 13: Operaciones básicas con matrices
sin(x), cos(x),... funciones trigonom´etricas
log(x) logaritmo natural
log10(x) logaritmo decimal
exp(x) funci´on exponencial
sqrt(x) ra´ız cuadrada
sign(x) funci´on signo: devuelve -1 si < 0, 0 si = 0 y
1 si > 0
abs(x) valor absoluto
26
Fuente: Galindo, H. (2015). Funciones en Matlab. Recuperado el 20 de junio de 2019, de
http://hamiltongalindo.com/uploads/14528060481.pdf
Ejemplos:
27
tan(x): función tangentede x.
atan(x): función arcotantgente de x con valores de –π/2 a π/2.
angle(z): calcula el argumento del número complejo z.
log(x): función logaritmo natural en base e del número x.
log10(x): función logaritmo decimal del número x
rats(x): aproxima el argumento por una fracción, es decir, por un número
racional.
rem(x,y): calcula el resto de dividir x por y.
round(x): redondea el valor de x por el entero más próximo.
sign(x): calcula el signo de x. Para una cantidad positiva el signo es 1, para una
negativa el signo es -1, y para el cero el signo es 0.
Ejemplos:
28
Ejemplo: suma de dos funciones en Matlab
Como afirma Galindo, (2015) las siguientes funciones solo actúan sobre vectores (no
sobre escalares ni matrices):
Tabla 14
Funciones que operan solo sobre vectores:
29
vector
[y, i ] = sort(x) ordenaci´on de menor a mayor de los elementos de un vector x. Devuelve
el vector ordenado y, y un vector i con las posiciones iniciales en x
de los elementos en el vector ordenado y.
Fuente: Galindo, H. (2015). Funciones en Matlab. Recuperado el 20 de junio de 2019, de
http://hamiltongalindo.com/uploads/14528060481.pdf
Tabla 15
Funciones que operan sobre matrices
B = Aj calcula la traspuesta (conjugada) de la matriz A
B=AJ calcula la traspuesta (sin conjugar) de la matriz A
v = poly(A) devuelve un vector v con los coeficientes del po-linomio
característico de la matriz cuadrada A
t =trace(A) devuelve la traza t (suma de los elementos de la diagonal) de
una matriz cuadrada A
[m, n] devuelve el nu´mero de filas m y de columnas n de una matriz
=size(A) rectangular A
n = size(A) devuelve el tamañ o de una matriz cuadrada A
nf = size(A, devuelve el nú mero de filas de A
1)
nc = size(A, devuelve el número de columnas de A
2)
Fuente: Galindo, H. (2015). Funciones en Matlab. Recuperado el 02 de junio de 2019, de
http://hamiltongalindo.com/uploads/14528060481.pdf
Las funciones exp(), sqrt() y log() se aplican elemento a elemento a las matrices
y/o vectores que se les pasan como argumentos. Existen otras funciones similares
que tienen tambi´en sentido cuando se aplican a una matriz como una ´unica entidad.
Estas funciones son las siguientes (se distinguen porque llevan una “m” adicional
en el nombre):
Tabla 16
Funciones que operan sobre matrices
expm(A) Si A =XDX J ,expm(A)=X ∗ diag (exp(diag (D))) ∗
X J
30
Fuente: Galindo, H. (2015). Funciones en Matlab. Recuperado el 20 de junio de 2019, de
http://hamiltongalindo.com/uploads/14528060481.pdf
Cuando se usa con una expresión, la función solve iguala la expresión a cero y
resuelve para las raíces.
Ejemplo:
Tabla 17
31
Funciones que operan sobre matrices
7. Gráficos en MATLAB
7.1. Gráficos en 2D
Tabla 18
Tipo de función sin orden
Función Salida
Tabla 19
Ordenes de ventanas gráficas para cerrar
Funcion Salida
32
Close Cierra la ventana gráfica activada
Es posible borrar el contenido de una ventana grafica sin cerrarla, utilizando el orden:
Tabla 20
Ordenes de ventanas gráficas para cerrar
Funcio Salida
n
Cif Borra el contenido de una ventana gráfica activada.Manteniendola abierta
Fuente: Fernández, s.f., Manual Básico de MATLAB
Cada grafico se realiza por defecto en una ventana grafica diferente. En ocasiones
interesa superponer varios dibujos en una ventana gráfica, para lo que se hace uso de las
ordenes:
Tabla 21
Ordenes de ventanas gráficas para superponer
Función Salida
Hold on Mantiene activa la ventana gráfica actual
Hold off Cada gráfico se realiza en una ventana diferente. Es la opción por
defecto
Hold Intercambia hold on y hold off
Tabla 22
Orden básica para trazar gráficos bidimensionales
Función Salida
33
conjunto de puntos {(x1,y1)… (xn, yn)} y los enlaza con segmentos.
plot (x,y,s) Hace lo mismo que plot (x,y) pero con las opciones especificadas en
s. en s puede aparecer un simbolo de cada una de las columnas de la
siguiente tabla, encerrados entre comillas simples.
Dibuja en una misma gráfica, los gráficos definidos por las ternas
plot (x1 , y1 (xi , yi , si ) . Si no se especifican los parámetros si, el dibujo se realiza
,s1 x2, y2 , s2 , … con trazo continuo y un color distinto para cada grafica. Utilizando los
,) siete primeros colores de la tabla en el orden señalado. Si se necesitan
más colores se repiten cíclicamente.
En S no es necesario especificar los tres símbolos, y el formato del grafico es como sigue.
Tabla 23
Formato del color
m magenta S cuadrado
y amarillo D rombo
Ejemplo:
34
Figura 8. Funcion sind(x) en Matlab.
35
Ejemplo:
36
Ejemplo:
37
Para dibujar polígonos podemos usar la función plot pero teniendo en cuenta que el
último punto de ambos vectores deben coincidir para que la gráfica quede cerrada. Pero si
lo que queremos es que quede coloreado todo el interior del polígono debemos usar mejor
la función fill, tiene tres argumentos, los dos vectores que forman los puntos y un tercer
argumento para indicar el color.
Ejemplo:
>> x = [-12 0 12 0 -12]; y = [4 8 4 0 4];
>> plot (x,y)
Figura 12: Grafica de un polígono en Matlab.
38
Para graficar esta función, use
39
Figura 14. Grafica de una circunferencia en Matlab.
7.2. Gráficos en 3d
40
Figura 16. Grafica de la función plot3 (x,y,z) en Matlab.
>> y = [4 8 4 0 4];
>> z = [3 5 10 5 3];
41
Figura 17. Polígono en 3 dimensiones
La orden [X,Y]=meshgrid(x,y) crea una matriz X cuyas filas son copias del
vector x y una matriz Y cuyas columnas son copias del vector y. Para generar la
gráfica de malla se usa la orden mesh(X,Y,Z), mesh acepta un argumento opcional
para controlar los colores. También puede tomar una matriz simple como argumento:
mesh(Z).
Gráfica de superficie: Es similar a la gráfica de malla, pero aquí se rellenan los
espacios entre líneas. La orden que usamos es surf con los mismos argumentos que
para mesh.
La función ezsurf es una función de graficacion simbólica, que sirve como
graficador de superficie.
La función ezmeshc es una función de graficacion simbólica, que sirve para
graficar combinaciones de malla y contorno.
Ejemplo:
42
Figura18. Gráfico de una superficie en Matlab.
43
Tabla 24
Comprensión de mapas de color
Para preparar pequeñas películas o movies se pueden utilizar las funciones movie y
getframe.
44
movie(M,N) reproduce la pelicula N veces. Si N es negativo entonces se reproduce N
veces hacia adelante y hacia atras. Si N es un vector, el primer elemento es el número de
veces que se reproduce la película y los restantes se toma como una lista de cuadros a
reproducir.
8. Programación de MATLAB
En la práctica las expresiones suelen ser del tipo escalar:escalar en cuyo caso las
columnas son escalares.
Un bloque while ejecuta las órdenes mientras todos los elementos de la expresión
sean verdaderos.
while variable = expresión
<orden>
<orden>
…….
<orden>
end
45
8.1.3. Sentencia if:
== Igual a
~= No igual a
< Menor que
46
& Y lógico
A&B produce los resultados que se reflejan en la tabla
A&B es equivalente a and(A,B)
| O lógico
A|B produce los resultados que se reflejan en la tabla
A|B es equivalente a or(A,B)
~ Negación lógica
~A produce los resultados que se reflejan en la tabla
~A es equivalente a not(A)
>> v = quad(fun,a,b)
47
donde:
• fun es un “handle” de la función que calcula el integrando f(x)
Debe responder a la forma: [y]=fun(x) y su código debe estar vectorizado, esto es, debe
poder admitir como argumento x un vector y devolver un vector.
• a,b son los límites de integración
9. Análisis estadístico
Usted puede generar una serie de números (seudo) aleatorios con la función rand. Se dispone
de una distribución uniforme o normal[ CITATION Cha07 \l 10250 ]:
rand(‘normal’)
n = 0 : 5 : 1000 ;
(¿Olvidó él ; ?)
num = rand(size(n)) ;
Probablemente entendió por qué es importante usar punto y coma al final de las instrucciones
anteriores, en especial si no tuvo cuidado de usarlo.
Si desea ver una gráfica de ruido intente
plot(num)
Se supone que éstos son números distribuidos normalmente con una media de cero y una
varianza (y desviación estándar) de uno. Compruébelo mediante
mean(num)
y
std(num)
min(num)
max(num)
hist(num,20)
donde 20 es el número de compartimientos.
48
Si quiere ajustar un polinomio para algunos datos por mínimos cuadrados, utilice la función
polyfit. Intente el siguiente ejemplo:
t=0:5
y = [ -0.45 0.56 2.34 5.6 9.45 24.59 ]
coef = polyfi t( t, y, 3 )
49
BIBLIOGRAFÍA
8. Sassano, M., Greco, A., Yomm, M., & Heinze, G. (2016). Mathworks:
Introducción a la plataforma. Recuperado el 02 de junio de 2019, de
https://campus.fi.uba.ar/pluginfile.php/151512/mod_resource/content/1/Introducci
%C3%B3n%20a%20Matlab%20-%20Volumen%201.pdf
50