Metodos Numericos Aplicados a La Mineria - MATLAB Parte 1 (1)

download Metodos Numericos Aplicados a La Mineria - MATLAB Parte 1 (1)

of 81

Transcript of Metodos Numericos Aplicados a La Mineria - MATLAB Parte 1 (1)

  • Facultad: FAIN

    Escuela: Ingeniera de Minas

    Ao Acadmico: 2014

    Ao de estudios: Tercero

    Docente: MSc. Javier Lozano Marreros

    Msc. Javier Lozano M. 1

    Curso:

    Mtodos Numricos

    Aplicados a la Minera

  • 2 MSc. Javier Lozano Marreros

  • 3 MSc. Javier Lozano Marreros

    M A T L A B MATrix

    LABoratory

    Grficas

    Clculo numrico

    computacional

    Simulink Toolboxes

    Lenguaje de programacin

  • 4

    ENTORNO DE DESARROLLO

    MSc. Javier Lozano Marreros

  • 5 MSc. Javier Lozano Marreros

    VENTANA DE COMANDOS

    Prompt Carpeta de trabajo por defecto

  • 6 MSc. Javier Lozano Marreros

    >>instrucciones a ejecutar

  • 7 MSc. Javier Lozano Marreros

    EDITOR DE CODIGO

    Se pulsa para ejecutar el programa

  • 8 MSc. Javier Lozano Marreros

    VENTANA DE GRFICOS

  • 9

    VARIABLES

    No requiere declarar variables. La variable se crea mediante asignacin directa.

    Las variables deben empezar con una letra, seguida por cualquier nmero de letras, dgitos o guiones de subrayado. Los caracteres de puntuacin no son permitidos en las variables.

    Las variables son sensibles a las maysculas, por lo que las siguientes variables son diferentes:

    Minas , minas

    MSc. Javier Lozano Marreros

  • 10

    MATRICES Y ARREGLOS

    SINTAXIS (VECTOR FILA):

    v = [v1,v2,v3, ,vn]

    v = [v1 v2 v3 vn]

    SINTAXIS (VECTOR COLUMNA):

    v = [v1;v2;v3; ,vn]

    MSc. Javier Lozano Marreros

    Arreglo unidimensional (vector)

  • 11

    EJEMPLOS

    Vector fila

    >> x=[1 2 3]

    x =

    1 2 3

    >> sin(x)

    ans =

    0.8415 0.9093 0.1411

    MSc. Javier Lozano Marreros

  • 12

    EJEMPLOS Vector columna >> y=[10; 20; 30]

    y =

    10

    20

    30

    >> sqrt(y)

    ans =

    3.1623

    4.4721

    5.4772

    MSc. Javier Lozano Marreros

  • 13

    OTRAS FORMAS DE CREAR UN VECTOR

    1. Con el operador dos puntos(:)

    SINTAXIS

    Var = [Vinicial:Inc:Vfinal]

    Var = Vinicial:Inc:Vfinal

    Donde:

    Var: variable

    Inc: incremento

    Vinicial: valor inicial

    Vfinal: Valor final

    MSc. Javier Lozano Marreros

  • 14

    OTRAS FORMAS DE CREAR UN VECTOR

    Ejemplos:

    >> x=[0:0.2:1]

    x =

    0 0.2000 0.4000 0.6000 0.8000 1.0000

    >> y=-1:.5:3

    y =

    -1.0000 -0.5000 0 0.5000

    1.0000 1.5000 2.0000 2.5000

    3.0000

    MSc. Javier Lozano Marreros

  • 15

    2. Con la funcin linspace()

    SINTAXIS

    linspace(Vi, Vf, NE)

    Donde:

    Vi : valor inicial

    Vf : valor final

    NE : numero de elementos

    OTRAS FORMAS DE CREAR UN VECTOR

    MSc. Javier Lozano Marreros

  • 16

    EJEMPLOS

    >> t=linspace(0,pi,5)

    t =

    0 0.7854 1.5708 2.3562 3.1416

    >> a=linspace(-1,2,6)

    a =

    -1.0000 -0.4000 0.2000 0.8000

    1.4000 2.0000

    MSc. Javier Lozano Marreros

  • 17

    v(n) Devuelve el n-simo elemento del vector v

    x(a:b) Devuelve los elementos del vector x situados entere el a-esimo y b-simo elemento, y ambos inclusive

    x(a:p:b) Devuelve los elementos del vector x situados entere el a-esimo y b-simo elemento, y ambos inclusive, pero separados de p en p unidades.

    x([1,3,5]) Devuelve el primero, tercero y quinto elemento.

    length(x) Devuelve el numero de elementos del vector.

    OTRAS OPCIONES

    MSc. Javier Lozano Marreros

  • 18

    EJEMPLO

    >> a=linspace(-1,2,6)

    a =

    -1.0000 -0.4000 0.2000

    0.8000 1.4000 2.0000

    >> a(4)

    ans =

    0.8000

    MSc. Javier Lozano Marreros

  • 19

    EJEMPLO

    >> a=linspace(-1,2,6)

    a =

    -1.0000 -0.4000 0.2000

    0.8000 1.4000 2.0000

    >> a(2:4)

    ans =

    -0.4000 0.2000 0.8000

    MSc. Javier Lozano Marreros

  • 20

    EJEMPLO

    >> y=-1:.5:3

    y =

    -1.0000 -0.5000 0

    0.5000 1.0000 1.5000

    2.0000 2.5000 3.0000

    >> y(1:3:5)

    ans =

    -1.0000 0.5000 2.0000

    MSc. Javier Lozano Marreros

  • 21

    EJEMPLO

    >> y=-1:.5:3

    y =

    -1.0000 -0.5000 0

    0.5000 1.0000 1.5000

    2.0000 2.5000 3.0000

    >> y([1,3,9])

    ans =

    -1 0 3

    MSc. Javier Lozano Marreros

  • 22

    EJEMPLO

    >> y=-1:.5:3

    y =

    -1.0000 -0.5000 0

    0.5000 1.0000 1.5000

    2.0000 2.5000 3.0000

    >> length(y)

    ans =

    9

    MSc. Javier Lozano Marreros

  • 23

    MATRICES

    Para representar una matriz de mxn elementos

    SINTAXIS

    M=[a11,a12,...,a1n;

    a21,a22,...,a2n;...;am1,am2,...,amn]

    En lugar de las comas se pueden utilizar espacios

    987

    654

    321

    mn2m1m

    n22221

    n11211

    aaa

    aaa

    aaa

    MSc. Javier Lozano Marreros

    Arreglos bidimensionales

  • 24

    EJEMPLO

    Crea la matriz de 4 filas y 3 columnas

    >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2]

    A =

    1 4 -3

    5 -7 8

    2 5 1

    5 6 2

    MSc. Javier Lozano Marreros

  • 25

    Opciones para manipular los

    elementos de una matriz

    A(i,j) Define (devuelve) el elemento de la

    matriz A que esta ubicado en la

    fila i y en la columna j.

    A(i, :) Devuelve los elementos de la

    i-sima fila de la matriz A

    A(:, j) Devuelve los elementos de la

    jsima columna de la matriz A

    MSc. Javier Lozano Marreros

  • 26

    EJEMPLO

    >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2]

    A =

    1 4 -3

    5 -7 8

    2 5 1

    5 6 2

    >> A(2,3)

    ans =

    8

    MSc. Javier Lozano Marreros

  • 27

    EJEMPLO >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2]

    A =

    1 4 -3

    5 -7 8

    2 5 1

    5 6 2

    >> A(2,:)

    ans =

    5 -7 8

    MSc. Javier Lozano Marreros

  • 28

    EJEMPLO >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2]

    A =

    1 4 -3

    5 -7 8

    2 5 1

    5 6 2

    >> A(:,3)

    ans =

    -3

    8

    1

    2

    MSc. Javier Lozano Marreros

  • 29

    EJEMPLO >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2]

    A =

    1 4 -3

    5 -7 8

    2 5 1

    5 6 2

    >> A([2:4],[2:3]) %muestra una submatriz

    ans =

    -7 8

    5 1

    6 2

    MSc. Javier Lozano Marreros

  • 30

    MATRICES ESPECIALES

    diag(A)

    Devuelve los elementos de la diagonal de la

    matriz A como vector columna

    eye(n)

    Crea la matriz identidad de orden n.

    zeros(m,n)

    Crea la matriz de orden mxn, cuyos

    elementos son ceros.

    MSc. Javier Lozano Marreros

  • 31

    ones(m,n)

    Crea la matriz de orden mxn, cuyos elementos son unos.

    rand(m,n)

    Crea la matriz aleatoria de orden mxn.

    size(A)

    Devuelve el orden(tamao) de la matriz A

    MSc. Javier Lozano Marreros

  • 32

    A

    Devuelve la matriz traspuesta de la matriz A

    det(A)

    Devuelve la determinante de una matriz.

    inv(A)

    Devuelve la matriz inversa de la matriz A

    MSc. Javier Lozano Marreros

  • 33

    VARIABLES CARCTER

    Una variable carcter es una cadena de

    caracteres incluidos entre comillas simples

    SINTAXIS

    C = cadena de caracteres

    MSc. Javier Lozano Marreros

  • 34

    OPERADORES

    OPERACIONES ARITMTICAS

    x^y potencia xy

    x/y divisin x/y

    x*y producto xy

    x-y diferencia x-y

    x+y suma x+y

    MSc. Javier Lozano Marreros

  • 35

    OPERADORES ARITMTICOS

    + Suma de escalares, vectores o

    matrices.

    - resta de escalares, vectores o

    matrices.

    * producto de escalares, vectores o

    matrices.

    / cociente escalar o

    B/A=B*inv(A). A y B son matrices

    MSc. Javier Lozano Marreros

  • 36

    OPERADORES ARITMTICOS

    .* producto de escalares o vectores (elemento a elemento).

    ./ A./B = [A(i,j)/B(i,j)]

    ^ potencia de escalares o potencia

    escalar de matriz (Mp)

    .^ potencia de vectores

    A.^B = [A(i,j)B(i,j)]

    MSc. Javier Lozano Marreros

  • 37

    OPERADORES RELACIONALES

    < menor que

    > mayor que

    = mayor o igual que

    == igualdad

    ~= diferente a MSc. Javier Lozano Marreros

  • 38

    OPERADORES LGICOS

    ~ negacin

    & conjuncin

    | disyuncin

    MSc. Javier Lozano Marreros

  • 39

    PROGRAMACIN

    EN MATLAB

    PROGRAMAS QUE SE EJECUTAN EN LA

    VENTANA DE COMANDOS

    MSc. Javier Lozano Marreros

  • 40

    Entrada de datos

    LA FUNCIN input

    MSc. Javier Lozano Marreros

    LEER

    variable

    variable = input(texto)

    variable = input(texto,'s')

  • 41 MSc. Javier Lozano Marreros

    Ejemplos

    N = input('ingrese el numero de terminos: ')

    LEER

    N, f(x)

    txt=input ('Ingrese la funcion f(x):','s');

    f = inline(txt);

  • 42

    Salida de datos

    LA FUNCION disp

    MSc. Javier Lozano Marreros

    ESCRIBIR

    variable

    disp(variable)

  • 43

    Salida de datos

    Escribe una cadena con formato.

    SINTAXIS

    cadena = fprintf(formato,variables)

    MSc. Javier Lozano Marreros

    LA FUNCION fprintf

  • 44 MSc. Javier Lozano Marreros

    Ejemplos Ejemplo1:

    disp(Mi primer programa');

    Ejemplo2:

    s=sqrt(b^2-4*a*c); disp(s);

    Ejemplo3:

    x = [2 3 4];

    texto1=Los valores de x son: ;

    texto2=num2str(x);

    texto3=[texto1,texto2];

    disp(texto3);

  • 45 MSc. Javier Lozano Marreros

    Ejemplos

    Ejemplo1:

    s=sqrt(b^2-4*a*c);

    fprintf(' %12.8f ', s)

    Ejemplo2:

    fprintf('%12.8f\n',pi)

    Ejemplo3:

    >> x=[-3:.5:3]'; y=x.^2; z=[x y];

    >>fprintf('\tX\t\tY\t\n');

    >>fprintf('%8.4f %8.4f\n',z')

  • 46

    variable = expresion

    MSc. Javier Lozano Marreros

    INSTRUCCIN DE ASIGNACIN

    d=b^2-4*a*c;

    2 4d b ac

  • 47

    if condicion

    instrucciones o grupo de instrucciones

    end

    V F Condicion

    Instrucciones

    LA SENTENCIA if

    MSc. Javier Lozano Marreros

    SENTENCIAS CONDICIONALES

  • 48

    if condicion

    Instrucciones1

    else

    Instrucciones2 end

    LA SENTENCIA if else

    V F Condicion

    Instrucciones1 Instrucciones2

    MSc. Javier Lozano Marreros

  • 49

    LA SENTENCIA switch

    switch expresin

    case valor 1

    Instrucciones1

    case valor 2

    instrucciones2

    . . .

    oterwise

    Instruccin cuando

    no cumple ningn

    caso

    end

    valor 1

    Expresion

    Inst 1 Inst 2 Inst n-1 Inst n

    valor 2 valor n-1 valor n

    MSc. Javier Lozano Marreros

  • 50

    LA SENTENCIA for

    for V=VI:I:VF

    instrucciones

    end

    F

    Instrucciones

    V = VI, VF, I

    MSc. Javier Lozano Marreros

    SENTENCIAS REPETITIVAS

  • 51

    LA SENTENCIA while

    while condicion

    instrucciones

    end

    V

    F Condicion

    Instrucciones

    MSc. Javier Lozano Marreros

  • 52

    EJEMPLOS DE PROGRAMAS

    EN MATLAB

    MSc. Javier Lozano Marreros

  • 53

    EJEMPLO 1. Disear el diagrama de flujo de

    programas, y escribir el programa en

    MATLAB, que calcule la suma de los

    n primeros trminos de la sucesin

    ,4!

    x,

    3!

    x,

    2!

    xx,1,

    432

    MSc. Javier Lozano Marreros

  • 54

    DIAGRAMA

    DE FLUJO

    i = 1, n-1

    INICIO

    LEER

    n , x

    P = 1

    F = 1

    S = 1

    P = P*x

    F = F*i

    S = S + P/F

    ESCRIBIR

    S

    FIN MSc. Javier Lozano Marreros

  • 55

    Cdigo en MATLAB

    Un script es una secuencia de instrucciones

    de MATLAB guardada en un archivo con

    extensin .m

    MSc. Javier Lozano Marreros

    Scripts

    Para ejecutar el programa:

    Pulsar F5

    Escribir el nombre del archivo en el

    prompt de la ventana de comandos.

  • 56

    Cdigo para la entrada de datos

    n=input(Ingrese n: );

    x=input(Ingrese x: );

    LEER

    n , x

    MSc. Javier Lozano Marreros

  • 57

    Cdigo para el proceso de datos

    P=1;

    F=1;

    S=1;

    for i=1:n-1

    P=P*x;

    F=F*i;

    S=S+P/F;

    end

    i = 1, n-1

    P = 1

    F = 1

    S = 1

    P = P*x

    F = F*i

    S = S + P/F

    MSc. Javier Lozano Marreros

  • 58

    Cdigo para la salida de datos

    disp(S);

    ESCRIBIR

    S

    MSc. Javier Lozano Marreros

  • 59

    CODIGO COMPLETO DEL PROGRAMA

    MSc. Javier Lozano Marreros

  • 60

    Ventana de ejecucin del ejemplo

    MSc. Javier Lozano Marreros

  • PROGRAMACIN VISUAL

    GUIDE

    CON MATLAB

  • PROGRAMACIN VISUAL CON MATLAB

    MSc. Javier Lozano Marreros 62

    GUIDE

  • 63

    ACCESO AL GUIDE DEL

    MATLAB

    MSc. Javier Lozano Marreros

  • 64

    EL GUIDE DEL MATLAB

    En el formulario se insertan los objetos que formaran parte de la interfaz de usuario

    Formulario

    Objeto

    MSc. Javier Lozano Marreros

    Paleta de

    componentes

    Run

  • 65

    Inspector de

    propiedades

    Para cambiar las

    propiedades de un objeto

    primero se debe de

    seleccionar el objeto

    MSc. Javier Lozano Marreros

  • 66

    Objeto static text

    Objeto edit text

    Objeto push button

    INTERFAZ DE USUARIO PARA EL EJEMPLO

    VENTANA DE DISEO

    MSc. Javier Lozano Marreros

  • 67

    PARA INGRESAR EL CODIGO EN EL

    BOTON ACEPTAR

    MSc. Javier Lozano Marreros

  • 68

    FUNCION DONDE SE

    INGRESARA EL CDIGO

    MSc. Javier Lozano Marreros

  • 69

    Entrada de datos LA FUNCION get Permite consultar y cambiar el valor de las propiedades

    de un objeto.

    SINTAXIS

    get(handles.Nom_obj,'prop');

    Donde:

    Nom_obj: nombre del objeto

    handles.Nom_obj: hace referencia al objeto de la interfaz grafica de usuario.

    'prop.: es la propiedad del objeto.

    MSc. Javier Lozano Marreros

  • 70

    LA FUNCION get

    EJEMPLO:

    texto=get(handles.edit1,'string');

    Esta instruccin captura el dato que se ha ingresado en el

    control Edit Text (edit1) y lo asigna a la variable texto.

    x=str2double(get(handles.edit2,'string'));

    Esta instruccin captura el dato que se ha ingresado

    en el control Edit Text (edit2), lo convierte a numero

    real y lo asigna a la variable x.

    MSc. Javier Lozano Marreros

  • 71

    Salida de datos LA FUNCION set Muestra el valor de las propiedades de un objeto.

    SINTAXIS

    set(handles.Nom_obj, 'prop.',v_prop);

    Donde:

    Nom_obj: Es el nombre del objeto

    handles.Nom_obJ: hace referencia al objeto que se encuentra en el formulario.

    'prop.: es la propiedad del objeto,

    V_prop: es el nuevo valor de la propiedad.

    MSc. Javier Lozano Marreros

  • 72

    LA FUNCION set

    EJEMPLOS:

    set(handles.edit5,'string',120);

    Esta instruccin escribe el numero 120 en el

    control Edit Text (edit5).

    set(handles.edit7,'string','No existe raiz');

    Esta instruccin escribe el texto No existe raiz

    en el control Edit Text (edit7).

    MSc. Javier Lozano Marreros

  • 73

    LA FUNCION sprintf

    Escribe una cadena con formato. Retorna una cadena.

    SINTAXIS

    cadena = sprintf(formato,variables)

    EJEMPLO:

    sprintf('x%d = %10.6f', 4, pi)

    muestra el siguiente resultado: x4 = 3.141593

    cad = sprintf('x%d = %10.6f', 4, pi)

    El resultado x4 = 3.141593 lo guarda en la cadena cad

    MSc. Javier Lozano Marreros

  • 74

    EJEMPLO

    Disear el diagrama de flujo de

    programas, y escribir el programa

    en MATLAB, que calcule la suma

    de los n primeros trminos de la

    sucesin:

    ,4!

    x,

    3!

    x,

    2!

    xx,1,

    432

    MSc. Javier Lozano Marreros

  • 75

    DIAGRAMA

    DE FLUJO

    i = 1, n-1

    INICIO

    LEER

    n , x

    P = 1

    F = 1

    S = 1

    P = P*x

    F = F*i

    S = S + P/F

    ESCRIBIR

    S

    FIN MSc. Javier Lozano Marreros

  • 76

    Cdigo para la entrada de datos

    n=str2double(get(handles.edit1,string));

    x=str2double(get(handles.edit2,string));

    LEER

    n , x

    MSc. Javier Lozano Marreros

  • 77

    Cdigo para el proceso de datos

    P=1;

    F=1;

    S=1;

    for i=1:n-1

    P=P*x;

    F=F*i;

    S=S+P/F;

    i = 1, n-1

    P = 1

    F = 1

    S = 1

    P = P*x

    F = F*i

    S = S + P/F

    MSc. Javier Lozano Marreros

  • 78

    Cdigo para la salida de datos

    set(handles.edit3,'string',S);

    ESCRIBIR

    S

    MSc. Javier Lozano Marreros

  • 79

    CODIGO COMPLETO DEL

    PROGRAMA

    MSc. Javier Lozano Marreros

  • 80

    Ventana de ejecucin del ejemplo

    MSc. Javier Lozano Marreros

  • 81

    Sigue Parte 2

    MSc. Javier Lozano Marreros