29
MATLAB Matlab es un entorno de trabajo para el cálculo científico. Programado originalmente por el matemático y programador, especialista en análisis numérico, Cleve Moler a finales de los años 70, su finalidad original era proporcionar una forma sencilla de acceder a las librerías LINPACK y EISPACK donde están implementadas, de una forma altamente eficiente, los algoritmos clave del análisis matricial. De hecho matlab es una abreviación de Matrix Laboratory. Su primera implementación se hizo en Fortran que era, y en buena medida aún sigue siéndolo, el lenguaje estándar en la implementación de métodos numéricos. Posteriormente se reimplementó en C++, que es como se encuentra en la actualidad. ¿Qué es?

Clase Introductoria Lenguaje Matlab

Embed Size (px)

DESCRIPTION

Una clase introductoria a Matlab (no me digas)

Citation preview

  • MATLAB

    Matlab es un entorno de trabajo para el clculo cientfico. Programado

    originalmente por el matemtico y programador, especialista en anlisis

    numrico, Cleve Moler a finales de los aos 70, su finalidad original era

    proporcionar una forma sencilla de acceder a las libreras LINPACK y

    EISPACK donde estn implementadas, de una forma altamente eficiente, los

    algoritmos clave del anlisis matricial. De hecho matlab es una abreviacin

    de Matrix Laboratory.

    Su primera implementacin se hizo en Fortran que era, y en buena medida

    an sigue sindolo, el lenguaje estndar en la implementacin de mtodos

    numricos. Posteriormente se reimplement en C++, que es como se

    encuentra en la actualidad.

    Qu es?

  • Las aplicaciones de Matlab se fueron extendiendo a otras ramas del clculo

    cientfico y de las ciencias aplicadas en general, dotndole de una gran

    popularidad en ambientes cientficos, especialmente en Ingeniera. Dichas

    extensiones se consiguieron en gran parte mediante la implementacin de

    toolboxes, libreras escritas en el lenguaje de programacin propio de

    Matlab y que ampliaban el rango de problemas que podan resolverse.

  • El lenguaje de programacin de Matlab es bastante ms flexible que los

    lenguajes tradicionales. No es preciso la declaracin inicial de variables,

    stas se pueden introducir en el momento que se necesiten, y por ejemplo,

    vectores y matrices pueden declararse sin especificar sus dimensiones e

    incluso cambiar sus tamaos sobre la marcha.

    Cmo trabaja?

    Por otro lado, una gran cantidad de mtodos numricos se encuentran

    implementados de una forma muy eficiente y son accesibles como simples

    comandos. An as, es conveniente tener una idea de qu mtodos se

    estn utilizando para ser conscientes bajo qu condiciones van a funcionar,

    cul es en cada caso el mtodo adecuado, y especialmente el significado de

    los, posiblemente, numerosos argumentos opcionales que controlan el

    funcionamiento del algoritmo.

  • A priori se pueden distinguir dos tipos de funciones en Matlab:

    funciones compiladas (built in functions): estn optimizadas, son

    programas ya compilados y con el cdigo no accesible para el usuario.

    funciones no compiladas: estn escritas siguiendo el lenguaje de

    programacin propio de Matlab. Estos comandos se guardan en

    ficheros *.m que es la extensin estndar de los ficheros de Matlab.

  • Entorno de trabajo

    Command window: ventana donde podemos ejecutar los comandos.

    El prompt de matlab es >>. El usuario escribe a continuacin.

    Para ejecutar se pulsa la tecla enter.

    Se pueden recuperar comandos anteriores navegando con las flechas y .

  • Se distinguen maysculas y minsculas.

    Cuando se trabaje en matlab tener en cuenta:

    Todos los comandos de matlab se escriben en minsculas y los

    argumentos se envan entre parntesis separados por comas

    El caracter % se utiliza para insertar comentarios. Todo lo que sigue, en

    la misma lnea, es ignorado por matlab.

    Si se escribe el smbolo ; al final de una instruccin, sta se ejecuta pero

    el resultado no se muestra por pantalla.

  • Comandos de ayuda

    help: muestra una ayuda por pantalla, en la ventana de comandos, con

    la informacin esencial sobre un comando concreto.

    doc: similar a help pero despliega la ayuda en una ventana auxiliar,

    permitiendo as una navegacin, estilo web, muy cmoda.

    >>help eig Ejemplo

    >>doc quad Ejemplo

  • Variables

    Matlab no necesita la declaracin de variables como en un lenguaje

    tradicional. En principio todas las variables son reales, y basta hacer uso de

    ellas para que queden declaradas.

    >>a = 2;b = -3; Ejemplo

    Operadores aritmticos

    Operador Descripcin

    + suma

    resta

    producto

    / divisin

    ^ potencia

    >>c = a*b

  • Operadores relacionales

    Operador Descripcin

    == igualdad

    ~ = desigualdad

    > mayor

    < menor

    >= mayor o igual

  • Vectores y matrices

    Un vector o una matriz se puede definir dando sus elementos entre

    corchetes y separando filas mediante ;.

    >>a = [1,4,-2,0,3];

    >>b = [6;-3;2];

    vector fila 1x5

    vector columna 3x1

    >>M = [2,1,3;0,8,-3;4,0,1]; matriz 3x3

    Ejemplo

    = 1,4, 2,0,3

    = 63 2

    =2 1 30 8 34 0 1

  • Otra forma de definir un vector/matriz es insertando sus elementos en

    cada posicin.

    >>Q(1,1) = 2;Q(1,2) = 5;Q(2,1) = 1;Q(2,2) = -3; Ejemplo

    Esto define una matriz Q de 2x2

    =2 51 3

    Acceso a elementos de matrices

    Ejemplo Sea la matriz =1 0 40 3 25 6 2

    >>a = P(1,3);

    asigna el elemento (1,3) de P a la variable a

    >>P = [1,0,4;0,3,2;5,6,2];

  • a : b construye el vector de valores [a a+1 a+2 .... b] donde a

    y b son nmeros enteros con a < b.

    Definicin de vectores con distribucin regular

    linspace(a,b,Npts) devuelve una particin uniforme de [a,b] en Npts

    puntos

    a : -1 : b construye el vector de valores [a-1 a-2 .... b] donde a

    y b son nmeros enteros con b < a.

  • Dimensiones de vectores y matrices

    El comando size devuelve la dimensin de un vector/matriz en un

    vector de tamao 21 con el nmero de filas y columnas.

    El comando length devuelve la longitud (nmero de elementos) de un

    vector.

    Ejemplo Si A es una matriz de orden 154

    >>sz = size(A); devuelve las dimendiones de A, sz = [15,4]

    >>n = size(A,1); devuelve el nmero de filas de A, n = 15

    >>m = size(A,2); devuelve el nmero de columnas de A, m = 4

    Ejemplo Si v es un vector de 20 elementos

    >>nv = length(v); devuelve el nmero de elemntos de v, nv = 20

  • Algunas propiedades vectoriales

    Ejemplo Sea el vector = 1,3, 2

    >>s = norm(v,2)

    >>s = norm(v,inf)

    Norma euclideana 2:

    Norma infinita :

    Ejemplo Sean los vectores 1 = 1,3, 2 y 2 = 4,1,5

    = 1 2

    >>c = dot(v1,v2)

    Producto interno :

  • Matrices especiales

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

    ones(m,n) es una matriz m x n de 1s.

    zeros(m,n) es una matriz m x n de 0s.

    =1 0 00 1 00 0 1

    =1 1 11 1 11 1 1

    =0 0 00 0 00 0 0

    Ejemplo

    Ejemplo

    Ejemplo

    >>P = eye(3)

    >>Q = ones(3,3)

    >>R = zeros(3,3)

  • Estructuras de control

    Estructuras de control

    Selectiva

    Selectiva switch

    Condicional if

    Repetitiva

    Bucle for

    Bucle while

  • Funciones

    function [out1,out2] = algorithm(in1,in2) declaration line

    documentation

    reserved word

    output arguments

    identifier input arguments

    implementation

    % % algorithm : % % INPUT % in1 : % in2 : % OUTPUT % out1 : % out2 : %

  • Grficos 1D

    x = linspace(-4*pi,4*pi,100);

    -15 -10 -5 0 5 10 15-0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    y = sin(x)./x;

    figure

    plot(x,y,b.-)

  • x = linspace(-pi,pi,100);

    -4 -3 -2 -1 0 1 2 3 4-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Superposicin de grficos

    y1 = sin(x);

    figure

    plot(x,y1,b.-,x,y2,r.-)

    y2 = cos(x);

    Ejemplo 1.

  • x = linspace(-pi,pi,100);

    -4 -3 -2 -1 0 1 2 3 4-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    y1 = sin(x); y2 = cos(x);

    figure

    hold on

    plot(x,y1,b.-), plot(x,y2,r.-)

    hold off

    Ejemplo 2.

  • x1 = linspace(-pi,pi,100);

    -4 -3 -2 -1 0 1 2 3 4-1

    -0.5

    0

    0.5

    1

    -4 -3 -2 -1 0 1 2 3 4-1

    -0.5

    0

    0.5

    1

    x2 = linspace(-pi,pi,200);

    y1 = sin(x1);

    y2 = cos(x2);

    figure

    subplot(2,1,1)

    subplot(2,1,2)

    Mltiples grficos en una ventana

    plot(x1,y1,b-)

    plot(x2,y2,r-)

    Ejemplo 1.

  • t1 = linspace(-pi,pi,100);

    t2 = linspace(-pi,pi,200);

    x = sin(x1);

    v = cos(x2);

    figure

    subplot(2,1,1)

    title(Posicion)

    plot(t1,x,b-)

    xlabel(t),ylabel(x),grid

    subplot(2,1,2)

    title(Velocidad)

    plot(t2,v,r-)

    xlabel(t),ylabel(v),grid

    Ejemplo 2.

  • -4 -3 -2 -1 0 1 2 3 4-1

    -0.5

    0

    0.5

    1Posicion

    t

    x

    -4 -3 -2 -1 0 1 2 3 4-1

    -0.5

    0

    0.5

    1Velocidad

    t

    v