16

matlab manejo del programa

Embed Size (px)

DESCRIPTION

matlab octave, funciones basicas de octave

Citation preview

  • Un Curso Introdutorio de Matlab

    Gerardo Ortigoza

    August 20, 2009

    1 Introdu

    ion

    MATLAB es la abreviatura de Matrix Laboratory (laboratorio de matries).

    Es un programa de anlisis numrio reado por The MathWorks en 1984.

    Est disponible para las plataformas Unix y Windows.

    Se pueden ampliar sus apaidades on Toolboxes, algunas de ellas estn

    destinadas al proesado digital de seal, adquisiin de datos, eonoma,

    inteligenia artiial, lgia difusa.Tambin uenta on otras herramientas

    omo Simulink, que sirve para simular sistemas.

    La primera versin surgi on la idea de emplear unos paquetes de sub-

    rutinas esritas en Fortran en los ursos de lgebra lineal y anlisis numrio,

    sin neesidad de esribir programas en Fortran.

    Usa un lenguaje de programain reado en 1970 para proporionar un

    senillo a

    eso al software de matries LINPACK y EISPACK sin tener que

    usar Fortran. Tambin tiene su propio ompilador.

    Es un software muy usado en universidades, entros de investigain y por

    ingenieros. En los ltimos aos ha inluido muhas ms apaidades, omo

    la de programar diretamente proesadores digitales de seal, rear digo

    VHDL y otras.

    MATLAB es un programa de lulo numrio, orientado a matries y

    vetores. Por tanto desde el prinipio hay que pensar que todo lo que se

    pretenda haer on l, ser muho ms rpido y efetivo si se piensa en

    trminos de matries y vetores.

    1

  • 2 Matries y Operaiones on Matries

    A = [1 2 3; 4 5 6]; AA =

    1 2 34 5 6

    size(A)ans =2 3 x = [1 5 4 8 10]; size(x)ans =1 5Pratique

    x = 0:.1 : 6 size(x) y = ones(size(x)) z = zeros(size(x))Z = zeros(size(A)) Y = ones(size(A)) w = zeros(2, 3) v = eye(5)A(2, 2) A(1, :) A(:, 2) A size(A) x(1 : 10)

    B = [2 0 1; 1 2 7]; A+B

    ans =3 2 25 7 13

    Denamos

    C = [3 3;1 4; 6 2]; b = [1 5 2]; c = [1 3]

    Realiemos las operaiones

    A+ 3 A C A b

    c A 2 A A/2 A. B

    2

  • A. 2 B./A

    Algunas funiones de Matries

    rand(3) rand(4,5) magi(3) hilb(3)

    Ejeriio

    1. Sea A = hilb(5) investigue el uso de diag(A), triu(A) y tril(A).

    2. DenaM = hilb(3) y B = [M, zeros(3, 2); zeros(2, 3), eye(2)], veriqueel tamao de B y su estrutura.

    Operaiones on Matries

    + suma resta produto potenia transpuesta

    \ divisin por la izquierda/ divisin por la dereha

    Sea

    A = [1 2 3 ; 4 5 6; 6 7 9]A =

    1 2 34 5 66 7 9

    b = [1; 0; 1]b =

    101

    La soluin de Ax = b esta dada porx = A\b

    3

  • x =0.00002.00001.6667

    Cuando A es uadrada la divisin por la izquierda se realiza usando elimi-nain Gaussiana, esto es ms eiente que usar x = inv(A) b. Si A noes uadrada entones es fatorizada usando ortogonalizain de Householder

    on pivoteo por olumnas y los fatores son usados para resolver el sistema

    sobre o subdeterminado en el sentido de mnimos uadrados.

    Ejeriios

    1. Considere la aproximain eA I + A+ A2

    2!+ A

    3

    3!+

    Compare expm(A)on las aproximaiones usando 1, 2, 3 trminos.

    Use A =

    (1 11 0

    )

    2. Cuenta Matlab on las funiones de Bessel?

    3. La matriz A =

    2 11 2 1

    1 2 11 2 1

    1 2 11 2

    se obtiene al disretizar en diferenias nitas el problema:

    u(x) = f(x), x (0, 1) u(0) = u(1) = 0,el sistema disreto es:

    ui1 + 2ui ui+1 = h2fi

    on h = 1/(n + 1), xi = ih. Dena el sistema disreta para diferentesvalores de n y resuelva.

    4. Cuenta matlab on alguna funin para denir matries esparidas?

    5. Existe alguna funin en Matlab que dibuje diagramas de Venn?

    4

  • 3 Expresiones, Variables y algunos omandos

    variable=expresion

    Matlab es sensible a minsulas y maysulas, as v1 6= V1 Algunos omandosde ventana

    whoclearclear x1, x2;clcclfCtrl C

    Si sales de Matlab todas las variables se pierden, pueden guardarse usando

    save y las variables van a parar a un arhivo matlab.mat, despus pueden

    reuperarse usando load.

    Ayudas en Matlab

    help nombre del omando

    helpwin

    helpdesk

    www.mathworks.om

    4 Comandos de ontrol

    x=[;

    4.1 for

    for i=1:10

    x = [x, i 2];end

    for i=1:5

    for j=1:5

    H(i, j) = 1/(i+ j 1);end

    end

    H

    5

  • 4.2 while

    n=0;

    while 2 n < 100n=n+1;

    end

    n

    El ms pequeo entero no negativo n tal que 2n 100

    4.3 if

    n=10;

    if n mayor que

  • Funciones Matricialeseig chol svd inv luqr hess expm sqrt polydet size norm cond rank

    Funciones Vectorialesmax min sort sum prod

    median mean std

    Ejeriios

    1. La suesin de Fibona

    i es la suesin innita de nmeros naturales

    1,2,3,5,8,13,21,34,55

    donde el primer elemento es 1, el segundo es 2 y ada elemento restante

    es la suma de los dos anteriores. Esriba un programa para alular

    estos nmeros.

    2. Cubos narisistas: Son ubos narisistas aquellos nmeros enteros po-

    sitivos que son exatamente iguales a la suma de sus dgitos elevados

    al ubo. Por ejemplo 371 es narisista, ya que:

    371 = 33 + 73 + 13.

    Esriba un programa que alule los nmeros narisistas menores que

    1000. untos de estos nmeros hay?

    3. Note que 1, 233 = 122 + 332. Existe algn otro nmero positivo de

    uatro dgitos on esta propiedad? Esriba un digo.

    5 Mles

    Hay dos lases de Mles: los sript les y los funtion les. Los Sript les

    ontienen una ole

    in de omandos que se ejeutan en el orden en que son

    esritos. Los Funtion les son arhivos que denen funiones.

    funtion [x1,x2=rootquad(a,b,)

    7

  • % Esta funin resuelve un uadrtia

    % a x 2 + b x+ c = 0% dados los oeientes a, b y c% Sintaxis [x1,x2=rootquad(a,b,)

    d = b 2 4 a c;x1 = (b+ sqrt(d))/(2 a);x2 = (b sqrt(d))/(2 a);

    Ejeriios

    1. Modique la funin rootquad para que funione de forma vetorial.

    Note que uando usamos help nombre de la funin denida aparee el

    omentario de la funin, adems no se deben usar nombres de funiones ya

    denidas en Matlab.

    Ejemplo 5.1 Denir la funin

    f(x) =

    x x < 0x2 0 x < 24 2 x

    funtion y=f(x)

    y1=x.*(x

  • format short e notain ienta on 5 deimales

    format long e notain ienta on 15 deimales.

    Ejeriios

    1. Considere la funin rootquady modiquela para que pueda ser usada

    de forma vetorial.

    7 Gras

    7.1 Gras en 2d

    x=0:.1:2*pi;

    y1=sin(x);

    y2=os(x);

    plot(x,y1,r-,x,y2,b:);

    legend(sin(x),os(x));

    title(Gra de las Funiones seno y oseno);

    xlabel(x);

    ylabel(y);

    grid on;

    axis tight;

    %text(x,y,texto); pone le mensaje texto en la posiin (x,y)

    0 1 2 3 4 5 6

    0.8

    0.6

    0.4

    0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    x

    Graficas de las Funciones seno y Coseno

    y

    sin(x)cos(x)

    Gra de las funiones Seno y Coseno

    9

  • Tipo de lnea Smbolo Tipo de punto Smbolo Color Smbolo

    slida - punto . azul b

    disontinua mas + verde g

    punteada : estrella * rojo r

    raya-punto -. irulo o negro k

    t=0:.05:pi+.01;

    r=sin(3*t).*exp(-0.3*t);

    polar(t,r)

    0.2

    0.4

    0.6

    0.8

    1

    30

    210

    60

    240

    90

    270

    120

    300

    150

    330

    180 0

    Gra de la funin r = sin(3)exp(0.3)

    7.2 Gras en 3d

    1. Gra de una hlie:

    t=0:0.1:6*pi;

    plot3(sin(t),os(t),t);

    xlabel(x);ylabel(y);zlabel(z); text(0,0,0,origen);

    grid on;

    title (Helie)

    2. Gra de una funin de 2 variables: z=f(x,y)

    10

  • (a) Generar una malla de puntos en el plano xy usando meshgrid.(b) Evaluar la funin f en estos puntos.() Crear la superie on el omando mesh.

    Ejemplo 7.1 Graar z = 20x2+x

    2+ 15y

    2+5y

    2para (x, y) [4, 4] [4, 4]

    1

    0.5

    0

    0.5

    1

    1

    0.5

    0

    0.5

    10

    5

    10

    15

    20

    x

    origen

    Helice

    y

    z

    Gra de la Hlie ~x(t) = (cos(t), sin(t), t)

    [x,y=meshgrid(-4:0.2:4,-4:0.2:4);

    z = 0.5 (20 x. 2 + x) + 0.5 (15 y. 2 + 5 y);mesh(x,y,z);

    gure;

    ontour3(x,y,z,20);

    gure;

    surf(x,y,z);

    shading interp;

    11

  • 42

    02

    4

    4

    2

    0

    2

    4300

    250

    200

    150

    100

    50

    0

    50

    Gra de la funion z = 20x2+x

    2+ 15y

    2+5y

    2

    42

    02

    4

    4

    2

    0

    2

    4300

    250

    200

    150

    100

    50

    0

    Curvas de nivel tridimensionales z = 20x2+x

    2+ 15y

    2+5y

    2

    42

    02

    4

    4

    2

    0

    2

    4300

    250

    200

    150

    100

    50

    0

    50

    12

  • Contornos de z = 20x2+x

    2+ 15y

    2+5y

    2

    3. Subplot El omando subplot(m,n,p) divide la ventana de gras en

    una matriz de m n areas y elige la p-sima omo la ventana ativa.

    [X, Y, Z] = sphere(12);subplot(1,2,1);

    mesh(X,Y,Z);

    title(Esfera Opaa);

    hidden on;

    subplot(1,2,2);

    mesh(X,Y,Z);

    title(Esfera Transparente);

    hidden o;

    1

    0

    1

    10.5

    00.5

    11

    0.8

    0.6

    0.4

    0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Esfera Opaca

    1

    0

    1

    10.5

    00.5

    11

    0.8

    0.6

    0.4

    0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    Esfera Transparente

    4. Silla de Montar Ejeriio: Graar la funin z = x2 y2.

    [x, y] = meshgrid(4 : 0.2 : 4,4 : 0.2 : 4);z = x. 2 y. 2;mesh(x,y,z);

    title(silla de montar); xlabel(x);ylabel(y);zlabel(z);

    13

  • 42

    02

    4

    4

    2

    0

    2

    420

    15

    10

    5

    0

    5

    10

    15

    20

    x

    silla de montar

    y

    z

    z = x2 y2

    ontour(x,y,z,20);%20 urvas de niveltitle(Curvas de Nivel);

    xlabel(x);ylabel(y);

    4 3 2 1 0 1 2 3 44

    3

    2

    1

    0

    1

    2

    3

    4Curvas de Nivel

    x

    y

    polor(x,y,z);

    shading interp;

    title(Contornos);

    xlabel(x);ylabel(y);

    14

  • 4 3 2 1 0 1 2 3 44

    3

    2

    1

    0

    1

    2

    3

    4Contornos

    x

    y

    gure;

    polor(x,y,z);

    shading interp;

    hold on;

    ontour(x,y,z,20,k);

    title(Contornos y urvas de nivel);

    xlabel(x);ylabel(y);

    hold o;

    4 3 2 1 0 1 2 3 44

    3

    2

    1

    0

    1

    2

    3

    4Contornos y curvas de nivel

    x

    y

    15

  • r=0:0.05:1;

    theta=0:0.1:2*pi+0.1;

    x = r cos(theta);y = r sin(theta);mesh(x, y, sin(pi (x. 2 + y. 2)));axis([-1 1 -1 1 0 2);

    1

    0.5

    0

    0.5

    1

    10.8

    0.60.4

    0.20

    0.20.4

    0.60.8

    10

    0.5

    1

    1.5

    2

    Gra de z = sin(r2)

    Referenes

    [1 D.M. Etter, Soluin de problemas en Ingeniera on Matlab, Prentie

    Hall, 1998.

    [2 S. Nakamura, ANALISIS NUMERICO VISUAL.GRAFICA MATLAB,

    Prentie Hall 1997.

    [3 B. R. Hunt, R. L. Lipsman, Dierential Equations with Matlab, Wiley

    2005.

    16

    IntroduccionMatrices y Operaciones con MatricesExpresiones, Variables y algunos comandosComandos de controlforwhileif

    MfilesCadenas de caracteres y formatos de salidaGrficasGrficas en 2dGrficas en 3d