programacion

Upload: lee-hanson

Post on 10-Jan-2016

2 views

Category:

Documents


0 download

DESCRIPTION

MAtlab

TRANSCRIPT

  • Lenguaje de programacin MATLAB

    El software de MATLAB se desarroll originalmente como un Laboratorio de Matrices. (MATrix LABoratory-Laboratorio de matrices).

    MATLAB es un sistema interactivo y lenguaje de programacin para cmputo

    cientfico y tcnico en general, con un gran desempeo para el clculo numrico y

    tratamiento de datos. Su elemento bsico es una matriz.

    MATLAB contiene muchas herramientas y utilidades que permiten adems diversas

    funcionalidades, como la presentacin grfica en 2 y 3 dimensiones.

    MATLAB es un programa command-driven, es decir, que se introducen las rdenes

    escribindolas una a una a continuacin del smbolo >> (prompt) que aparece en una

    interfaz de usuario (ventana de comandos).

    MATLAB es un lenguaje de programacin amigable al usuario con caractersticas ms

    avanzadas y mucho ms fciles de usar que los lenguajes de programacin como Pascal

    o C, y cuenta con paquetes de funciones especializadas llamadas toolboxes y un entorno

    Visual similar al Visual Basic o al C++ Builder.

    1. INICIO DEL MATLAB

    LAVENTANA DE COMANDOS

    Para iniciar MATLAB localice el icono de MATLAB, en su escritorio y haga doble clic

    en l. Ante Ud. debera abrirse una ventana como la de la siguiente figura. Esta ventana

    (ventana de comandos), es la que Ud. emplear para transmitir rdenes a MATLAB.

    Unidad 01

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 2

    Fig. Ventana de Comandos

    En esta ventana, a continuacin del prompt >>, se puede ingresar directamente las

    ordenes o comandos.

    >> Comando o instruccin a ejecutar

    Ejemplo 1:

    Para calcular la expresin matemtica 2 , escribimos sqrt(2),y pulsamos la tecla entrar

    >> sqrt(2)

    ans =

    1.4142

    El resultado es desplegado y se guarda en la variable por defecto ans (answer).

    Carpeta de

    trabajo por

    defecto

    Prompt

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 3

    Ejemplo 2:

    Para calcular la expresin matemtica 25 -7 3+4 escribimos 5^2-7*3+4 y pulsamos la tecla entrar

    >> 5^2-7*3+4

    ans =

    8

    El resultado es desplegado y se guarda en la variable por defecto ans (answer).

    LA VENTANA DE EDITOR DE CDIGO

    Cuando la orden u rdenes son de varias lneas de texto, ya no es conveniente

    ingresarlos en la ventana de comandos, por eso MATLAB incorpora otra ventana

    denominada Editor de cdigo. En esta ventana se puede ingresar el cdigo de un

    programa ya sea de una lnea o de cientos de lneas de texto. Adems, esta ventana

    interacciona con el resto del entorno.

    Para acceder a esta ventana hacer clic en el icono . (nuevo archivo .m).

    Estos archivos son los archivos programa del MATLAB. Para correr el programa hacer

    un clic en el icono . El programa se ejecutar si el archivo .m ha sido previamente

    grabado. Por defecto el archivo .m se graba en el directorio donde se encuentra el

    programa MATLAB en la carpeta work.

    El programa tambin se puede ejecutar directamente desde la ventana de comandos.

    Para ello, activar la ventana de comandos y en ella digitar el nombre del archivo a

    continuacin del prompt >> y pulsar la tecla Enter.

    Fig. Ventana Editor de Cdigo

    VENTANA DE GRAFICOS

    Esta ventana se activa por defecto, y muestra el grafico definido previamente mediante

    algn cdigo.

    Se pulsa para ejecutar el programa

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 4

    Ejemplo 3:

    Para graficar la funcin 22( ) xf x x e escribir el siguiente cdigo en la ventana de

    comandos

    >> ezplot('x^2*exp(-x^2)'),grid on

    El resultado muestra la siguiente ventana con la grafica de dicha funcin. El dominio de

    esta funcin es por defecto: [ 2 ,2 ] .

    -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5

    0

    0.05

    0.1

    0.15

    0.2

    0.25

    0.3

    0.35

    0.4

    x

    x2 exp(-x2)

    Ejemplo 4:

    Para graficar la funcin ( )f x xSinx escribir el siguiente cdigo en la ventana de

    comandos.

    >> ezplot('x*sin(x)'), grid on

    -6 -4 -2 0 2 4 6

    -5

    -4

    -3

    -2

    -1

    0

    1

    2

    x

    x sin(x)

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 5

    Ejemplo 5:

    Para graficar la funcin 2 22 1( , ) x yf x y x e escribir el siguiente cdigo en la ventana

    de comandos

    >> ezmesh('x^2*exp(1-x^2-y^2)')

    -2

    -1

    0

    1

    2

    -2

    -1

    0

    1

    2

    -1

    0

    1

    x

    sin(x2+y2)

    y

    2. ESTRUCTURAS BSICAS DE DATOS.

    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 y minsculas, por lo que las siguientes

    variables dolar = 0 y Dolar = 1 son diferentes:

    >>dolar=0

    dolar

    =0

    >>Dolar=1

    Dolar

    =1

    Si escribimos un punto y coma al final de la instruccin, MATLAB omite el desplegado

    de informacin. Por ejemplo :

    >>x=5;

    Si se quiere saber el valor de alguna variable capturada slo se tiene que escribir el

    nombre de la variable y pulsar la tecla y MATLAB lo despliega. Por

    ejemplo:

    >>x

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 6

    CARACTERES ESPECIALES

    [ ]

    ( )

    =

    '

    '

    .

    ...

    ,

    ;

    %

    Son usados para formar vectores y matrices

    Usados para expresiones matemticas

    Usado para hacer asignaciones

    Transpuesta de una matriz

    Usado para escribir texto en un programa

    Punto decimal

    Al final de una lnea indican que continua en el sgte rengln

    Para separar elementos

    Para separar filas en las matrices y para evitar que se

    despliegue la informacin

    Para escribir comentarios

    [1 2 3; 4 5 6]

    sqrt(2)

    x=5

    A'

    'Ingrese a: '

    3.1415

    2,3,4,5,6 ....

    7,8,9,10 ]

    [1,2,3,4]

    [ 1 2; 3 4]

    %fecha:12/10/11

    3. ARREGLOS (ARRAYS)

    VECTORES

    Para representar un vector fila con n elementos:

    SINTXIS:

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

    o tambin

    v = [v1 v2 v3 vn]

    Por ejemplo, para calcular el seno de " 1 a 4 " con incrementos de 1, se deben capturar

    los valores y asignarlos en la variable x, y despus aplicar el seno al vector. MATLAB

    opera en radianes, donde = 180.

    >> x=[ 1 2 3 4]

    x=

    1 2 3 4

    >> sin(x)

    ans =

    0.8415 0.9093 0.1411 -0.7568

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 7

    MATRICES

    Para representar una matriz de mxn elementos

    SINTAXIS

    M=[a11, a12,a13, ... ,a1n; a21, a22,a23, ... ,a2n; ... ;am1, am2,am3, ... ,amn]

    En lugar de las comas se pueden utilizar espacios

    >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2] %crea la matriz de 4 por 3

    A =

    1 4 -3

    5 -7 8

    2 5 1

    5 6 2

    OPCIONES PARA MANIPULAR LOS ELEMENTOS DE UNA MATRIZ

    A(m,n) Define (devuelve) el elemento (m,n) de la matriz.

    m es el numero de filas y n el numero de columnas

    A(m, :) Devuelve la msima fila de la matriz A

    A(:, n) Devuelve la nsima columna de la matriz A

    MATRICES ESPECIALES

    diag(A) Devuelve la diagonal de la matriz A como vector columna

    eye(n) Crea la matriz identidad de orden n.

    zeros(m,n) Crea la matriz nula de orden mxn.

    ones(m,n) Crea la matriz de orden mxn, cuyos elementos son unos.

    rand(m,n) Crea la matriz aleatoria de orden mxn.

    fliplr(A) Devuelve la matriz cuyas columnas estn colocadas en orden inverso (de

    izquierda a derecha) a las de A.

    size (A) Devuelve el orden(tamao) de la matriz A

    length(v) Devuelve el nmero de elementos del vector v

    inv (A) Devuelve la matriz inversa de la matriz A

    A Devuelve la matriz traspuesta de la matriz A

    det(A) Devuelve la determinante de una matriz.

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 8

    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

    OPERADORES ARITMTICOS

    + Suma de escalares, vectores o matrices.

    - resta de escalares, vectores o matrices.

    * producto de escalares, vectores o matrices.

    / divisin escalar o B/A. A y B son matrices

    .* 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)]

    4. PROGRAMACIN EN MATLAB

    Scripts

    Un script es una secuencia de instrucciones de MATLAB guardada en un archivo con

    extensin .m. Se utiliza la ventana de editor de cdigo

    Ejemplo 6:

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 9

    Para ejecutar el programa se hace un clic en el cono Save and Run o pulsar la tecla F5.

    La ejecucin del programa se visualiza en la ventana de comandos luego de haber

    grabado el archivo. Para volver a ejecutar este programa, en la ventana de comandos se

    escribe el nombre del archivo tal como se muestra a continuacin.

    >> esic2011_p1_1

    Ingrese x1: 0

    Ingrese y1: 0

    Ingrese x2: 4

    Ingrese y2: 0

    Ingrese x3: 2

    Ingrese y3: 2

    4

    SENTENCIAS DE CONTROL

    SENTENCIAS CONDICIONALES

    SENTENCIA if

    Esta sentencia permite ejecutar una instruccin o grupo de instrucciones si la condicin

    es verdadera.

    condicion

    Instrucciones

    V F

    SINTXIS

    if condicion

    Instruccin o grupo de instrucciones

    end

    condicin: expresin lgica

    SENTENCIA if - else

    Si la condicin es verdadera se ejecuta la instruccin o grupo de instrucciones 1, si la

    condicin es falsa se ejecuta la instruccin o grupo de instrucciones 2.

    condicionV F

    Instrucciones 1 Instrucciones 2

    SINTXIS

    if condicion

    Instruccin o grupo de instrucciones1

    else

    Instruccin o grupo de instrucciones2

    end

    condicin: expresin lgica

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 10

    SENTENCIA switch

    La sentencia switch ejecuta ciertas instrucciones basados en el valor de una variable o

    de una expresin.

    expresion

    Valor 1

    Inst. 2Inst. 1 Inst. 3 Inst. n

    Valor 2 Valor 3 Valor n

    expresin:

    variable que toma uno de los valores

    SINTXIS

    switch expresion

    case Valor 1

    instrucciones1

    case Valor 2

    instrucciones2

    case Valor 3

    instrucciones3

    ...

    oterwise

    instruccin cuando no

    cumple ningn caso

    end

    SENTENCIAS REPETITIVAS

    EL BUCLE for

    Esta sentencia permite ejecutar en forma repetitiva una instruccin o grupo de

    instrucciones varias veces.

    , ,v vi inc vf

    Instrucciones

    SINTXIS

    for v = vi : inc: vf

    Instruccin o grupo de instrucciones

    end.

    vi: valor inicial

    inc: incremento

    vf: valor final

    EL BUCLE while

    Esta sentencia permite ejecutar en forma repetitiva una instruccin o grupo de

    instrucciones bajo el control de una condicin lgica.

    condicion

    Instrucciones

    V

    F

    SINTXIS

    while condicion

    Instruccin o grupo de instrucciones

    end.

    condicin: expresin lgica

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 11

    FUNCIONES CREADAS POR EL USUARIO. DEFINICIN DE FUNCIONES

    SINTXIS

    function [parmetros de salida] = nombre de la funcin (parmetros de entrada)

    Cuerpo de la funcin

    Una vez definida la funcin se guarda en un archivo .m para su uso posterior. Escriba

    comentarios entre % , al cual se acceden con el comando help

    Si los parmetros de salida son mas de uno se sitan entre corchetes y separados por

    comas. Si los parmetros de entrada son ms de uno, se separan por comas.

    Cada comando o instruccin en el cuerpo de la funcin suele ir en una lnea que finaliza

    con una coma o punto y coma o una coma seguida de tres puntos sucesivos.

    LLAMADA DE FUNCIONES

    SINTXIS

    [variables de retorno] = nombre de la funcin (parmetros actuales)

    EJEMPLO: Crear la funcin f(x)=x3-2x+cosx

    Cdigo de la funcin

    function y = f(x)

    %la funcion evalua f(x)=x^3-2*x+cos(x)

    y=x^3-2*x+cos(x);

    Grabar el archivo con extensin .m. El nombre del archivo es el mismo nombre que el

    de la funcin. Este archivo se graba por defecto en la carpeta work del directorio del

    MATLAB. Se puede utilizar la funcin desde la ventana de comandos o desde cualquier

    programa en MATLAB

    >> f(2)

    ans =

    3.5839

    EVALUACIN DE UNA FUNCIN

    FUNCION feval

    SINTXIS

    feval(fun, arg1, arg2, arg3, ... ,arg N)

    donde fun viene a ser el nombre de la funcin (archivo .m)

    EJEMPLO: Evaluar la funcin f(x)=x3-2x+cosx

    >> feval('f',3) %f.m es el nombre de la funcin

    ans =

    20.0100

  • Curso: Calculo Numrico

    MSc. Javier Lozano Marreros 12

    FUNCION inline

    Convierte una cadena en una funcin

    SINTXIS

    f = inline (expresion, arg1, arg2, arg3, ... ,arg N)

    EJEMPLOS:

    >>g = inline('t^2')

    g =

    Inline function:

    g(t) = t^2

    >> w=inline('x^2+y^2+z^2','x','y','z')

    w =

    Inline function:

    w(x,y,z) = x^2+y^2+z^2

    PROGRAMAS QUE SE EJECUTAN EN LA VENTANA DE COMANDOS

    ENTRADA DE DATOS

    Para la entrada de datos se utiliza la funcin input

    variable = input (texto);

    Donde variable es un identificador vlido, en la que se va a almacenar el valor que se va

    a ingresar por teclado.

    EJEMPLO:

    a=input('ingrese el coeficiente a: ')

    SALIDA DE DATOS

    Para la salida de datos se utiliza la funcin disp

    disp(expresion);

    Donde expresin puede una variable o cadena de caracteres.

    EJEMPLO:

    disp('La suma es: ');

    disp(s);

    FUNCION sprintf

    Escribe una cadena con formato. Retorna una cadena de caracteres.

    SINTXIS

    cadena = sprintf(formato,variables)

    Por ejemplo, cad = sprintf('%8.6f',x) muestra la variable x con 6 decimales