Contenido Programático| Matlab Nivel Básico...MATLAB trabaja esencialmente con matrices numéricas...
Transcript of Contenido Programático| Matlab Nivel Básico...MATLAB trabaja esencialmente con matrices numéricas...
Contenido Programático| Matlab Nivel Básico
Tema 1: INTRODUCCION AL MATLABObjetivoComprender el manejo del software mediante la ejecución de comandosbásicos orientado al algebra.
Contenido1. Introducción al Lenguaje de Programación Matlab2. Importación de datos3. Llamado a funciones4. Variables5. Tipo de variables6. Operaciones entre variables7. Celdas y columnas8. Matrices y Vectores9. Operaciones con matrices y vectores
CURSO GRATIS<<AQUÍ
INTRODUCCIÓN AL MATLAB
Tema 1: Introducción al Matlab| Nivel Básico
MATLABMatLab es un programa interactivo para el análisis, diseño, cálculo numérico y tratamiento de datos.Contiene muchas herramientas y utilidades que permiten además diversas funcionalidades, comoresolver problemas en matemática aplicada, física, química, ingeniería, finanzas y muchas otrasaplicaciones.
Está basado en un sofisticado software de matrices para el análisis de sistemasde ecuaciones como integrar en análisis numérico, cálculo matricial, proceso deseñal y visualización gráfica en un entorno completo, su elemento básico detrabajo son las matrices. El nombre de MATLAB proviene de la contracción delos términos MATrix LABoratory y fue inicialmente concebido paraproporcionar fácil acceso a las librerías LINPACK y EISPACK.
Entorno de MATLAB Nueva Variable Libreria SimulinkNueva Hoja
Carpetas del computador
Ventana de comandos Espacio de
trabajo
Ventana histórica de comandos
Tema 1: Introducción al Matlab| Nivel Básico
Entorno de MATLAB
Tema 1: Introducción al Matlab| Nivel Básico
Tema 1: Introducción al Matlab| Nivel Básico
Comandos en MATLAB
Pulsando ...O tecleando ‘help’
Comandos en MATLAB
Tema 1: Introducción al Matlab| Nivel Básico
Editor
• Menú File, opción New: .m
• Botones predefinidos:
Abrir fichero existente
Fichero nuevo
Tema 1: Introducción al Matlab| Nivel Básico
• Menú File, opción New: .m
• Botones predefinidos:
Tema 1: Introducción al Matlab| Nivel Básico
Cuando el directorio donde se graba el fichero no pertenece alpath ni es el directorio de trabajo actual ...
Tema 1: Introducción al Matlab| Nivel Básico
Tema 1: Introducción al Matlab| Nivel Básico
Debugger
Nos permite detectar y corregir errores
MATLAB trabaja esencialmente con matrices numéricas rectangulares. Lamanera más fácil de entrar matrices pequeñas es enumerando los elementos deésta de tal manera que:• Los elementos estén separados por blancos ó comas.• Los elementos estén cerrados entre corchetes, [ ].• Muestre el final de cada fila con ; (punto y coma) para almacenar datos.
Es de notar la diferencias entre mayúsculas y minúsculas en Matlab
Comandos en MATLAB
La primera forma de interactuar con MatLab es a través de la línea de comandos. Puede ejecutarseun comando si este está escrito después del símbolo >> y se presiona la tecla Enter.
Tema 1: Introducción al Matlab| Nivel Básico
• Si una expresión es demasiado larga para que quepa en una línea, se colocan trespuntos (…) seguido de enter y esto indica que la expresión continúa en la siguientelínea.
• En una línea de comandos se pueden escribir varias instrucciones separadas porcomas.
• Se pueden recuperar comandos anteriores con el Command History o con lasflechas del teclado
• Se usa el carácter % al inicio de un comentario.• Los nombres de variables deben empezar siempre con una letra.• No hace falta declarar las variables a utilizar
Comandos en MATLAB
Tema 1: Introducción al Matlab| Nivel Básico
• Al salir del programa todo el contenido de la memoria se borra automáticamente. Para guardaruna sesión (excepto gráficos) o matrices en forma selectiva se usa save. El comando sinargumentos guarda todas las variables de la sesión en un archivo binario llamado matlab.mat en eldirectorio actual. Los argumentos que se pueden usar son: nombre de archivo, variables a guardar,formato.
• Para recuperar el estado de la sesión o las variables guardadas se usa load
Comandos en MATLAB
Orden de prioridad de las operaciones: las expresiones se evalúan de izquierda a derecha; la operaciónpotencia tiene el orden de prioridad más alto, seguida por multiplicación y división que tienen ambas igualprioridad y seguidas, finalmente, por suma y resta con igual prioridad. Se pueden emplear paréntesis paraalterar esta ordenación, en cuyo caso la evaluación se inicia dentro del paréntesis más interno y se prosiguehacia afuera
Tema 1: Introducción al Matlab| Nivel Básico
Ejemplo Realizar los siguientes cálculos:
Operaciones en MATLAB
Tema 1: Introducción al Matlab| Nivel Básico
Operaciones en MATLAB
» a=3;» b=8;» c=13;» solution1=(-b+sqrt(b^2-4*a*c))/(2*a)
solution1 =-1.3333 + 1.5986i
» solution2=(-b-sqrt(b^2-4*a*c))/(2*a)solution2 =-1.3333 - 1.5986i
Tema 1: Introducción al Matlab| Nivel Básico
Operaciones en MATLAB
>> x=-4:.01:4;
>> y=sin(x); plot(x,y)
>> grid
>> title('seno(x)')
>>
Esto no se teclea!!!!
Tema 1: Introducción al Matlab| Nivel Básico
En muchos cálculos matriciales los datos y/o los resultados no sonreales sino complejos, con parte real y parte imaginaria.
• Para ver como se representan por defecto los números complejos,ejecútense los siguientes comandos:
Se pueden utilizar indistintamente la i y la j pararepresentar el número imaginario unidad
Números Imaginarios
Tema 1: Introducción al Matlab| Nivel Básico
• En general, cuando se está trabajando con números complejos,conviene no utilizar la i como variable.
• Antes de trabajar con complejos conviene ejecutar clear i, para que i no esté definidacomo variable.
• Cuando i y j se usan como variables, como unidad imaginaria, puede utilizarse la funciónsqrt(-1).
• La asignación de valores complejos a vectores y matrices es como se muestra en elejemplo siguiente.
Números Imaginarios
Tema 1: Introducción al Matlab| Nivel Básico
MATLAB dispone asimismo de la función complex, que crea un número complejo a partir dedos argumentos, la parte real e imaginaria.
Podemos trabajar con complejos en su forma polar y en forma exponencial
Números Imaginarios
Tema 1: Introducción al Matlab| Nivel Básico
• El operador de matriz traspuesta ('), aplicado a matrices complejas,produce la matriz conjugada y traspuesta.
Números Imaginarios
• La función conj(Z) permite hallar la matriz conjugada.• El operador punto y apóstrofe (.') que calcula simplemente la
matriz traspuesta
Tema 1: Introducción al Matlab| Nivel Básico
Todas las operaciones y funciones aritméticas funcionan con los númeroscomplejos, por ejemplo
• Debemos tener cuidado con las funciones que tienen varias ramas: logaritmo, potenciasfraccionarias, funciones trigonométricas e hiperbólicas inversas. MATLAB trabaja, de formapredeterminada con la rama principal de dichas funciones.
• Por ejemplo para z complejo log(z) = log|z| + iArg(z)
Números Imaginarios
Tema 1: Introducción al Matlab| Nivel Básico
Números Imaginarios
Tema 1: Introducción al Matlab| Nivel Básico
• Un arreglo unidimensional es una sucesión de números distribuidos en una fila o en unacolumna.
• En MATLAB un vector renglón se crea asignando sus elementos a una variable, para ellointroducimos los valores deseados separados por espacios (o comas) todo ello entrecorchetes [].
• Si deseamos un vector columna entonces introducimos los valores separados por punto ycoma, todo ello entre corchetes [].
• Generalmente usaremos letras mayúsculas cuando nombremos a las matrices y minúsculaspara vectores y escalares. Esto no es imprescindible y Matlab no lo exige, pero resulta útil.
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
• Para acceder a los elementos individuales de un vector lo haremos utilizando subíndices,x(n) es el n-ésimo elemento del vector x.
• Si queremos acceder al último podemos indicarlo usando end como subíndice
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
• Un vector puede cambiar su tamaño, si tiene n elementos, bastaañadir nuevos valores para las posiciones n+1, n+2 y asísucesivamente.
• Si es necesario MATLAB asigna ceros a los elementos entre elúltimo del vector original y el añadido.
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
También es posible añadir nuevos elementos a un vector ya existente a partir de otros vectores.
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
Para acceder a un bloque de elementos a la vez, se usa la notación de dos puntos (:), asíx(m:n) nos da todos los elementos desde el m-ésimo hasta el n ésimo del vector x
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
Vectores
También es posible eliminar elementos de un vector existente mediante laasignación del vacio [] al elemento o rango de elementos que se deseen eliminar.
Tema 1: Introducción al Matlab| Nivel Básico
Si introducimos un número entre el primero y el segundo también separado pordos puntos (:) se mostrarán los elementos del primero al último indicado,incrementados según el número que aparece en el centro (o decrementados si elnúmero es negativo).
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
• (a:b) crea un vector que comienza en el valor a y acaba en el valor baumentando de 1 en 1.• (a:c:b) crea un vector que comienza en el valor a y acaba en el valorb aumentando de c en c.• linspace (a,b,c) genera un vector linealmente espaciado entre losvalores a y b con c elementos.• linspace (a,b) genera un vector linealmente espaciado entre losvalores a y b con 100 elementos.• logspace (a,b,c) genera un vector logarítmicamente espaciado entrelos valores 10^a y 10^b con c elementos.• logspace (a,b) genera un vector logarítmicamente espaciado entrelos valores 10^a y 10^b con 50 elementos.
Vectores
Tema 1: Introducción al Matlab| Nivel Básico
▪ Los polinomios se representan en Matlab por un vector fila de dimensión n+1 siendo n el grado del polinomio. Ejemplo: 𝑋3+2x-7 se representa por
>> pol1=[1 0 2 -7]▪ Cálculo de las raíces: roots (da un vector columna, aunque pol1 es un vector fila)
>>raices=roots(pol1)
▪ Un polinomio puede ser reconstruido a partir de sus raíces con elcomando poly
>> p=poly(raices) (da un vector fila) **
Si el argumento de poly es una matriz se obtiene el polinomiocaracterístico de la matriz.
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
Funciones de Matlab para polinomios
• Calcular el valor de un polinomio p en un punto dado x: polyval
>>y=polyval(p,x)
• Multiplicar y dividir polinomios: conv(p,q) y deconv(p,q)• Calcular el polinomio derivada: polyder(p)
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
Matlab nos brinda una serie de funciones para trabajar con lospolinomios. Los mismos se representan como vectores de lasiguiente manera
En Matlab seria:
>> p=[8 -5 1 3 4]
Si pudo observar Matlab no reescribe los corchetes, porlo que esta herramienta lo ve como vectores
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
Funciones básicas de polinomios:
▪ Roots(p): Obtiene raíces de un polinomio dado Calcula las raíces de un polinomio cuyos coeficientesson los elementos del vector p. Si p tiene N+1 componentes, el polinomio es p(1)*X^N + ... + p(N)*X +p(N+1).
>> q = [ 1 - 5 6 ]>> roots(q)
▪
Poly(v): Construye un polinomio a partir de sus raíces Retorna un vector (polinomio) cuyos elementos son los coeficientes del polinomio cuyas raíces son los elementos de v. Puede apreciarse que roots y poly son funciones inversas
>> v = roots(q)>> q =poly(v)
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
O si desea verlo un poco más claro note que:
>> poly(roots(q))>> roots(poly(v))
▪ Polyval(p, x): Evalúa un polinomio en un punto dado Si p tiene N+1 elementos, retorna el valor del polinomio al evaluarlo en x. Es decir y = p(1)* xN + p(2)*xN-1 + ... + p(N)*x + p(N+1)
▪ conv(p, q): Multiplicación de polinomios conv viene de convolución, en el caso de los vectores convolucionar dos vectores es equivalente a multiplicarlos. El resultado es un vector de longitud = longitud(p)+longitud(q)-1
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
Veamos un ejemplo: Sean p(x)=2x+1 y q(x)=3x+4
>> p=[2 1]>> q=[3 4]>> r= conv(p,q)
Deconv(p,q): Division entre polinomios se utiliza de la siguientemanera:
>> [Q,R] = deconv(p,q);
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
El resultado de la división de p por q queda almacenado en la variable Q,
y el resto de esta operación en la variable R.
Ejemplo: >> r r = 6 11 4 >> p p = 2 1 >> [Q, R] = deconv(r, p);
Ejemplo: >> r r = 6 11 4
>> p p = 2 1
>> [Q, R] = deconv(r, p);
>> Q Q = 3 4
>> R R = 0 0 0
Como era de esperarse (por que?). Verifiquemos este resultado con la
fórmula r = Q*p + R:
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
>> conv(Q, p) + R ans = 6 11 4 >> r r = 6 11 4
Suma y resta: Uno desearía poder sumar y restar polinomios de maneraágil y sencilla, lo óptimo sería utilizar los símbolos + y -, nada más.Veamos que sucede: >> p = [ 2 1 0 5 ]; >> q = [ 3 4 ]; >> p + q; ???Error using ==> + Matrix dimensions must agree.
En castellano: Error usando ==> + Las matrices deben tener la misma dimensión.Lo anterior nos informa que ocurrió un error al momento de utilizar el símbolo+, lo que sucede es que estos vectores (los vectores son un caso particular dematriz) no poseen la misma dimensión (cantidad de elementos).
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
La primer opción que tenemos para sortear este obstáculo es completar el vector p o qcon tantos ceros a la izquierda como sean necesarios, de esta manera conseguimos un par de vectores quecontinúan representando los polinomios que teníamos inicialmente
En castellano: Error usando ==> + Las matrices deben tener la misma dimensión. Lo anterior nos informaque ocurrió un error al momento de utilizar el símbolo +, lo que sucede es que estos vectores (losvectores son un caso particular de matriz) no poseen la misma dimensión (cantidad de elementos). Laprimera opción que tenemos para sortear este obstáculo es completar el vector p o q con tantos cerosa la izquierda como sean necesarios, de esta manera conseguimos un par de vectores que continúanrepresentando los polinomios originales de la siguiente manera:
En nuestro caso seria:
>> p = [2 1 0 5];>>q = [0 0 3 4];>> p+q
Otra posibilidad es crear una función que suma o resta correctamente, sin necesidad de que nosotros modifiquemosmanualmente los vectores; si bien es una tarea mas compleja, el esfuerzo se hará única vez y luego siempre utilizaremos lafunción creada, además es una buena excusa para ponerse a programar
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
>> x = [11 14 15 16 17];
>> y = [695 750 705 720 690];
>> plot(x,y,’r*:’), title('Indice general
de la Bolsa de Madrid'), xlabel('Septiembre
1998')
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
Vectores fila y columna
>> x = [3, -1, 4, 7, -2]; Asignación directa de un vector fila
>> x = [3 -1 4 7 -2]; Los elementos pueden separarse con espacios o comas
>> x(2) = 5; Asignación de uno de sus componentes
>> t = [3; -1; 4]; Asignación directa de un vector columna (los elementos pueden separarse
con enter)
>> t = x’; Mediante la transpuesta de un vector fila
>> y = [3, x, -6]; Asignación usando otro vector
>> y = 2:10; Asignación de valores con incremento 1
>> y = 1:0.1:3; Con incremento diferente de 1 (en este caso el incremento es de 0.1)
>> y = 2*x; Asignación de valores mediante una operación escalar
>> y = sin(x); o mediante una función
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
>> A(2,1) manejo de uno de sus componentes (el primer índice indica la fila y el segundo lacolumna)>> A1 = [2,-3;5,1;0,7] una matriz 3x2>> A2 = [x;x]; una matriz 2x4>> b = [5,6]; vector fila de 2 columnas>> C = [A;b]; C es una matriz 3x2>> D = [A,b’]; D es una matriz aumentada 2x3>> x = C(1,:); Asigna al vector x la primera fila de C>> x = C(:,1); Asigna al vector x la primera columna de C>> B = A1' Asigna a la matriz B la traspuesta de A1>> E = A1 * B Resulta una matriz simétrica>> F = inv(A) Calcula la inversa de A
Los elementos de una misma fila se separan con espacios o comas y las filas seseparan con enter o con caracteres punto y coma (;).
>> A = [2 -3; 5 1]; Asignación directa de una matriz 2x2 Matrices
Tema 1: Introducción al Matlab| Nivel Básico
• eye(n) Matriz identidad de tamaño nxn• eye(m,n) Matriz de tamaño mxn con 1’s en la diagonal y ceros• en cualquier otra entrada• zeros(n) Matriz de ceros de tamaño nxn• zeros(m,n) Idem de tamaño mxn• ones(m,n) Matriz de unos de tamaño mxn• linspace(x1,x2,n) Genera un vector con n valores igualmente espaciados entre x1 y x2• rand(m,n) Matriz de números aleatorios entre 0 y 1, con distribución uniforme, de tamaño mxn• randn(m,n) Matriz de números aleatorios, con distribución normal de valor medio 0 y varianza
1, de tamaño mxn• magic(n) Matriz nxn construida con los enteros de 1 a n^2 con la propiedad de que todas las
filas, columnas y diagonal suman lo mismo
Polinomios
Tema 1: Introducción al Matlab| Nivel Básico
Crear una matriz:
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
ones(dimensiones) eye(dimensiones)
A = [12 3 4 5 6]
• Dimensiones de una matriz >> Size (A)• Limpiar una matriz >> Clear A• Ver variables existentes >>Whos
Matrices
Tema 1: Introducción al Matlab| Nivel Básico
Matrices
Sumar:sum(A)A+ 5 (suma 5 a cada elemento)MultiplicarA*A’ ---- EstandardA.*A’ ---- Elemento a elementoA*3 ---- Cada elemento*3det(A) es el determinante
Transponer e Inversa
A’ X = inv(A)
Diagonaldiag(A)
Acceso a los elementos
A(1,4) + A(2,4) + A(3,4) + A(4,4)Cambiar un valor de la matriz
a(1,2)= 30
Tema 1: Introducción al Matlab| Nivel Básico
Dada una matriz numérica asignada a una variable M, de m filas y ncolumnas, se pueden definir submatrices tales como:
Seccionamiento
Tema 1: Introducción al Matlab| Nivel Básico
Algunos comandos
Tema 1: Introducción al Matlab| Nivel Básico
Dado los siguientes vectores:
A=[7.1 -2 7 0 7.2] B=[13+6i 5.01+0.2i 13 10 7]
Calcular:• Valor absoluto de los vectores.• Ángulos de los elementos del vector.• Parte real e imaginaria de los elementos del vector.• Transpuesta y transpuesta conjugada de los elementos del vector.• Tamaño del vector.• Multiplicar el vector A por la parte real de B
Por ejemplo
Tema 1: Introducción al Matlab| Nivel Básico
En Script de Matlab podemos decir que:
clear allclcA=[7.1 -2 7 0 7.2];B=[13+6i 5.01+0.2i 13 10 7];a=abs(A) % Calcula el Valor Absoluto del vector Ab=abs(B) %Calcula el Valor Absoluto del vector Bang=dot(A,B)/(norm(A)*norm(B)) % angulo entre los 2 vectoresanguloa=angle(A) % angulo del vector Aangulob=angle(B) % angulo del vector BA_real=real(A) % Parte RealB_real=real(B) % Parte RealA_imag=imag(A) % Parte ImaginariaB_imag=imag(B) % Parte Imaginaria
Tema 1: Introducción al Matlab| Nivel Básico
trans_A=A' % Transpuesta conjugada Atrans_B=B' % Transpuesta conjugada Btrans_A_A=A.' % Transpuesta de los elementos de un vector Atrans_B_B=B.' % Transpuesta de los elementos de un vector Blength_A=length(A) % Tamaño del Vectorlength_B=length(B) % Tamaño del VectorC=A*real(B)' % Multiplicacion A*B(Real)D=A.*real(B) % OperacionesF=A+3 % operacion SumaG=A+real(B) % operacion Suma
En Script de Matlab podemos decir que:
Tema 1: Introducción al Matlab| Nivel Básico
MatricesCrea una matriz (A) 3x3 y calcule:• El determinante de la matriz A• Inversa de la matriz A• Los valores propios de la matriz A.• Crear matrices3x3 de: ceros, unos, matriz identidad.
AA=[0 3 -1; 1 -2 0; 1 -9 1] % Matriz AAde_det=det(AA) % Determinantes de la Matriz AAinv(AA) % Inversa de la matriz AAeig(AA) % Valores propios de AAones (3) %Matriz de Unoszeros (3) % Matriz de Ceroseye (3) % Matriz Identidad
Tema 1: Introducción al Matlab| Nivel Básico
SUSCRIBETE A NUESTROCANAL