intro duca o am at lab parte 201

26
Aplicações Informáticas para Engenharia Introdução ao Matlab Sérgio Manuel Ângelo da Cruz 2007

Upload: sidney-lins

Post on 26-Nov-2015

6 views

Category:

Documents


0 download

TRANSCRIPT

  • Ap

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Introduo ao Matlab

    Srgio Manuel ngelo da Cruz

    2007

  • 2A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Introduo

    Ferramentas Informticas de Apoio Engenharia: Matlab (Matrix Laboratory) e Simulink Labview Mathematica e Maple Mathcad Maxwell 2D / 3D, Ansys, Flux 2D ....e muitas outras.

  • 3A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Introduo

    Porqu o estudo do Matlab/Simulink e Labview? Uso intensivo destas ferramentas quer nas universidades quer na

    indstria

    O Matlab, com as suas caixas de ferramentas especficas (toolboxes), uma ferramenta usada em todas as reas da Engenharia Electrotcnica:

    Controlo, Processamento de Sinal, Processamento de Voz e Imagem, Energia (Linhas de Transmisso, Mquinas Elctricas, Electrnica de Potncia, etc.), Redes Neuronais, Optimizao de Sistemas, etc.

  • 4A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Matlab - Introduo Ferramenta de clculo cientfico, vocacionada para o clculo

    numrico

    Permite o desenvolvimento de programas ao nvel da(o): Anlise numrica Anlise de dados Clculo matricial Processamento de sinais Construo de grficos etc.

  • 5A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Matlab - Introduo Nesta Unidade Curricular (UC) iremos apenas utilizar uma

    pequena percentagem das funcionalidades do Matlab

    Iremos abordar os conceitos bsicos numa primeira fase e aprofundar os conhecimentos ao longo do semestre.

  • 6A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Matlab Ambiente de Trabalho

    Quando o Matlab iniciado, so visveis trs janelas distintas: A janela de comando (onde aparece o smbolo >>)

    Uma outra janela, com os submenus da directoria actual e do ambiente de trabalho. Aqui exibida uma listagem dos ficheiros da directoria corrente bem como o ambiente de trabalho (workspace), onde consta uma listagem das variveis que vo sendo geradas/introduzidas pelo matlab/utilizador

    A janela do histrico (parte inferior do lado esquerdo do monitor, onde aparece o histrico dos comandos introduzidos na janela de comando.

  • 7A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Matlab Operadores Aritmticos

    Subtraco-

    Adio+

    Multiplicao*

    Diviso esquerda\

    Diviso direita/

    Potenciao^

    FuncionalidadeOperador

    Nota: o Matlab respeita as prioridades habituais destes operadores.

  • 8A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Matlab Operadores Relacionais

    Diferente~=

    Igual==

    Maior ou igual>=

    Maior>

    Menor ou igual

  • 9A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Matlab Operadores Lgicos

    OR (ou inclusivo)|

    NOT (negao)~

    ou exclusivoxor

    AND (conjuno)&

    FuncionalidadeOperador

    Nota: Os operadores lgicos tm uma prioridade inferior dos operadores aritmticos e relacionais.

    Exemplo:>> 1==2 & 4>=3ans =

    0

  • 10

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Tipos de dados no Matlab char (usar e no nas definies!!) numeric

    single (4 bytes) double (8 bytes, tipo de dado por defeito) uint8 (inteiro de 1 byte, sem sinal) int64 (inteiro de 8 bytes, com sinal) ... e muitos outros ....

    struct cell Informao adicional: usar o comando help datatypes

  • 11

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Declaraes, constantes e variveis Definio de variveis e atribuio de valores s mesmas:

    a=2 define uma varivel a e atribui-lhe o valor 2 b=isto uma aula; define a varivel b do tipo char c=3, d=23e-3 define e atribui valores a c e d d=int16(23) define d como sendo do tipo int16 e inicializa-o com o valor 23

    A colocao de ; no fim da linha de comando instrui o matlab a no dar nenhuma resposta: Ver a diferena entre introduzir a=2 e a=2;

    A qualquer altura pode ver as variveis que j foram criadas, com os comandos who e whos

    ATENO: o matlab faz distino entre maisculas e minsculas, por isso y e Y so duas variveis distintas!!

  • 12

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Definio de um vector linha X:

    x=[1 20 45 1e-2 sin(pi)] define um vector linha com 5 elementos Em alternativa pode-se definir como x=[1,20,45,1e-2,sin(pi)] Outras formas de definir vectores:

    >>x=1:3x =

    1 2 3ou

    >>x=2:3:11x =

    2 5 8 11

    Vector=valor mnimo:passo:valor mximo

  • 13

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes A funo linspace permite criar vectores de elementos com

    igual espaamento entre si:Vector=linspace(valor mnimo, valor mximo, nmero de elementos)

    >>x=linspace(2,8,4)x =

    2 4 6 8

    >> x=linspace(2,7,4)x =

    2.0000 3.6667 5.3333 7.0000

  • 14

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Definio de uma matriz A, de dimenses 33:

    >> A=[1 3 6;4 2 6;6 8 9]A =

    1 3 64 2 66 8 9

    Em alternativa, pode-se definir a matriz A linha a linha, premindo aps a introduo de cada linha>> A=[1 3 64 2 66 8 9]

    A =1 3 64 2 66 8 9

  • 15

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Para transpor um vector ou matriz, usa-se o operador :

    >> y=[1 34 56]y =

    13456

    Pode-se aceder aos elementos das matrizes atravs do nmero da linha e coluna onde tais elementos esto localizados: A(x,y) devolve o elemento da matriz A situado na linha x e coluna y.

    Por exemplo A(1,2)=3 Pode-se tambm extrair mais do que um elemento simultaneamente.

    Por exemplo A(2,:) devolve toda a segunda linha da matriz A

  • 16

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Pode-se ainda obter submatrizes usando comandos, para alm dos

    ndices. Por exemplo:>> A(3,2:end)ans =

    8 9 Neste caso, o comando end indica que se devem extrair os elementos da

    matriz, desde a segunda at ltima coluna Outros exemplos:

    >> B(7, 1:5); % L as colunas 1-5 (de 1 a 5) na linha 7>> B(4:2:8, 1:5); % L as colunas 1-5 nas linhas 4, 6 e 8>> B(:, 1:5); % L as colunas 1-5 em todas as linhas

    Notas importantes: o matlab armazena a ltima resposta na varivel ans (de answer); uma sequncia de nmeros pode ser gerada usando a sintaxe incio:passo:fim

  • 17

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Para se conhecerem as dimenses de uma matriz ou vector,

    pode-se usar o comando size:>> size(x)ans =

    1 4 Para aceder individualmente ao nmero de linhas e colunas,

    poder-se- escrever>> [linhas,colunas]=size(A); Neste exemplo, linhas e colunas so variveis que sero inicializadas

    com o nmero de linhas e colunas da matriz A

    No caso de vectores, pode-se ainda usar o comando lengthpara obter o comprimento dos mesmos

  • 18

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Pode-se transformar uma matriz num vector coluna usando

    : da seguinte forma:

    >> B=[1 34 45;4 5 6;100 200 300]B =

    1 34 454 5 6

    100 200 300

    >> x=B(:)x =

    14

    100345

    200456

    300

  • 19

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Nas operaes entre matrizes, utilizam-se os mesmos operadores

    aritmticos que entre escalares No entanto, pode-se preceder o operador aritmtico de um .. Esse facto

    indica ao matlab que a operao deve ser efectuada elemento a elemento. Um exemplo:

    >> A=[1 2;3 4]; B=[3 5;1 0.5];>> C=A*BC = % Produto habitual de duas matrizes

    5 613 17

    >> C=A.*B % Neste caso C(i,j)=A(i,j)*B(i,j)C =

    3 103 2

  • 20

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Vectores e Matrizes Criao de matrizes especiais:

    Cria uma matriz composta por elementos aleatrios (entre 0 e 1 no caso de rand)rand(m,n) e randn(m,n)Cria uma matriz diagonal (se X vector) ou extrai elementos da diagonal (se X matriz)diag(X)

    Cria uma matriz composta por elementos nuloszeros(m,n)

    Cria uma matriz identidade de dimenses mneye(m,n)Cria uma matriz composta por elementos unitriosones(m,n)

    FuncionalidadeComando

    No caso de se fornecer apenas um argumento s funes anteriores, so criadas matrizes quadradas

  • 21

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Funes Sobre Escalares

    signtan

    remlog e log10

    ratsatan

    floorexp

    roundacos

    ceilcos

    sqrtsin

    absasin

    Funes usadas frequentemente

    Nota: no caso de funes trigonomtricas, o argumento ter de ser fornecido em radianos

  • 22

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Funes Sobre Vectores e Matrizes

    anyall

    sumprod

    minmax

    sortmedian

    stdmean

    Funes mais usuais

  • 23

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Funes Sobre Matrizes

    triltriu

    rankcondnormsizesqrtmexpmschurhess

    qrluinvsvd

    choleig

    detpoly

    Funes mais usuais

  • 24

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Formatao da Sada O comando format permite alterar a forma como o matlab

    apresenta os nmeros no monitor

    2/3format rat3fe5555555555555format hex6.666666666666666e-001format long e0.666666666666667format long

    0.6667format short

    0.67format bank

    6.6667e-001format short e

    Formato da sadaComando

  • 25

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Utilidades Diversas A funo clear permite eliminar parte ou todas as variveis criadas

    anteriormente:>> clear x % elimina o vector x>> clear A B % elimina as matrizes A e B>> clear % elimina todas as variveis no permanentes>> clear all % idntico a clear mas elimina tambm funes, atalhos MEX, etc.,

    etc.

    Existem variveis que o matlab j traz definidas por defeito e que no podem ser apagadas (variveis permanentes): pi % nmero pi inf % infinito NaN % no numrico, por exemplo 0/0 i e j % nmero complexo i=j=sqrt(-1) realmin % menor nmero real positivo que o matlab consegue representar realmax % maior nmero real positivo que o matlab consegue representar

  • 26

    A

    p

    l

    i

    c

    a

    e

    s

    I

    n

    f

    o

    r

    m

    t

    i

    c

    a

    s

    p

    a

    r

    a

    E

    n

    g

    e

    n

    h

    a

    r

    i

    a

    Srgio Cruz

    Utilidades Diversas Quando se sai do matlab, perdem-se todas as variveis. O comando

    save permite gravar todas as variveis no ficheiro matlab.mat (defeito) O comando load permite restaurar as variveis a partir desse ficheiro Pode-se gravar apenas algumas variveis. Um exemplo:

    >>save backup_aula A B x % grava as matrizes A, B e o vector x>>clear % elimina todas as variveis>>load backup_aula % restaura as variveis gravadas

    O matlab pode gravar todos os comandos introduzidos na janela decomando. Para esse efeito usa-se o comando diary:>>diary arquivo % grava todos os comandos (excepto grficos)

    Para suspender este comando faz-se diary off e para voltar a habilit-lo faz-se diary on

    O comando clc permite limpar a janela de comando

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure true /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles true /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /NA /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /LeaveUntagged /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice