Publicado el 23 de Julio del 2019
1.179 visualizaciones desde el 23 de Julio del 2019
1.012,6 KB
32 paginas
Creado hace 12a (29/09/2011)
Laboratorio de Computación Científica
Primer semestre
Introducción a MATLAB
y OCTAVE
Temario
Introducción
MATLAB y su entorno
OCTAVE y entorno
Editor M-Files y depurador
Ayuda
Variables
Tipos de Datos
Matrices
Vectores
Introducción
¿Qué es MATLAB?
Acrónimo de MATrix LABoratory
Es un SW que combina la programación en un
lenguaje de alto nivel y la capacidad de visualización
de resultados.
Su computación numérica está basada en matrices.
Mathworks matlab estudiante ~ 100 euros
¿Qué es OCTAVE?
GNU Octave es un lenguaje de alto nivel, pensado
principalmente para el cálculo numérico.
Interfaz compatible con Matlab en un alto grado.
Proyecto GNU es software libre bajo los términos
de la Licencia Pública General de GNU.
Matlab y octave en los laboratorios
Existen varias
versión del
MATLAB/OCTAVE
en los laboratorios
MATLAB 5.3
(licencia local)
MATLAB 7.0
(licencia en red)
OCTAVE 3.0
Versión en
consola
MATLAB
últimos comandos
GUI similar al
entorno Windows
líneas de comandos
Directorio de trabajo
Octave (I)
Versión gratuita de SW científico
Ficheros .m compatibles con MATLAB y la mayoría de
los comandos
Multiplataforma: Windows XP/7, Linux y MAC
Versiones multiplataforma descargables en
http://octave.sourceforge.net/
Versiones gráficas en Windows:
GUIoctave (entorno similar a MATLAB):
http://guioctave.com/
Qt-octave: haciendo uso de las librerías gráficas
GNU-Qt en
http://qtoctave.wordpress.com/2010/01/01/qtoctave-0-
8-2-in-windows/
Octave (II)
GUI similar al
entorno Windows
Entorno Gráfico octave
líneas de comandos
Editor de texto
(ficheros .m)
últimos comandos
- Directorio trabajo
- Workspace
- Últimos comandos
Ventanas y comando (I)
Visualizador variables en uso (tipo y tamaño)
workspace (matlab)
Who, whos (matlab & octave)
MATLAB7.1
GUIoctave
Ventanas y comando (II)
Visualizador variables en uso (tipo y tamaño)
Visualización del
contenido de variables
MATLAB7.1
Visualización gráfica
Ventana de gráficos
x = 1:0.1:10;
y=sin(x);
plot(x,y)
MATLAB7.1
GUIoctave
Editor de ficheros (M-file)
Ficheros de formato matlab para crear un
programa (MATLAB)
New M-files
…y apertura de la ventana
del editor de texto….
…o teclear
edit “nombre_fichero”
en línea de comandos
Editor de ficheros (M-file)
Ficheros de formato matlab para crear un
programa (GUIoctave)
Octave editor abierto
por defecto
…o teclear
edit “nombre_fichero”
en línea de comandos
Ayuda
Comando help
Función similar en MATLAB y octave
Sintaxis: help comando
help sin
>> help sin
`sin' is a built-in function
-- Mapping Function: sin (X)
Compute the sine for each element of X in radians.
See also: asin, sind, sinh
Depurador
Muy útil a la hora de averiguar incorrecciones
en programa
Permite para en un punto dado (Breakpoints)
Evaluar variables
Avanzar paso a paso
Avanzar hasta el siguiente breakpoint
Depurador en MATLAB
Ejecución seguida
….
Ejecución paso a paso
visualización valor variables
(pasando con ratón o pulsando F9)
breakpoint (Añadir/Quitar con F12 o pinchando con el ratón sobre la línea)
Depurador en GUIoctave
Ejecución seguida
….
Ejecución paso a paso
visualización valor variables
(pulsando Ctrl+E)
breakpoint (Añadir/Quitar con F12)
Variables
Los nombres de variables deben empezar con una
letra
pueden contener letras, números y sólo el símbolo “_”.
existen diferencia entre mayúsculas minúsculas.
>> x = 1;
>> Cadena = „Hola Mundo‟;
Por defecto los valores númericos los toma como datos
en doble precisión (flotantes de 64 bits)
Variables
Caracteres especiales y reservados:
[ ] Se utilizan para formar vectores y matrices
( ) Se usa en expresiones aritméticas. Da
prioridad de ejecución a la expresión que
encierra.
, Separador de elementos de una matriz,
argumentos de funciones y declaraciones en
líneas con declaraciones múltiples
; Termina líneas de una matriz o es un
separador de declaraciones
% Comentario
Variables
Algunas variables restringidas:
ans: nombre de la variable por defecto.
pi: π = 3.1415926 ……
eps: ε= 2.2204e-016, el valor más pequeño entre dos números que el
ordenador entiende.
inf: ∞
NAN or nan: not-a-número
e: número e=2.7183
Comandos asociados a variables:
who: listado de variables definidas en Workspace
whos: listado de variables y sus características
clear: borra la asignación a todas las variables
clear name: borra la variable name
clc: borra la ventana de comandos.
lf: borra la ventana de gráficos/figuras.
format: formato para mostrar los datos
Visualización
Matlab/octave cambia la presentación interna
de un número cuando se escogen distintos
formatos Solo modifica su representación
format long (16 dígitos)
format short (5 dígitos + exponente)
Format hex (formato hexadecimal)
>> format long;
>> e
>> format short;
>> e
ans = 2.7183
ans = 2.71828182845905
Tipos de datos
Estructura de datos escalares, vectores y matrices
Númericos
Enteros (8,16,32,64 bits) con/sin signo; int8, uint8….
Reales con punto flotante
Simple precisión (32 bits)
Doble precisión (64 bits)
Formato IEEE754
Complejos (ej: x = 2 + 3i;)
Lógicos (logical en matlab/octave)
Caracteres y cadenas (char en matlab/octave)
String es un vector de caracteres
Estructuras (struct)
Ej: s = struct('a',[1,4,7,2,9,3],'b','James','c',[8 1 6;3 5 7; 4 9 2])
Vectores
Creación explicita de vectores
>> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi]
x =
0 0.7854 1.5708 2.3562 3.1416
y=[0; 0.25*pi; 0.5*pi; 0.75*pi; pi]
y = 0
0.7854
1.5708
2.3562
3.1416
Vector
columna
Vector
fila
Vectores: operaciones
Creación
Ej: >>vector = [1 2 3 4]; vector_tras = [1; 2; 3;
4];
Concatenación
Ej: >>vector = [vectorA, vectorB];
Indexación (los vectores y matrices comienzan en 1)
Ej: vector(3)
Vectores: funciones
x = inicio:fin
x = inicio:incremento:fin
x=rand(1,nc)
Crea un vector fila queempieza en inicial y va de 1 en 1
hasta el fin.
Igual que arriba pero con un determinado incremento
entre los elementos
Crea vector fila de nc elementos aleatorios
uniformemente distribuidos entre 0 y 1.
x=rand(nf,1)
Crea un vector columna de nf filas.
x = linspace(inicio,fin,número)
Crea un vector fila desde el inicio hasta el fin
generando un determinado número elementos
x = logspace(inicio,fin,número) Crea un vector fila logaritmicamente espaciado ….
length(x)
y = x’
Indica la longitud de un vector x
Transpuesta del vector x
dot(x,y),cross(x,y)
Da un producto escalar y vectorial de los vectores x, y
Matrices
Vectores matrices de
1xn elementos.
Escalar matriz de 1x1
elementos
Operaciones
Idénticas a las descritas
en vectores
Creación
Filas se separan con ;
Elementos de la
misma fila se separan
por comas o espacios
Concatenación
Indexación
Matrices (operaciones)
Operacion
Forma Matricial
Elemento a Elemento
Suma
Resta
Multiplicación
Divisiones
Potencias
Determinante
Inversa
Transpuesta
Ejemplos:
a + b
a – b
a * b
a / b (a \ b)
a^num
det(a)
inv(a)
a’
>> x = [1 2 3; 5 6 9];
>> y = [4 5 6; 0 1 5];
>> z = x .* y
z =
32 17
4 10 18
104 51
igual
igual
a .* b
a ./ b
a .^ num
>> x*y‟
ans=
Matrices (funciones)
[a,b] or [a;b] Creación de matriz
blkdiag
Construye una matriz cuadrada con matrices entrada de forma que las matrices de
entrada queden almacenadas en su diagonal
size
cat
diag
Tamaño de la matriz
Concatena matrices
Devuelve la diagonal de la matriz en forma de vector
horzcat
Concatena matrices horizontalmente
magic
ones
rand
repmat
Crea matrices cuadradas desde 1 a n
mismo
2
Matriz de 1‟s
de forma que cada fila y columna sumen lo
Create a matrix of uniformly distributed random numbers.
Crea una nueva matriz redistribuyendo el contenido de una en función de los índices de
otra
vertcat
Concatena matrices vecticalmente
zeros
Matriz de 0‟s
Operaciones matemáticas
Matlab/Octave tiene operaciones sencillas
Suma (+), resta (-), división normal(/), división
por izquierda (\), multiplicación (*), potencia (^)
Orden de operaciones:
1º: potencia
2º: multiplicación y división
3º: sumas y restas
Ej: x=a^b*c+d ((a^b)*c)+d
Aplicación de matrices (I)
Resolución de sistemas de Ecuaciones
Ejemplo: Vector desconocido o incógnita (x1, x2, x3)
3 x1 + 2x2 - x3 = 10
- x1 + 3x2 + 2x3 = 5
x1 - 2x2 - x3 = -1
El sistema se puede escribir como:
Ax = b
1233211013251111xxxAxb Aplicación de matrices (II)
(1) Usando la inversa
Ax = b
A-1 Ax = A-1 b
Ax = b
MATLAB/OCTAVE:
>> A = [3 2 -1; -1 3 2; 1 -1 -1];
>> b = [10;5;-1];
>> x = inv(A)*b
x =
-2.0000
5.0000
-6.0000
(2) Usando división por izquierda
MATLAB/OCTAVE (División \):
>> A = [3 2 -1; -1 3 2; 1 -1 -
1];
>> b = [10;5;-1];
>> x =A \ b
x =
-2.0000
5.0000
-6.0000
Funciones trigonométricas
Otros operadore
Comentarios de: Introducción a MATLAB y OCTAVE (0)
No hay comentarios