fi0809 tema 4 - introduccion a matlab

34
Ingeniería Técnica Industrial (Química) 2008-09 - "Fundamentos de Informática" - Tema 4 21/10/08 1 Fundamentos de Informática Parte II – Análisis y Visualización de Datos mediante Matlab Titulación: Ingeniería Técnica Industrial – Química Industrial Profesor: José Luis Esteban Escuela Superior de Ciencias Experimentales y Tecnología (ESCET) Universidad Rey Juan Carlos Curso académico 2008-2009

Upload: jhudith-alexsa-cespedes

Post on 17-Oct-2015

21 views

Category:

Documents


0 download

TRANSCRIPT

  • Ingeniera Tcnica Industrial (Qumica) 2008-09 - "Fundamentos de Informtica" - Tema 421/10/08 1

    Fundamentos de InformticaParte II Anlisis y Visualizacin de Datos

    mediante Matlab

    Titulacin: Ingeniera Tcnica Industrial Qumica Industrial

    Profesor: Jos Luis Esteban

    Escuela Superior de Ciencias Experimentales y Tecnologa (ESCET)

    Universidad Rey Juan Carlos

    Curso acadmico 2008-2009

  • Ingeniera Tcnica Industrial (Qumica) 2008-09 - "Fundamentos de Informtica" - Tema 421/10/08 2

    Tema 4 Introduccin a Matlab

    4.1. El entorno de trabajo de Matlab4.2. Expresiones bsicas4.3. Variables4.4. Matrices. Expresiones matriciales

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 3

    4.1. El entorno de trabajo de Matlab

    Qu es Matlab:Programa para la realizacin de clculos

    matemticos.Ofrece gran facilidad para operar sobre

    matrices (MATrix LABoratory).Dispone de un lenguaje de programacin

    interpretado.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 4

    Aspecto del entorno de trabajo de Matlab

    Command WindowCommand Window: : Instrucciones y sus Instrucciones y sus

    resultadosresultados

    WorkspaceWorkspace: : Variables en Variables en

    usouso

    Command Command HistoryHistory: : ltimas ltimas

    instrucciones instrucciones ejecutadasejecutadas

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 5

    Principales ventanas de Matlab

    Command Window: Instrucciones y sus resultados Current directory: Explorador de directorios Workspace: Visor de variables utilizadas Command history: Lista de instrucciones recientes Figure: Grficos Editor de ficheros de texto

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 6

    4.2. Expresiones bsicas

    Se puede utilizar Matlab para realizar clculos numricos:

    >> 2+2ans = 4

    >> 5*8ans = 40

    >> 2+2-1+5ans = 8

    >> 1+5*2ans = 11

    >> (1+5)*2ans = 12

    >> 20/2+2ans = 12

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 7

    Representacin de escalares

    Notacin entera Secuencia de dgitos precedidos o no por un signo Ejemplos: 10 1 2005 1000000000

    Notacin decimal Secuencia de dgitos que incluye un punto decimal, precedidos

    o no por un signo Ejemplos: 3.14159 32.8 0.00000001 .003 .4

    Notacin cientfica Nmero en notacin decimal o entera (mantisa) seguido de la

    letra e, seguido de otro nmero en notacin entera (exponente). Ejemplos: 6.023e23 2e10 5e10 2.5435443e6

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 8

    Operadores aritmticos sobre escalares (1 de 3)

    Operadores que pueden utilizarse sobre magnitudes escalares: Suma: + 2 + 2 Resta: 2 2 Producto: * 2 * 2 Divisin: / 2 / 2 Potencia: ^ 2 ^ 2

    Precedencia de los operadores: Potencia (^) Mayor precedencia Producto (*) y divisin (/) Suma (+) y resta () Menor precedencia

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 9

    Operadores aritmticos sobre escalares (2 de 3)

    Orden de evaluacin de los operadores aritmticos: Primero los de ms precedencia En caso de igual precedencia, de izquierda a derecha

    Ejemplo: 5 + 2 ^ 3 4 * 8 / 2 1 Potencia 2^3 5 + 8 4 * 8 / 2 2 Producto 4*8 5 + 8 32 / 2 3 Divisin 32 / 2 5 + 8 16 4 Suma 5 + 8 13 16 5 Diferencia 13 16 3 6 Resultado

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 10

    Operadores aritmticos sobre escalares (3 de 3)

    Uso de parntesis para modificar el orden de evaluacin: Se evala primero la expresin del parntesis ms interno

    Ejemplo: ((5 + 2 ^ 3) 4) * (8 / 2) 1 Potencia 2^3 ((5 + 8) 4) * (8 / 2) 2 Suma 5 + 8 (13 4) * (8 / 2) 3 Diferencia 13 4 9 * (8 / 2) 4 Divisin 8 / 2 9 * 4 5 Producto 9 * 4 36 6 Resultado

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 11

    Espacio blanco en expresiones

    El espacio blanco puede estar constituido por caracteres en blanco o tabulaciones.

    Es necesario para separar identificadores y palabras reservadas si no existe ningn otro separador.

    El espacio extra es ignorado.

    >> 2+2ans = 4

    >> 2 + 2ans = 4

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 12

    4.3. Variables

    Es posible asignar valores a variables>> a=2a = 2

    >> b=3b = 3

    Las variables se pueden utilizar en expresiones

    >> a*bans = 6

    La variable ans contiene el ltimo resultado calculado

    >> ans*2ans = 12

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 13

    Concepto de variable

    Los datos se almacenan en variables. A una variable se asocian los siguientes elementos: Identificador el nombre utilizado para referirse a ella Direccin posicin de la memoria principal donde se almacena Tipo forma de interpretar el contenido Tamao nmero de bits de memoria utilizados Valor el contenido de la memoria

    La atribucin de un valor a una variable se denomina asignacin.

    Declaracin de variables en Matlab: No es necesario declararlas antes de asignarles un valor Es necesario asignarles un valor antes de usarlas en una expresin.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 14

    Reglas para el nombre de variable

    Reglas para construir identificadores o nombres de variables: Letras a-z, A-Z (ASCII), nmeros y _ Mximo nmero de caracteres: namelengthmax El primer carcter ha de ser alfabtico Se distingue entre maysculas y minsculas No se pueden usar las palabras reservadas

    Las palabras reservadas son identificadores utilizados por el lenguaje.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 15

    Reglas para el nombre de variable. Ejemplos.

    Ejemplos de identificadores correctos: Numero_de_alumnos promedio z R2T2

    Ejemplos de identificadores errneos: 1980ALU LOS ANGELES numero.de.alumnos A/B

    Cules de los siguientes son identificadores vlidos en Matlab?Radio, X34, Velocidad, aceLeraCin, 3ac, coordenada_X, X-Y, a b c, man.utd

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 16

    Asignacin de valores a variables

    Forma general de una asignacin: Variable = Valor

    Asignacin de una constante X = 7 Asigna a la variable X el valor 7.

    Asignacin de una variable Y = X Asigna a la variable Y el valor de la variable X.

    La variable X no sufre alteracin Asignacin de una expresin Z = X^2 + 3*Y + 1 Asigna a la variable Z el valor resultante de evaluar

    la expresin. Las variables X e Y, presentes en la expresin, no se modifican.

    U = U^2 5*K Las variables U y K forman parte de la expresin. Tras evaluar sta, U se modifica al recibir el valor calculado. La variable K no se modifica.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 17

    Expresiones con variables

    Si asignamos valores a variables:>> a=3a = 3>> b=2b = 2

    >> 5*a^2 + 2*b + 3ans = 52

    Podemos usarlas en expresiones arbitrariamente complejas:

    Si intentamos utilizar una variable no declarada, se produce un error: >> 5*s+2

    ??? Undefined function or variable 's'.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 18

    Ocultacin de resultados con punto y coma

    Cuando el resultado de una operacin es obvio, dicho resultado puede ocultarse utilizando punto y coma (;). Ejemplo:>> a=3a = 3>> b=2b = 2>> 5*a^2 + 2*b + 3ans = 52

    >> a=3;>> b=2;>> 5*a^2 + 2*b + 3ans = 52

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 19

    Variables predefinidas

    Matlab dispone de una serie de variables predefinidas: ans Si el ltimo valor calculado no se asigna a una variable,

    entonces se asigna automticamente a ans eps Precisin de los clculos en coma flotante. Tolerancia

    utilizada en los clculos. realmax Mayor nmero en coma flotante que puede ser

    representado en tu ordenador. realmin Menor nmero positivo en coma flotante que puede ser

    representado en tu ordenador. pi 3.1415926535897... i, j Unidad imaginaria. inf Infinito. Resultado de clculos como 7/0.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 20

    4.4. Matrices. Expresiones matriciales

    En Matlab, todas las variables son matrices. Una matriz es una coleccin de valores ordenados en

    una disposicin rectangular de m filas y n columnas (matriz de tamao m x n).

    Se dice que una matriz es cuadrada cuando m = n Un vector fila de tamao n es una matriz de 1 x n Un vector columna de tamao m es una matriz de m x 1 Un escalar (en Matlab) es una matriz de 1 x 1.

    Todas las variables escalares vistas en anteriores ejemplos son matrices de 1 x 1.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 21

    Creacin de Matrices (1/4)

    Para crear una matriz se intriduce una lista de valores de la siguiente manera: Los elementos de cada fila se separa mediante blancos o comas Las filas se separan mediante punto y coma, ; Toda la lista de elementos se rodea mediante corchetes, [ ]

    Ejemplo, matriz de 3 x 3:>> x = [2 8 4; 3 6 1; 4 4 9]x = 2 8 4 3 6 1 4 4 9

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 22

    Creacin de Matrices (2/4)

    Ejemplo, vector fila de 3 elementos:>> f = [2 6 1]f = 2 6 1

    >> e = [7]e = 7

    >> c = [4; 1; 9]c = 4 1 9

    Ejemplo, matriz de 1 x 1, que equivale a un escalar:

    Ejemplo, vector columna de 3 elementos:

    >> e = 7e = 7

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 23

    Creacin de Matrices (3/4)

    Cuando la matriz contiene nicamente valores lgicos (unos y ceros) se dice que es una matriz lgica

    La funcin logical se encarga de asegurar que los valores de la matriz sean nicamente valores lgicos.

    Ejemplo:>> a = logical( [1 0 1; 0 1 1; 1 0 0] )a = 1 0 1 0 1 1 1 0 0

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 24

    Creacin de Matrices (4/4). Operador : (dos puntos)

    Cuando es necesario definir una secuencia de nmeros segn una ley simple, se puede utilizar el operador :. Este operador genera un vector fila.

    Usando dos elementos (inicio y lmite del intervalo): 1:5 equivale a [1 2 3 4 5] 1.5:4 equivale a [1.5 2.5 3.5]

    Usando tres elementos (inicio, incremento, lmite): 1:3:10 equivale a [1 4 7 10] 1:1:5 equivale a [1 2 3 4 5] 5:1:1 equivale a [5 4 3 2 1] 0:pi/4:pi equivale a [0 0.7854 1.5708 2.3562 3.1416]

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 25

    Operaciones con Matrices

    Operaciones matriciales(lgebra lineal): A * B Producto matricial A / B A * B^1 A \ B A^1 * B A ^ B Potencia de matrices A ' Traspuesta (conjugada) Operandos de tamao compatible

    o uno de ellos escalar

    Operaciones elemento a elemento: A .* B {A(i,j) * B(i,j)} A ./ B {A(i,j) / B(i,j)} A .\ B {B(i,j) / A(i,j)} A .^ B {A(i,j) ^ B(i,j)} A .' Traspuesta Operandos del mismo tamao

    o uno de ellos escalar

    Operaciones matriciales elemento a elemento: A + B Suma A B Sustraccin Operandos del mismo tamao o uno de ellos ha de ser escalar

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 26

    Ejemplos (1/4)

    Creacin de dos matrices>> a = [1 2 3; 4 5 6; 7 8 9]a = 1 2 3 4 5 6 7 8 9>> b = [3 2 5; 5 1 3; 8 4 1]b = 3 2 5 5 1 3 8 4 1

    >> k = 7;>> a+kans = 8 9 10 11 12 13 14 15 16>> a*kans = 7 14 21 28 35 42 49 56 63

    Operaciones con escalares

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 27

    Ejemplos (2/4)

    >> a+bans = 4 4 8 9 6 9 15 12 10>> a-bans = -2 0 -2 -1 4 3 -1 4 8

    Suma y resta Producto matricial y elemento a elemento

    >> a*bans = 37 16 14 85 37 41 133 58 68>> a.*bans = 3 4 15 20 5 18 56 32 9

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 28

    Ejemplos (3/4)

    >> a/bans = 0.9692 -0.6769 0.1846 1.8923 -1.3692 0.6462 2.8154 -2.0615 1.1077>> a./bans = 0.3333 1.0000 0.6000 0.8000 5.0000 2.0000 0.8750 2.0000 9.0000

    Divisin matricial y elemento a elemento

    >> b^-1ans = -0.1692 0.2769 0.0154 0.2923 -0.5692 0.2462 0.1846 0.0615 -0.1077>> b^2ans = 59 28 26 44 23 31 52 24 53

    Potencias

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 29

    Ejemplos (4/4)

    Dos vectores

    >> x = [1 2 3]x = 1 2 3

    >> y = [4; 5; 6]y = 4 5 6

    Producto matricial

    >> x * yans = 32>> y * xans = 4 8 12 5 10 15 6 12 18

    Producto elemento a elemento

    >> x .* y??? Error using ==> .*Matrix dimensions must agree.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 30

    Seleccin de elementos de matrices. Subndices

    Es posible seleccionar un elemento individual de una matriz: A(i, j) es el elemento que se encuentra en la fila i y columna j de A.

    Los elementos de una matriz se pueden utilizar en expresiones: W = A(2,3) * x / 2 Si se hace referencia a un elemento fuera de la matriz, se produce

    un error. Se puede asignar un valor a un elemento de una matriz: A(2,3) = 2 * pi * r Si se asigna un valor a un elemento fuera de la matriz, sta crece

    lo necesario para dar cabida al elemento. El resto de los elementos creados se rellena a 0.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 31

    Seleccin de mltiples elementos (1/3)

    Recordemos que en Matlab todo son matrices, y los subndices no tienen por qu ser una excepcin. As, el lugar de cualquer subndice lo puede ocupar un vector fila.

    Ejemplos con un vector fila A, que vale [3 7 2 1 7 8 3 5 6] A(1, [3 7 5]) vale [2 3 7] A(1, 3:7) vale [2 1 7 8 3] A(1, 1:2:9) vale [3 2 7 3 6] A(1, 1:2:9) = 0 produce [0 7 0 1 0 8 0 5 0] A(1, 12) = 3 produce [3 7 2 1 7 8 3 5 6 0 0 3]

    El uso de : como subndice permite seleccionar todos los elementos en la correspondiente dimensin.

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 32

    Seleccin de mltiples elementos (2/3)

    Ejemplos con una matriz de 3 x 3:>> a = [1 2 3; 4 5 6; 7 8 9]a = 1 2 3 4 5 6 7 8 9>> a([1 3], [1 2])ans = 1 2 7 8>> a(2, :)ans = 4 5 6

    >> a([1 3], [1 2]) = 0a = 0 0 3 4 5 6 0 0 9

    >> a(3, 4) = 2a = 1 2 3 0 4 5 6 0 7 8 9 2

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 33

    Seleccin de mltiples elementos (3/3)

    En lugar de utilizar varios subndices es posible utilizar una matriz lgica del mismo tamao que la matriz en cuestin.

    >> a = [1 2 3; 4 5 6; 7 8 9]a = 1 2 3 4 5 6 7 8 9>> s = logical( [1 0 1; 0 1 1; 1 0 0] )s = 1 0 1 0 1 1 1 0 0

    >> a(s)ans = 1 7 5 3 6

    El resultado de la seleccin es un vector columna que contiene los elementos correspondientes a los unos en la matriz lgica:

  • 21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 34

    Concatenacin de elementos en una matriz

    Concatenacin de una fila:

    >> a = [1 2; 3 4]a = 1 2 3 4

    >> b = [a ; 7 8]b = 1 2 3 4 7 8

    >> c = [a [1;1]]c = 1 2 1 3 4 1

    >> a(:,3) = [1; 1]a = 1 2 1 3 4 1

    Concatenacin de una columna:

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34