matlab apostila

Upload: heder-oliveira-dias

Post on 05-Oct-2015

76 views

Category:

Documents


1 download

DESCRIPTION

Apostila de Matlab

TRANSCRIPT

  • UNIVERSIDADE FEDERAL DO CEAR

    CENTRO DE TECNOLOGIA

    DEPARTAMENTO DE ENGENHARIA ELTRICA

    PROGRAMA DE EDUCAO TUTORIAL

    Apostila de

    Fortaleza CE

    Maio / 2014

  • Apostila de Matlab 8.1

    Page 2 of 132

    Responsveis

    A apostila de MATLAB de responsabilidade do Programa de Educao Tutorial do curso de

    Engenharia Eltrica da Universidade Federal do Cear, tendo como principais responsveis desta

    verso os bolsistas:

    Alexcya Lopes Alexandre

    Camila Tavares Vitoriano

    Felipe Carvalho Sampaio

    caro Silvestre Freitas Gomes

    Jos Antonio de Barros Filho

    Lucas Cordeiro Herculano

    Lucas Rebouas Maia

    Maria Yasmin Almeida Sampaio

    Nestor Rocha Monte Fontenele

    Ricardo Antnio de Oliveira Sousa Junior

    Roberto Aaron Marques Braga

    Tlio Naam Guimares Oliveira

  • Apostila de Matlab 8.1

    Page 3 of 132

    SUMRIO

    1. PREFCIO .......................................................................................................................................... 6

    2. APRESENTAO .............................................................................................................................. 7

    2.1. Utilizando o HELP ...................................................................................................................... 7

    3. FORMATAO.................................................................................................................................. 9

    4. MATRIZES ....................................................................................................................................... 10

    4.1. Declarao ................................................................................................................................ 10

    4.2. Soma ......................................................................................................................................... 10

    4.3. Multiplicao ............................................................................................................................ 11

    4.4. Matrizes pr-Definidas .............................................................................................................. 12

    4.5. Propriedades de matrizes .......................................................................................................... 13

    4.6. Trabalhando com matrizes ........................................................................................................ 15

    5. VETORES ......................................................................................................................................... 19

    5.1. Declarao ................................................................................................................................ 19

    5.2. Operaes.................................................................................................................................. 20

    5.3. Sistemas de Coordenadas .......................................................................................................... 22

    6. M-FILE .............................................................................................................................................. 25

    6.1. Definio ................................................................................................................................... 25

    6.2. Organizao .............................................................................................................................. 26

    6.3. Operaes no M-File ................................................................................................................. 27

    7. FUNES MATEMTICAS ........................................................................................................... 32

    7.1. Funes Elementares ................................................................................................................ 32

    7.2. Propriedades Fundamentais ...................................................................................................... 32

    7.3. Nmeros Complexos ................................................................................................................. 33

    7.4. Funes Trigonomtricas .......................................................................................................... 34

    7.5. Aproximao Inteira ................................................................................................................. 36

    8. GRFICOS ........................................................................................................................................ 38

    8.1. Grficos Bidimensionais ........................................................................................................... 38

    8.2. Grficos Tridimensionais .......................................................................................................... 43

  • Apostila de Matlab 8.1

    Page 4 of 132

    8.3. Configurao ............................................................................................................................. 47

    9. MATEMTICA SIMBLICA .......................................................................................................... 58

    10. OPERAES MATEMTICAS BSICAS .................................................................................... 60

    10.1. Expresses Numricas .............................................................................................................. 60

    10.2. Polinmios ................................................................................................................................ 60

    10.3. Solucionando Equaes ou Sistemas ........................................................................................ 62

    11. CLCULO DIFERENCIAL.............................................................................................................. 64

    11.1. Limites ...................................................................................................................................... 64

    11.2. Diferenciao ............................................................................................................................ 64

    11.3. Integrao.................................................................................................................................. 65

    11.4. Integrais definidas pela Regra Trapezoidal ............................................................................... 66

    11.5. Integrais definidas pela Regra de Simpson ............................................................................... 66

    11.6. Integrao Dupla ....................................................................................................................... 67

    11.7. Integrao Tripla ....................................................................................................................... 67

    11.8. Outras funes .......................................................................................................................... 68

    12. SRIES NUMRICAS ...................................................................................................................... 70

    12.1. Somatrio .................................................................................................................................. 70

    12.2. Srie de Taylor .......................................................................................................................... 70

    13. ANLISE DE SINAIS ...................................................................................................................... 72

    13.1. Transformao de Varivel Independente................................................................................. 72

    13.2. Funes Pr-definidas ............................................................................................................... 74

    13.3. Convoluo ............................................................................................................................... 80

    13.4. Equaes de Diferenas ............................................................................................................ 82

    13.5. FFT (Transformada Rpida de Fourier) ................................................................................... 83

    13.6. Filtros Digitais .......................................................................................................................... 86

    14. CONTROLE ...................................................................................................................................... 90

    15. SIMULINK ...................................................................................................................................... 105

    15.1. Iniciando o Simulink ............................................................................................................... 105

    15.2. Criando um modelo................................................................................................................. 106

    15.3. Aspectos sobre a soluo dos sistemas ................................................................................... 108

  • Apostila de Matlab 8.1

    Page 5 of 132

    15.4. Modelagem de Sistemas ......................................................................................................... 110

    16. GUI .................................................................................................................................................. 118

    16.1. Introduo e Apresentao ...................................................................................................... 118

    16.2. Ferramentas bsicas ................................................................................................................ 119

    16.3. Ferramentas get e set ............................................................................................................... 127

    16.4. Criando uma GUI .................................................................................................................... 129

    17. REFERNCIAS BIBLIOGRFICAS ............................................................................................. 132

  • Apostila de Matlab 8.1

    Page 6 of 132

    1. PREFCIO

    Esta apostila foi desenvolvida por alunos do Programa de Educao Tutorial (PET) do curso de

    Engenharia Eltrica da Universidade Federal do Cear (UFC) para a realizao do Curso de MATLAB.

    Com o intuito de promover uma introduo ao MATLAB que viesse a facilitar o desempenho dos

    estudantes da graduao na realizao de seus trabalhos e na sua vida profissional, o PET elaborou este

    Curso de MATLAB que est atualmente na dcima quinta edio. Durante as quinze edies foram

    contemplados aproximadamente 700 estudantes dos mais variados cursos de Engenharia do Centro de

    Tecnologia da UFC.

    Devido sua boa repercusso o Curso de MATLAB foi premiado no XVII Encontro de Iniciao

    Docncia nos Encontros Universitrios de 2008.

  • Apostila de Matlab 8.1

    Page 7 of 132

    2. APRESENTAO

    O MATLAB (MATrix LABoratory) uma linguagem de alto desempenho para computao tcnica.

    Integra computao, visualizao e programao em um ambiente de fcil uso onde problemas e solues

    so expressos em linguagem matemtica. Usos tpicos:

    Matemtica e computao;

    Desenvolvimento de algoritmos;

    Aquisio de dados;

    Modelagem, simulao e prototipagem;

    Anlise de dados, explorao e visualizao;

    Construo de interface visual do usurio.

    2.1. Utilizando o HELP

    Indubitavelmente, a melhor apostila tutorial sobre o MATLAB que possa existir o HELP do

    prprio MATLAB. Todas as informaes possveis h no HELP, principalmente sobre as toolboxes,

    sobre funes, SIMULINK e entre outros.

    O HELP pode ser aberto de vrias formas. A primeira atravs da barra de menu, como mostrado na

    Fig. 1.

    Figura 1 - HELP do MATLAB sendo acessado pela barra de menu

    Outra forma pela tecla de atalho F1. Uma terceira forma pelo boto da barra de acesso rpido,

    posicionado logo acima da barra de Menu, de acordo com a Fig. 2.

  • Apostila de Matlab 8.1

    Page 8 of 132

    Figura 2 - HELP do MATLAB sendo acessado pelo boto START

    Dando continuidade, quando se deseja obter informaes sobre uma dada funo, possvel

    consultar diretamente no HELP ou pelo COMMAND WINDOW. Para isso, basta digitar help e em seguida

    a funo requerida, de acordo com o exemplo abaixo:

    >> help dirac dirac Delta function.

    dirac(X) is zero for all X, except X == 0 where it is

    infinite.

    dirac(X) is not a function in the strict sense, but rather a

    distribution with int(dirac(x-a)*f(x),-inf,inf) = f(a) and

    diff(heaviside(x),x) = dirac(x).

    See also heaviside.

    Veja que as informaes sobre a funo dirac aparecem no prprio COMMAND WINDOW. Se for

    necessrio consultar a pgina do HELP, basta utilizar o comando doc e em seguida o nome da funo. Por

    exemplo:

    >> doc dirac

    Depois de efetuado este comando, ir aparecer a janela do HELP com o seguinte, Fig. 3.

    Figura 3 - HELP da funo dirac

  • Apostila de Matlab 8.1

    Page 9 of 132

    3. FORMATAO

    No MATLAB no h necessidade de declarar o tipo das variveis utilizadas no programa, mas o

    usurio pode escolher qual o formato que vai ser utilizado. So usados os comandos mostrados na Tabela

    1.

    Tabela 1 - Formato das variveis

    Comando MATLAB Varivel Descrio

    Format long 3.141592653589793 Com 16 dgitos

    Format short 3.1416 Com 5 dgitos

    Format short e 3.1416e+000 Com 5 dgitos notao

    cientfica

    Format long e 3.141592653589793e+000 Com 16 dgitos em notao

    cientfica

    Format + +

    Retorna + para valores

    positivos e - para valores

    negativos

    Format rat 355/113 Aproximao racional

    Format hex 400921fb54442d18 Formato hexadecimal

  • Apostila de Matlab 8.1

    Page 10 of 132

    4. MATRIZES

    4.1. Declarao

    A declarao de matrizes feita da seguinte maneira:

    >> a = [1:10] %cria o vetor linha [1 2 3 4 5 6 7 8 9 10] >> b = [0:0.5:3] %cria o vetor [0 0.5 1 1.5 2 2.5 3] >> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] %cria a matriz A no seguinte formato %A = % 16 3 2 13 % 5 10 11 8 % 9 6 7 12 % 4 15 14 1 >> A(1,2) %Elemento de linha 1 e coluna 2 >> A(:,3) %Elementos da coluna 3 >> A(1,:) %Elementos da linha 1

    O MATLAB tambm aceita a concatenao de matrizes, por exemplo:

    >> a = [4 1; 3 4];

    >> b = [2 3; 4 5];

    >> c = [a b]

    %c =

    % 4 1 2 3

    % 3 4 4 5

    Obs.: bom lembrar que o MATLAB tem como primeiro ndice do vetor o nmero 1, diferente de

    outras linguagens que usam o primeiro ndice como 0.

    4.2. Soma

    A soma de todos os elementos de uma matriz com um nmero feita da seguinte maneira:

    >> c = [4 1 2 3; 3 4 4 5];

    >> c+1

    %ans =

    % 5 2 3 4

    % 4 5 5 6

    A soma de matrizes feita da maneira tradicional:

    >> d = [ 1 2 7 8; 4 7 5 8];

    >> e = [ 5 -4 7 0; 3 -1 6 -4];

    >> d+e

    %ans =

    % 6 -2 14 8

    % 7 6 11 4

  • Apostila de Matlab 8.1

    Page 11 of 132

    4.3. Multiplicao

    Usa-se o sinal da multiplicao:

    >> a = [1 4 2; 7 8 5; 9 5 4];

    >> b = [4 2 -5; 0 1 3; 8 -2 1];

    >> c = a*b

    %c =

    % 20 2 9

    % 68 12 -6

    % 68 15 -26

    Obs.: Se for desejado realizar outra operao matemtica (exceto a soma e a subtrao) entre os

    elementos com mesmo ndice das matrizes deve-se colocar um ponto antes do operador. Observe os

    exemplos abaixo:

    >> a = [1 4 2; 7 8 5; 9 5 4];

    >> b = [4 2 -5; 0 1 3; 8 -2 1];

    >> c = a.*b

    %c =

    % 4 8 -10

    % 0 8 15

    % 72 -10 4

    >> b./a

    %ans =

    % 4.0000 0.5000 -2.5000

    % 0 0.1250 0.6000

    % 0.8889 -0.4000 0.2500

    >> a.^2

    %ans =

    % 1 16 4

    % 49 64 25

    % 81 25 16

    Exerccio 1 - Declare as matrizes A, B e C abaixo:

    7654321A 21181512963B

    7

    0

    6

    5

    5

    10

    4

    15

    3

    10

    2

    5

    1

    0C

    Atravs das matrizes acima, determine as matrizes a seguir utilizando os comandos j mencionados.

    7654D

    4567E

    4

    7

    5

    6

    6

    5

    7

    4F

    4

    7

    6

    5

    5

    6

    7

    4

    G

    21

    18

    15

    12

    H

    6

    5I

    3

    10

    2

    5

    1

    0J

    9

    100

    4

    25

    1

    0K

    10

    99

    5

    24

    2

    0L

    10

    99

    5

    24

    2

    0M

  • Apostila de Matlab 8.1

    Page 12 of 132

    4.4. Matrizes pr-Definidas

    ones

    Definio: Esta funo gera uma matriz cujos valores so unitrios.

    Sintaxe:

    ones(n) Gera uma matriz quadrada de ordem n cujos termos so unitrios.

    ones(m,n) Gera uma matriz m x n cujos termos so unitrios.

    >> ones(2)

    %ans =

    % 1 1

    % 1 1

    zeros

    Definio: Esta funo gera uma matriz cujos valores so nulos.

    Sintaxe:

    zeros(n) Gera uma matriz quadrada de ordem n cujos termos so nulos.

    zeros(m,n) Gera uma matriz m x n cujos termos so nulos.

    >> zeros(2)

    %ans =

    % 0 0

    % 0 0

    eye

    Definio: Gera uma matriz identidade.

    Sintaxe:

    eye(n) Gera uma matriz identidade n x n.

    eye(m,n) Gera uma matriz de ordem m x n cujos termos que possuem i=j so unitrios.

    >> eye(2)

    %ans =

    % 1 0

    % 0 1

    vander

    Definio: Calcula a matriz de Vandermonde a partir de um vetor dado.

    Sintaxe:

  • Apostila de Matlab 8.1

    Page 13 of 132

    vander(A) Calcula a matriz de Vandermonde a partir de A

    >> A = [1 2 3 4];

    >> vander(A)

    %ans =

    % 1 1 1 1

    % 8 4 2 1

    % 27 9 3 1

    % 64 16 4 1

    rand

    Definio: Cria uma matriz com valores aleatrios.

    Sintaxe:

    rand(m) Cria uma matriz m x m com valores aleatrios entre 0 e 1.

    rand(m,n) Cria uma matriz m x n com valores aleatrios entre 0 e 1.

    >> rand(2)

    %ans =

    % 0.9501 0.6068

    % 0.2311 0.4860

    4.5. Propriedades de matrizes

    (apstrofo)

    Definio: Calcula a matriz transposta.

    Sintaxe:

    A Gera a matriz transposta de A.

    >> A = [1 1; 2 3];

    >> A'

    %ans =

    % 1 2

    % 1 3

    Definio: Calcula o determinante de uma matriz.

    Sintaxe:

    det(A) Calcula o determinante da matriz A.

    >> A = [1 1; 2 3];

    >> det(A)

    %ans =

    % 1

  • Apostila de Matlab 8.1

    Page 14 of 132

    trace

    Definio: Retorna um vetor com a soma dos elementos da diagonal principal de uma matriz.

    Sintaxe:

    trace(A) Retorna a soma dos elementos da diagonal principal da matriz A.

    >> A = [1 4; 2 1];

    >> trace(A)

    %ans =

    % 2

    inv

    Definio: Determina a matriz inversa dada.

    Sintaxe:

    inv(A) Retorna a matriz inversa da matriz A.

    >> A = [5 8; 4 9];

    >> inv(A)

    %ans =

    % 0.6923 -0.6154

    % -0.3077 0.3846

    eig

    Definio: Calcula os autovalores e autovetores de uma matriz.

    Sintaxe:

    eig(A) Retorna os autovalores de uma matriz quadrada A.

    [a, b] = eig(A) Retorna em a uma matriz com os autovetores e, em b, uma matriz com os autovalores

    associados.

    >> A = [1 -1; 4 1];

    >> [a,b] = eig(A)

    %a =

    % 0.0000 - 0.4472i 0.0000 + 0.4472i

    % -0.8944 + 0.0000i -0.8944 + 0.0000i

    %b =

    % 1.0000 + 2.0000i 0.0000 + 0.0000i

    % 0.0000 + 0.0000i 1.0000 - 2.0000i

    Exerccio 2 - Resolva o seguinte sistema de equaes lineares:

    20,26.4.2

    64,21.2.6

    20,13.5,1.2

    32

    321

    321

    xx

    xxx

    xxx

  • Apostila de Matlab 8.1

    Page 15 of 132

    4.6. Trabalhando com matrizes

    size

    Definio: Retorna as dimenses de uma matriz

    Sintaxe:

    [m,n] = size(A) Retorna, em m, o nmero de linhas e, em n, o nmero de colunas da matriz A.

    >> A = [1 1; 2 3];

    >> [m,n]=size(A)

    %m =

    % 2

    %n =

    % 2

    find

    Definio: Procura os elementos em uma matriz de tal modo a respeitar a lgica fornecida, retornando os

    ndices que descrevem estes elementos.

    Sintaxe:

    ind = find(X) Retorna os ndices de elementos no-nulos na matriz X.

    [row,col] = find(X, ...) Retorna, em row, uma matriz coluna com os ndices das linhas dos elementos

    da matriz X e, em col, a matriz coluna contendo os ndices correspondentes s colunas dos elementos da

    matriz X.

    [row,col,v] = find(X, ...) Retorna, em row, uma matriz coluna com os ndices das linhas dos elementos

    da matriz X , em col, uma matriz coluna contendo os ndices que descrevem as colunas dos elementos da

    matriz X e, em v, uma matriz contendo os elementos de X.

    >> A=[1 0; 0 3];

    >> find(A)

    %ans =

    % 1

    % 4

    >> X = [3 2 0; -5 0 7; 0 0 1];

    >> [r,c,v] = find(X>2);

    >> [r c]

    %ans =

    % 1 1

    % 2 3

    Veja no ultimo caso acima que r e c retornam os ndices das linhas e das colunas correspondentes aos

    elementos que respeitam a expresso oferecida.

    Obviamente, os elementos a11 e a23 so os nicos maiores que 2.

  • Apostila de Matlab 8.1

    Page 16 of 132

    sort

    Definio: Retorna o vetor dado ou elementos de uma matriz em ordem crescente ou decrescente.

    Sintaxe:

    sort(A,dim) Retorna os elementos das colunas (dim = 1) ou da linha (dim = 2) da matriz A em ordem

    crescente.

    sort(A,mode) Retorna os elementos das colunas da matriz A em ordem crescente (mode = ascend) ou

    em ordem decrescente (mode = descend).

    >> A=[1 1; 0 3];

    >> sort(A)

    %ans =

    % 0 1

    % 1 3

    fliplr

    Definio: Espelha as colunas de uma matriz.

    Sintaxe:

    fliplr(A) Espelha as colunas da matriz A.

    >> A = [1 2;3 4];

    >> fliplr(A)

    %ans =

    % 2 1

    % 4 3

    flipud

    Definio: Espelha as linhas de uma matriz.

    Sintaxe:

    flipud(A) Espelha as linhas da matriz A.

    >> A = [1 2;3 4];

    >> fliplr(A)

    %ans =

    % 3 4

    % 1 2

    Exerccio 3 - Crie um vetor A de 50 elementos aleatrios e em seguida crie a partir deste, outro vetor B

    obedecendo aos seguintes critrios:

    a. Conter somente os elementos de A maiores que 0.5;

    b. Os elementos devem de B estar em ordem decrescente.

  • Apostila de Matlab 8.1

    Page 17 of 132

    Exerccio 4 - Realize as seguintes operaes no MATLAB, a partir das matrizes dadas, e interprete o

    resultado.

    1

    10

    6

    6

    2

    8

    7

    9

    5

    A

    6

    1

    7

    B

    8.3

    2.9

    9.4

    5.4

    4.7

    1.8

    3.1

    1.2

    5.5

    C 014D

    a. E = det ( A .I ) com = 6

    b. F = A-1 . B

    c. A \ B

    d. A . F

    e. BT . C

    f. D . B A / A

    Exemplo 1 - Dado o circuito da Fig. 4, calcule as tenses nos ns 1 e 2.

    Figura 4 - Exemplo de circuito eltrico

    >> i = [10/1; 2];

    >> G=[1/1+1/5+1/2 -1/2; -1/2 1/2+1/10]

    %G =

    % 1.7000 -0.5000

    % -0.5000 0.6000

    >> v = inv(G)*i

    %v =

    % 9.0909

    % 10.9091

  • Apostila de Matlab 8.1

    Page 18 of 132

    Os resultados obtidos podem ser confirmados por intermdio da Fig. 5.

    Figura 5 - Formas de onda das tenses nos ns 1 e 2

  • Apostila de Matlab 8.1

    Page 19 of 132

    5. VETORES

    5.1. Declarao

    possvel trabalhar com vetores no MATLAB, cuja representao feita baseando-se numa matriz

    linha. Por exemplo, para obter o vetor (1,3,8), basta iniciarmos com:

    >> R = [1 3 8]

    %G =

    % 1 3 8

    Portanto, todas as operaes se tornam possveis a partir do uso de funes apropriadas. importante

    salientar que certas funes exigem a declarao de vetores por matriz coluna, entretanto, nada que uma

    consulta no help para ajudar.

    Uma operao bsica com vetores na determinao do nmero de elementos, a partir da funo

    length, assim como no clculo do seu mdulo, usando a funo norm, ambas definidas abaixo. Logo

    depois, sero dadas algumas funes que trabalham com vetores.

    length

    Definio: Retorna o nmero de elementos que compem o vetor.

    Sintaxe:

    length(A) Calcula o numero de termos do vetor A

    >> A = [8 9 5 7];

    >> length(A)

    %ans =

    % 4

    norm

    Definio: Retorna o mdulo do vetor.

    Sintaxe:

    norm(A) Calcula o mdulo do vetor A.

    >> x = [0 5 1 7];

    >> sqrt(0+5^2+1^2+7^2) %Forma Euclidiana

    %ans =

    % 8.6603

    >> norm(x) %Usando norm

    %ans =

    % 8.6603

  • Apostila de Matlab 8.1

    Page 20 of 132

    5.2. Operaes

    Quando se deseja calcular o produto vetorial (ou cruzado) de vetores, utiliza-se a funo cross,

    apresentada a seguir:

    cross

    Definio: Calcula o produto vetorial entre A e B.

    Sintaxe:

    C = cross(A,B) Retorna, em C, o produto vetorial dos vetores tridimensionais A e B.

    De modo anlogo, define-se a funo dot como a responsvel pelo produto escalar de dois vetores

    dados, conforme definio a seguir.

    dot

    Definio: Determina o produto escalar entre dois vetores.

    Sintaxe:

    C = dot(A,B) Retorna, em C, o produto escalar dos vetores n-dimensionais A e B.

    >> a = [1 7 3];

    >> b = [5 8 6];

    >> c = cross(a,b)

    %c =

    % 18 9 -27

    >> d = dot(a,b)

    %d =

    % 79

    Alm disso, qualquer outra operao possvel, como soma e subtrao, mas se deve atentar-se ao

    fato de que ambos os vetores devem possuir a mesma dimenso.

    Dando continuidade, sero definidas algumas funes que podero ser teis quando se trabalha com

    vetores ou at mesmo com matrizes.

    min

    Definio: Retorna os valores mnimos de um vetor ou o das colunas de uma matriz.

    Sintaxe:

    min(A) Retorna em um vetor linha os menores valores de cada linha da matriz A.

    min(A,B) Retorna uma matriz com os menores valores de cada posio correspondente de ambas as

    matrizes

  • Apostila de Matlab 8.1

    Page 21 of 132

    [a,b] = min(A) Retorna, em a, os menores valores de cada coluna e, em b, a posio dos mesmos nas

    suas respectivas colunas.

    >> A=[0 3; 2 4];

    >> [a,b]=min(A)

    %a =

    % 0 3

    %b =

    % 1 1

    max

    Definio: Retorna os valores mximos de um vetor ou o das colunas de uma matriz.

    Sintaxe:

    max(A) Retorna em um vetor linha os maiores valores de cada linha da matriz A.

    max(A,B) Retorna uma matriz com os maiores valores de cada posio correspondente de ambas as

    matrizes.

    [a,b] = max(A) Retorna, em a, os maiores valores de cada coluna e, em b, a posio dos mesmos nas

    suas respectivas colunas.

    >> A=[0 3; 2 4];

    >> [a,b]=min(A)

    %a =

    % 2 4

    %b =

    % 2 2

    sum

    Definio: Calcula o somatrio dos elementos de um vetor ou o somatrio das colunas de uma matriz.

    Sintaxe:

    sum(A) Retorna a soma dos elementos de um vetor ou a soma das colunas de uma matriz.

    >> A=[0 3; 2 4];

    >> sum(A)

    %ans =

    % 2 7

    prod

    Definio: Calcula o produtrio dos elementos de um vetor ou o produtrio das colunas de uma matriz.

    Sintaxe:

    prod(A) Retorna o produto dos elementos do vetor A ou o produto das colunas da matriz A.

  • Apostila de Matlab 8.1

    Page 22 of 132

    >> A=[0 3; 2 4];

    >> prod(A)

    %ans =

    % 0 12

    Exerccio 5 - Os trs vrtices de um tringulo esto em A (6,-1,2), B (-2,3,-4) e C (-3,1,5). Determine o

    vetor unitrio perpendicular ao plano no qual o tringulo est localizado. Tambm determine o ngulo

    BAC no vrtice A.

    Exerccio 6 - Declare a matriz X no MATLAB e determine:

    1

    9

    45

    8

    32

    2

    3

    65

    6

    X

    Um vetor Y que tenha o valor mnimo das trs primeiras colunas;

    a. A soma dos elementos de Y;

    b. Um vetor Z que tenha o valor mximo das trs primeiras linhas;

    c. O produtrio dos elementos do vetor Z;

    d. Calcule o mdulo dos elementos de cada linha.

    5.3. Sistemas de Coordenadas

    Existem funes, no MATLAB, que possibilitam as transformadas de coordenadas, conforme

    listadas a seguir:

    cart2pol

    Definio: Converte do cartesiano para o polar/cilndrico. Observe a Fig. 6.

    Sintaxe:

    [theta,rho,z] = cart2pol(x,y,z) Converte o ponto de coordenadas cartesianas (x,y,z) para coordenadas

    cilndricas (theta,rho,z).

    [theta,rho] = cart2pol(x,y) Converte o ponto de cartesianas (x,y) para coordenadas polares (theta,rho).

    Figura 6 - Transformao entre coordenadas cartesianas e polares/cilndricas

  • Apostila de Matlab 8.1

    Page 23 of 132

    pol2cart

    Definio: Converte do sistema de coordenadas polares/cilndricas para o sistema cartesiano.

    Sintaxe:

    [x,y] = pol2cart(theta,rho) Converte o ponto de coordenadas polares (theta,rho) para coordenadas

    cartesianas (x,y).

    [x,y,z] = pol2cart(theta,rho,z) Converte o ponto de coordenadas cilndricas (theta,rho,z) para

    coordenadas cartesianas (x,y,z).

    cart2sph

    Definio: Transforma do sistema de coordenadas cartesianas para o sistema de coordenadas esfricas.

    Observe a Fig. 7.

    Sintaxe:

    [theta,phi,r] = cart2sph(x,y,z) Converte o ponto de coordenadascartesianas (x,y,z) para coordenadas

    esfricas (theta,phi,r).

    Figura 7 - Transformao entre coordenadas cartesianas e esfricas

    sph2cart

    Definio: Transforma do sistema de coordenadas esfricas para o sistema de coordenadas cartesianas.

    Sintaxe:

    [x,y,z] = sph2cart(theta,phi,r) Converte o ponto de coordenadas esfricas (theta,phi,r) para cartesianas

    (x,y,z).

    Um exemplo para o uso destas funes na utilizao das equaes de potenciais eltricos para

    determinadas distribuies de carga que so simtricos a um sistema de coordenadas. Vejamos o exemplo

    abaixo.

    Exemplo 2 - Um dipolo eltrico formado colocando uma carga de 1 nC em (1,0,0) e uma outra carga de

    -1 nC em (-1,0,0). Determine as linhas equipotenciais geradas a partir dessa configurao.

  • Apostila de Matlab 8.1

    Page 24 of 132

    >> [x,y,z] = meshgrid(-0.5:.012:0.5);

    >> [teta,fi,r] = cart2sph(x,y,z);

    >> v = (1e-9*0.2*cos(teta))./(4.*pi.*8.85e-12.*r.^2);

    >> contourslice(x,y,z,v,[ -0.5:0.5],[-0.5:0.5],[-0.5:0.5]);

    >> colormap hsv

    >> grid on

    Figura 8 - Linhas equipotenciais

  • Apostila de Matlab 8.1

    Page 25 of 132

    6. M-FILE

    6.1. Definio

    O M-File uma ferramenta do MATLAB que auxilia na criao de funes e scripts. Para criar um

    novo M-File deve-se entrar na aba Home no menu New e escolher a opo script, Fig. 9, ou clicar em

    New Script na aba Home:

    Figura 9 - Criando um novo script pelo menu new

    Ser aberto um editor de textos. Este mais um ambiente de programao do MATLAB. Os

    comandos usados nesse editor so os mesmos do Command Window e podem ser utilizadas as variveis

    j presentes no Workspace. Uma grande utilidade do M-File facilitar a vida do usurio, atravs da

    execuo de scripts, que so arquivos que possuem uma lista de comandos que devem ser executados

    seqencialmente (tambm chamados de procedimentos). Assim, quando se quiser executar mais de uma

    vez um conjunto de comandos seqenciais relativamente grandes e trabalhosos para serem digitados, no

  • Apostila de Matlab 8.1

    Page 26 of 132

    ser necessrio digit-los um a um na Command Window, basta digitar os comandos no M-File, salvar o

    arquivo e execut-lo. Segue um exemplo de script para calcular a distncia entre dois pontos:

    p=[1 2];

    q=[4 5];

    temp=((p(1)-q(1))^2+(p(2)-q(2))^2);

    distancia=sqrt(temp);

    O primeiro passo para executar um script salv-lo. O M-File salva os arquivos do M-File no seu

    diretrio padro, com a extenso .m. Para salvar deve-se entrar no menu File e escolher a opo Save.

    Existem duas opes para se executar o script, a primeira clicar no boto Run, que est localizado na

    Barra de Ferramentas Run do M-File, Fig. 10, em verde:

    Figura 10 - Boto Run

    A outra opo usar o atalho F5. As conseqncias da execuo so as mesmas que seriam

    observadas se os comandos tivessem sido executados na Command Window: as variveis declaradas

    estaro todas disponveis no Workspace e os resultados de cada operao estaro presentes na tela.

    O M-FILE um ambiente de programao, portanto existem algumas funes, bem parecidas com as

    da linguagem C, por exemplo, que podem ser utilizadas.

    6.2. Organizao

    Para uma melhor organizao podemos fazer comentrios utilizando o smbolo %, ou selecionando

    o texto inteiro e teclando Crtl+R, ou %{ para abrir o comentrio por bloco e %} para fechar.

    Podemos ainda utilizar o smbolo %% para que, no mesmo M-File, o usurio possa rodar apenas

    algumas partes do programa, Fig. 11. Para rodar somente a parte selecionada, tecle Ctrl+Enter e para

    rodar o programa inteiro clique em F5 ou no cone da Fig. 12.

  • Apostila de Matlab 8.1

    Page 27 of 132

    Figura 11 - Script com comentrios

    Figura 12 - Iniciar simulao

    6.3. Operaes no M-File

    if

    Definio: Operao condicional. Executa as funes contidas no comando. Pode ser utilizado com else,

    que executa caso a condio declarada for falsa, e com elseif, que executa a funo caso outra condio

    posteriormente declarada for verdadeira.

    Para mais de uma condio, utiliza-se para e, &&, e para ou, ||.

    Sintaxe:

    if

    [Comandos]

    elseif

  • Apostila de Matlab 8.1

    Page 28 of 132

    [Comandos]

    else

    [Comandos]

    end

    for

    Definio: Comando de iterao. Permite que um conjunto de instrues seja executado at que a

    condio seja satisfeita.

    Sintaxe:

    for

    [Comandos]

    end

    while

    Definio: Comando de iterao. Executa um bloco de instrues enquanto a condio for verdadeira.

    Sintaxe:

    while

    [Comandos]

    end

    switch

    Definio: Operao condicional. Testa sucessivamente o valor da expresso dada e direciona para o caso

    especificado. Funciona como um bloco de ifs

    Sintaxe:

    switch

    case caso1

    [Comandos]

    case {caso1, caso2, caso3, ...}

    [Comandos]

  • Apostila de Matlab 8.1

    Page 29 of 132

    otherwise (Caso no seja nenhuma das outras condies)

    [Comandos]

    end

    >> a = 3;

    >> switch a

    >> case {2}

    >> disp('Resposta um')

    >> case {3}

    >> disp('Resposta dois')

    >> case '5'

    >> disp('Resposta tres')

    >> otherwise

    >> disp('Resposta ?')

    >> end

    disp

    Definio: Escreve no command window um texto ou o valor de um vetor, sem escrever seu nome.

    Sintaxe:

    disp(x)

    input

    Definio: Pede uma entrada do usurio pelo command window.

    Sintaxe:

    entrada = input(O que deseja?)

    >> X = input('Entre um nmero\n')

    >> num = 10*X

    Command Window:

    Entre um nmero

    23

    X =

    23

    num =

    230

    break

    Definio: Quebra um lao for ou while.

    Sintaxe:

    break

  • Apostila de Matlab 8.1

    Page 30 of 132

    >> for i = 0:5

    >> i

    >> if i == 1

    >> break

    >> end

    >> end

    Command Window:

    i =

    0

    i =

    1

    continue

    Definio: Passa para o prximo lao de um for ou while.

    Sintaxe:

    continue

    >> for i = 0:3

    >> if i == 1 || i == 2

    >> continue

    >> end

    >> i

    >> end

    Command Window:

    i =

    0

    i =

    3

    Operadores Lgicos

    Definio: Operadores lgicos

    Tabela 2 - Operadores Lgicos

    Entradas and or not xor

    A B A & B A | B ~A xor(A,B)

    0 0 0 0 1 0

    0 1 0 1 1 1

    1 0 0 1 0 1

    1 1 1 1 0 0

    Funes em M-File

  • Apostila de Matlab 8.1

    Page 31 of 132

    Outra importante funo do M-File a criao de funes. A declarao inicial da seguinte forma:

    function [saida1, saida2, ...] = nome(entrada1, entrada2, ...)

    %declarao do cdigo

    ...

    Segue um exemplo:

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    % Funo exemplo

    % A funo recebe um vetor qualquer e retorna dois valores

    % vetor2 = vetor multiplicado por 2

    % e v1 = o valor do primeiro elemento do vetor

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    function [vetor2, v1]= funcao(vetor)

    vetor2=vetor*2; % multiplica o vetor por 2

    v1=vetor(1); % retorna o primeiro elemento do vetor de entrada...

    Para chamar a funo, basta digitar na janela de comando o nome da funo com as entradas entre

    parnteses. importante lembrar de salvar o arquivo com mesmo nome da funo!

    Na janela de comandos do MATLAB podemos colocar um vetor como exemplo:

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    >> A = [2 5 -8 4 1 6]

    %A =

    % 2 5 -8 4 1 6

    >> [x,y]=funcao(A)

    %x =

    % 4 10 -16 8 2 12

    %y =

    % 2

    function [vetor2, v1]= funcao(vetor)

    vetor2=vetor*2; % multiplica o vetor por 2

    v1=vetor(1); % retorna o primeiro elemento do vetor de entrada...

  • Apostila de Matlab 8.1

    Page 32 of 132

    7. FUNES MATEMTICAS

    7.1. Funes Elementares

    O MATLAB contm um conjunto de funes que executam algumas funes matemticas

    elementares, como mdulo e raiz quadrada. A seguir disponibilizaremos uma lista de funes com uma

    breve descrio, Tabela 3.

    Tabela 3 - Funes matemticas elementares

    Funo Descrio

    log(X) Determina o logartmo natural de X

    log10(X) Determina o logartmo de X na base 10

    log2(X) Calcula o logartmo de X na base 2

    exp(X) Determina a exopresso de ex

    sqrt(X) Retorna a raiz quadrada de X

    7.2. Propriedades Fundamentais

    O MATLAB possui tambm funes que possibilitam os clculos elementares de matemtica, tais

    como mmc, mdc e entre outros. Por exemplo, as funes gcd e lcm retornam o mximo divisor comum e

    o mnimo mltiplo comum, respectivamente. Vejamos abaixo essas e outras funes similares:

    gcd

    Definio: Determina o mximo divisor comum entre dois parmetros.

    Sintaxe:

    G = gcd(A,B) Retorna, em G, o mximo divisor comum entre A e B.

    lcm

    Definio: Determina o mnimo mltiplo comum entre dois parmetros.

    Sintaxe:

    G = lcm(A,B) Retorna, em G, o mnimo mltiplo comum entre A e B.

    factorial

    Definio: Retorna o fatorial de um argumento.

    Sintaxe:

  • Apostila de Matlab 8.1

    Page 33 of 132

    factorial(N) Calcula o fatorial de N.

    nchoosek

    Definio: Desenvolve a fatorao binomial.

    Sintaxe:

    C = nchoosek(n,k) Retorna o nmero de combinaes de n tomada k a k.

    primes

    Definio: Devolve uma lista com uma quantidade desejada de nmeros primos.

    Sintaxe:

    p = primes(n) Devolve uma lista com n de nmeros primos.

    mod

    Definio: Calcula a congruncia entre dois argumentos.

    Sintaxe:

    M = mod(X,Y) Retorna, em M, a congruncia entre os argumentos X e Y.

    rem

    Definio: Determina o resto da diviso de dois argumentos.

    Sintaxe:

    R = rem(X,Y) Retorna, em R, o resto da diviso de X por Y.

    perms

    Definio: Desenvolve todas as permutaes possveis dos argumentos dados.

    Sintaxe:

    P = perms(v) v pode ser uma matriz com os nmeros nos quais deseja permut-los.

    7.3. Nmeros Complexos

    O MATLAB proporciona um conjunto de funes que auxilia o manuseio de nmeros complexos.

    Inicialmente, para definir um nmero complexo utilizam-se os operadores i e j (voltado mais para a

    engenharia). Por exemplo, para definir a = 5 + 8i , faz-se:

  • Apostila de Matlab 8.1

    Page 34 of 132

    >> a = 5 +8i

    %a =

    % 5.0000 + 8.0000i

    >> a = 5 + 8j

    %a =

    % 5.0000 + 8.0000i

    H outra forma de definir um nmero complexo no MATLAB, atravs da funo complex. A sua

    vantagem est na maior liberdade que se tem para alterar a parte imaginria, real, mdulo ou at mesmo a

    fase do nmero, no ponto de vista computacional. A definio dessa funo descrita como:

    complex

    Definio: Retorna um nmero complexo a partir da sua parte real e da sua parte imaginria.

    Sintaxe:

    c = complex(a,b) Retorna, em c, o nmero complexo de parte real a e parte imaginria b.

    Quando se deseja trabalhar com mdulo, ngulo de fase, conjugado, ou entre outros, tornam-se fceis

    de serem calculados quando se utiliza a funo adequada. Na Tabela 4 sero denotadas algumas funes

    que possibilitam isso.

    Tabela 4 - Funes para nmeros complexos

    Funo Descrio

    abs(X) Retorna o mdulo do nmero complexo x

    angle(X) Retorna a fase do comlexo X

    conj(X) Calcula o conjugado do nmero complexo X

    imag(X) Determina a parte imaginria de X

    real(X) Determina a parte real de X

    Exerccio 7 - Determine todos os parmetros intrnsecos ao nmero complexo 9e(5+3i)

    7.4. Funes Trigonomtricas

    Quando trabalhamos com trigonometria, o MATLAB dispe de funes que operam neste ramo

    matemtico. Tabela 5 resume bem algumas funes que possuem este fim.

  • Apostila de Matlab 8.1

    Page 35 of 132

    Tabela 5 - Funes trigonomtricas.

    Funo Descrio

    cos(X) Cosseno do argumento X em radianos

    sin(X) Seno do argumento X em radianos

    tan(X) Tangente do argumento X em radianos

    sec(X) Secante do argumento X em radianos

    csc(X) Cossecante do argumento X em radianos

    cot(X) Cotangente do argumento X em radianos

    Veja acima que estas funes retornam um valor correspondente a um argumento em radianos.

    Quando for desejado entrar com um argumento em grau, basta utilizar o sufixo d em cada funo. Por

    exemplo, o seno de 30:

    >> sind(30)

    %ans =

    % 0.5000

    Entretanto, quando deseja calcular o arco correspondente a um valor pra uma dada funo, basta

    utilizar o prefixo a diante as funes. Como exemplo, determinemos o arco-tangente de 1 em radianos:

    >> atan(1)

    %ans =

    % 0.7854

    Caso queiramos saber em grau, faramos:

    >> atand(1)

    %ans =

    % 45

    Por fim, quando se deseja determinar a funo hiperblica, basta utilizar o sufixo h na funo dada.

    Vejamos no comando a seguir:

    >> cosh(3)

    %ans =

    % 10.0677

    De fato, o resultado coerente, pois:

    >> (exp(3)+exp(

    %ans =

    % 10.0677

  • Apostila de Matlab 8.1

    Page 36 of 132

    A Tabela 6 resume bem o uso de sufixo e prefixo em funes trigonomtricas:

    Tabela 6 - Sufixos e prefixos de funs trigonomtricas

    Prefixo Sufixo Descrio Exemplo

    a - Determina o arco de um valor atan

    - d Determina o argumento em graus cosd

    - h Determina a funo hiperblica sinh

    7.5. Aproximao Inteira

    Na biblioteca de funes do MATLAB, h uma variedade que trabalha no intuito do arredondamento

    de nmeros. Indubitavelmente, a mais importante a round, que arredonda para o inteiro mais prximo.

    Obviamente, esta importncia depende do ambiente prtico no qual a funo est sendo submetida.

    Abaixo segue uma lista de funes que tratam com aproximaes numricas.

    round

    Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro mais prximo desses

    elementos. Tambm vlido para nmeros complexos.

    Sintaxe:

    Y = round(X) Retorna, em Y, os inteiros mais prximos dos elementos de X.

    ceil

    Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro imediatamente maior que

    os respectivos elementos.

    Sintaxe:

    B = ceil(A) Retorna, em B, os inteiros imediatamente maiores que os elementos de A.

    floor

    Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro imediatamente menor

    que os respectivos elementos.

    Sintaxe:

    B = floor(A) Retorna, em B, os inteiros imediatamente menores que os elementos de A.

  • Apostila de Matlab 8.1

    Page 37 of 132

    fix

    Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro mais prximo de tal

    modo que esteja em direo ao zero.

    Sintaxe:

    B = fix(A) Retorna, em B, os inteiros mais prximos, em direo ao zero, dos elementos de A.

  • Apostila de Matlab 8.1

    Page 38 of 132

    8. GRFICOS

    8.1. Grficos Bidimensionais

    ezplot

    Definio: Plota a expresso simblica f(x) no domnio padro -2 ezplot('sin(x)')

    Figura 13 - Grfico sin(x) gerado pela funo ezplot.

  • Apostila de Matlab 8.1

    Page 39 of 132

    plot

    Definio: Plota as colunas de um vetor versus os ndices de cada elemento, se o vetor for real. Se for

    complexo, plota a parte real pela parte imaginria de cada elemento. Observe a Fig. 14.

    Sintaxe:

    plot(X) Se X for real, plota as colunas de X pelos ndices de cada elemento.

    plot(X) Se X for complexo, plota a parte real pela parte imaginria de cada elemento. equivalente a

    plot(real(X),imag(X)).

    plot(X,Y) Plota os elementos de X pelos de Y.

    >> t = 0:pi/50:10*pi;

    >> plot(t,sin(t

    Figura 14 - Grfico sin(t) gerado pela funo plot.

  • Apostila de Matlab 8.1

    Page 40 of 132

    line

    Definio: Cria uma linha no grfico atual. Observe a Fig. 15.

    Sintaxe:

    line(X,Y) Cria uma linha definida nos vetores X e Y no grfico atual.

    line(X,Y,Z) Cria uma linha no espao tridimensional.

    >> x= -2:0.01:5;

    >> line(x,exp(x))

    Figura 15 - Grfico ex gerado pela funo line.

  • Apostila de Matlab 8.1

    Page 41 of 132

    stem

    Definio: Plota uma seqncia de dados discretos. Observe a Fig. 16.

    Sintaxe:

    stem(Y) Plota a seqncia de dados do vetor Y em um domnio discreto ao longo do eixo-x.

    stem(X,Y) Plota X em funo de Y em um domnio discreto. X e Y devem ser vetores ou matrizes de

    mesmo tamanho.

    >> x = -4:4;

    >> y = exp(x);

    >> stem(y(

    Figura 16 - Grfico ex gerado pela funo stem.

  • Apostila de Matlab 8.1

    Page 42 of 132

    compass

    Definio: Plota vetores de componentes cartesianas a partir da origem de um grfico polar. Observe a

    Fig. 17.

    Sintaxe:

    compass(U,V) Plota o vetor de componentes cartesianas U e V partindo da origem do grfico polar.

    >> compass(2,3)

    Figura 17 - Grfico polar gerado pela funo compass.

  • Apostila de Matlab 8.1

    Page 43 of 132

    8.2. Grficos Tridimensionais

    ezplot3

    Definio: Plota uma curva espacial de trs equaes paramtricas no domnio padro 0 < t < 2. Observe

    a Fig. 18.

    Sintaxe:

    ezplot3(x,y,z) Plota a curva paramtrica x = x(t) , y = y(t ) e z = z(t) .

    >> ezplot3('cos(t)','sin(t)','t')

    Figura 18 - Grfico cos(t), sin(t), t gerado pela funo ezplot3.

  • Apostila de Matlab 8.1

    Page 44 of 132

    plot3

    Definio: Plota tridimensionalmente um grfico. Observe a Fig. 19.

    Sintaxe:

    Plot3(X,Y,Z) Plota uma ou mais linhas no espao tridimensional atravs de pontos cujas coordenadas

    so elementos dos vetores ou matrizes X,Y e Z.

    >> >> t = 0:pi/50:10*pi;

    >> plot3(cos(t),sin(t),t)

    Figura 19 - Grfico cos(t), sin(t), t gerado pela funo plot3.

  • Apostila de Matlab 8.1

    Page 45 of 132

    ezsurf

    Definio: Plota a superfcie de um grfico de uma funo de duas variveis no domnio padro -2 < x <

    2 e -2 < y < 2. Observe a Fig. 20.

    Sintaxe:

    ezsurf(X,Y,Z) Plota a superfcie paramtrica x = x (s, t) , y = y (s, t) e z = z (s, t) no domnio -2 < s <

    2 e -2 < t < 2

    >> ezsurf('1/sqrt(x^2 + y^2)')

    Figura 20 - Superfcie

    gerada pela funo ezsurf.

  • Apostila de Matlab 8.1

    Page 46 of 132

    meshgrid

    Definio: Prepara a criao de uma superfcie de um grfico tridimensional.

    Sintaxe:

    [X,Y] = meshgrid(x,y) Transforma o domnio especificado pelos vetores x e y em matrizes de vetores

    X e Y, as quais podem ser usadas para preparar a plotagem de superfcie de um grfico tridimensional de

    uma funo de duas variveis.

    >> [X,Y] = meshgrid(-6:0.1:6,-6:0.1:6);

    >> Z = 1./(sqrt(X.^2+Y.^2));

    surf

    Definio: Plota a superfcie de um grfico de uma funo de duas variveis cujo domnio determinado

    pelo usurio. Observe a Fig. 21.

    Sintaxe:

    surf(X,Y,Z) Plota a superfcie paramtrica de Z em funo de X e Y.

    >> surf(X,Y,Z)

    Figura 21 - Superfcie

    gerada pela funo surf.

  • Apostila de Matlab 8.1

    Page 47 of 132

    8.3. Configurao

    text

    Definio: Cria objetos de texto em locais especficos do grfico. Observe a Fig. 22.

    Sintaxe:

    text(x,y,string) Escreve string no local (x,y). Pode-se modificar string das mais diversas formas.

    >> plot(0:pi/20:2*pi,sin(0:pi/20:2*pi)) >> text(pi,0,'\leftarrow sin(\pi)','FontSize',18)

    Figura 22 - Grfico sin(x) gerado pela funo plot com texto gerado pela funo text.

  • Apostila de Matlab 8.1

    Page 48 of 132

    title

    Definio: D um ttulo ao grfico. Observe a Fig. 23.

    Sintaxe:

    title(string) D o ttulo string ao grfico atual.

    >> compass(2,3) >> title('Grfico Polar')

    Figura 23 - Grfico polar gerado pela funo compass com ttulo gerado pela funo

  • Apostila de Matlab 8.1

    Page 49 of 132

    axis

    Definio: Determina os limites dos eixos coordenados X, Y e Z. Observe a Fig. 24.

    Sintaxe:

    axis([xmin xmax ymin ymax zmin zmax]) define o eixo X de xmin a xmax, o eixo Y de ymin a yimax e

    o eixo Z de zmin a zmax.

    >> t = 0:pi/50:10*pi;

    >> plot3(cos(t),sin(t),t)

    >> axis([-1.5 1.5 -1.5 1.5 -1 34])

    Figura 24 - Grfico cos(t), sin(t), t gerado pela funo plot3 com eixos ajustados pela funo axis.

  • Apostila de Matlab 8.1

    Page 50 of 132

    grid

    Definio: Adiciona ou remove as linhas de grade em um grfico. Observe a Fig. 25.

    Sintaxe:

    grid on Adiciona as linhas de grade em um grfico.

    grid off Remove as linhas de grade em um grfico.

    >> t = 0:pi/50:10*pi; >> plot3(cos(t),sin(t),t) >> grid on

    Figura 25 - Grfico cos(t), sin(t), t gerado pela funo plot3 com linhas de grade geradas pela funo grid.

  • Apostila de Matlab 8.1

    Page 51 of 132

    hold

    Definio: Determina se objetos so adicionados ao grfico ou se substituem o existente. Observe a Fig.

    26.

    Sintaxe:

    hold on Adiciona objetos no mesmo grfico

    hold off Substitui os objetos existentes em um grfico pelos atuais.

    >> x = -6:0.01:6; >> y = sin(x); >> plot(x,y) >> hold on >> t = -6:0.01:2; >> k = exp(t); >> plot(t,k)

    Figura 26 - Grficos sin(x) e ex gerados pela funo plot e ezplot respectivamente e colocados na mesma janela de grfico pela

    funo hold.

  • Apostila de Matlab 8.1

    Page 52 of 132

    legend

    Definio: Adiciona uma legenda ao grfico. Observe a Fig. 27.

    Sintaxe:

    legend(string1,string2) Adiciona as legendas string1 e string2 ao grfico atual.

    >> x=-6:0.01:6; >> y=sin(x); >> plot(x,y) >> hold on >> t=-6:0.01:2; >> k=exp(t); >> plot(t,k) >> legend('Grfico 1: y=sen(x)','Grfico 2: y=exp(x)')

    Figura 27 - Grficos sin(x) e ex gerados pela funo plot com legenda.

  • Apostila de Matlab 8.1

    Page 53 of 132

    xlabel, ylabel, zlabel

    Definio: D um ttulo aos eixos X, Y e Z. Observe a Fig. 28.

    Sintaxe:

    xlabel(string) D o ttulo string ao eixo X.

    ylabel(string) D o ttulo string ao eixo Y.

    zlabel(string) D o ttulo string ao eixo Z.

    >> t = 0:pi/50:10*pi; >> plot3(cos(t),sin(t),t) >> xlabel('x=cos(t)') >> ylabel('y=sin(t)') >> zlabel('z=t')

    Figura 28 - Grfico cos(t), sin(t), t gerado pela funo plot3 com ttulos nos eixos coordenados.

  • Apostila de Matlab 8.1

    Page 54 of 132

    xlim, ylim, zlim

    Definio: Estipula os limites dos eixos X,Y e Z. Observe a Fig. 29.

    Sintaxe:

    xlim([xmin xmax]) define o eixo X de xmin a xmax.

    ylim([ymin ymax]) define o eixo Y de ymin a ymax.

    zlim([zmin zmax]) define o eixo Z de zmin a zmax.

    >> t = 0:pi/50:10*pi; >> plot3(cos(t),sin(t),t) >> xlim([-1.5 1.5]) >> ylim([-1.5 1.5]) >> zlim([-1 34])

    Figura 29 - Grfico cos(t), sin(t), t gerado pela funo plot3 com eixos ajustados pelas funes xlim, ylim e zlim.

  • Apostila de Matlab 8.1

    Page 55 of 132

    figure

    Definio: Cria uma nova janela para plotar grficos.

    Sintaxe:

    figure Abre uma nova janela de grfico, definindo-a como janela atual.

    subplot

    Definio: Divide a janela do grfico em uma matriz definida pelo usurio, podendo trabalhar com

    qualquer um. Observe a Fig. 30.

    Sintaxe:

    h = subplot(m,n,p) (ou subplot(mnp)) Divide em m linhas, n colunas, plotando o grfico na posio p.

    Caso tenha uma matriz retangular, a contagem inicia-se no sentido anti-horrio do grfico superior

    esquerdo.

    subplot(m,n,p,'replace') Se o grfico j existe, deleta o grfico especificado, substituindo por outro

    grfico desejado.

    >> subplot(2,1,1),ezplot('sin(x)') >> subplot(2,1,2),ezplot('exp(x)')

    Figura 30 - Janela de grfico dividida atravs da funo subplot.

  • Apostila de Matlab 8.1

    Page 56 of 132

    Exerccio 8 - Plote as funes a seguir com os respectivos comandos e de acordo com cada item: 5sin (x)

    plot; 4sin(x) stem.

    a. Todas as funes no mesmo grfico;

    b. Cada funo em uma janela diferente;

    c. Todas as funes na mesma janela, mas em grficos diferentes.

    Exemplo 3 - Criao de arquivo em formato AVI. Observe as Fig. 31 e Fig. 33.

    aviobj=avifile('Filme Seno.avi','fps',50); hold on; grid on; x = -4*pi:0.1:4*pi; for k = 1:1:size(x,2)-1 xx = [x(k) x(k+1)]; yy = [sin(x(k)) sin(x(k+1))]; h = plot(xx,yy); set(h,'EraseMode','xor'); axis ([-10 10 -1.5 1.5]); frame = getframe(gca); aviobj = addframe(aviobj,frame); end aviobj=close(aviobj);

    Figura 31 - Janela de criao de arquivo em formato AVI do grfico sin(x).

  • Apostila de Matlab 8.1

    Page 57 of 132

    Aviobj = avifile('Complexo.avi','fps',50); hold off; grid on; t = 0:0.01:4*pi; x = cos(t); y = sin(t); for k = 1:1:length(t) c = x(k)+i*y(k); h = compass(c); set(h,'EraseMode','xor'); frame = getframe(gca); aviobj = addframe(aviobj,frame); end aviobj = close(aviobj);

    Figura 32 - Janela de criao de arquivo em formato AVI de grfico polar.

  • Apostila de Matlab 8.1

    Page 58 of 132

    9. MATEMTICA SIMBLICA

    H, em algumas situaes, a necessidade de se trabalhar com variveis simbolicamente, pois

    possibilita uma viso mais geral sobre o resultado de um problema. Neste contexto, uma funo

    importante a syms, que declara as variveis como simblica. Uma outra funo a sym, que transforma

    uma expresso para a forma literal. Mais detalhes dessas funes so dadas a seguir:

    syms

    Definio: Determina que os argumentos acompanhados tero carter simblico.

    Sintaxe:

    syms arg1 arg2 ...

    sym

    Definio: Define variveis, expresses e objetos como simblicos.

    Sintaxe:

    S = sym(A)

    x = sym('x')

    >> rho = sym('(1 + sqrt(5))/2')

    %rho =

    %5^(1/2)/2 + 1/2

    >> syms x y >> f = x^2*y + 5*x*sqrt(y)

    %f =

    %x^2*y + 5*x*y^(1/2)

    Em alguns casos, quando se desejar determinar quais as variveis simblicas numa expresso, usa-se

    a funo findsym, que retorna os parmetros que so simblicos. Uma outra funo a subs, que substitui

    a varivel declarada inicialmente simblica por uma outra ou mesmo por um nmero. Suas definies

    esto listadas abaixo:

    findsym

    Definio: Determina as variveis simblicas em uma expresso.

    Sintaxe:

    findsym(S)

    findsym(S,n)

  • Apostila de Matlab 8.1

    Page 59 of 132

    subs

    Definio: Substituio simblica em expresso simblica ou em matriz.

    Sintaxe:

    R = subs(S)

    R = subs(S, new)

    R = subs(S,old,new)

    R = subs(S,{old1,old2},{new1,new2})

    Exerccio 9 - Dado o procedimento abaixo:

    y = 3;

    w = 30; syms a b n t x z f = x^n+y;

    g = sin(a*t + b)-cosd(w);

    Determine os parmetros que so simblicos em f e em g. Substitua, em f, x por 2 e y por 3, e em g, a

    por 4, t por 7 e b por 1.

    Exerccio 10 - Implemente o mtodo das bissees sucessivas para a resoluo de equaes no lineares,

    Fig. 33.

    Figura 33 - Fluxograma do Mtodo das Bissees Sucessivas

  • Apostila de Matlab 8.1

    Page 60 of 132

    10. OPERAES MATEMTICAS BSICAS

    10.1. Expresses Numricas

    Uma curiosidade que o MATLAB dispe de um conjunto de funes que contribuem para a

    fatorao, expanso, simplificaes e entre outros. A Tabela 6 resume bem cada funo.

    Tabela 6 - Funes de fatrao, expanso, simplificao entre outros

    Funo Definio

    collect Reescreve a expresso como um polinmio

    expand Expande a expresso em produtos e somas

    horner Determina o fator em comum da expresso

    factor Fatora o polinmio, se os coeficientes so racionais

    simplify Simplifica as expresses, de forma mais geral.

    compose Calcula a composio das funes

    finverse Encontra a inversa funcional da funo.

    O uso dessas funes bastante semelhante, por exemplo, dada a expresso:

    x ( x ( x - 6 ) + 11 ) - 6

    Para agrup-la de tal modo que possa ter uma organizao em relao ao grau do polinmio, faz:

    >> syms x

    >> collect(x*(x*(x-6)+11)-6)

    %ans =

    %x^3 - 6*x^2 + 11*x 6

    Exerccio 11 - Verifique a relao trigonomtrica fundamental utilizando a funo simplify, logo aps,

    determine a forma expandida de tan( x + y).

    Exerccio 12 - Dado o polinmio f (x) = 2x2 + 3x - 5 e g(x) = x

    2 - x + 7.

    Determine os seguintes polinmios:

    a. f(g(x))

    b. g(f(x))

    10.2. Polinmios

    Agora trataremos com os polinmios. Para definir um polinmio no MATLAB, basta entrar com

    uma matriz linha, nos quais os elementos dela representam os coeficientes do maior para o menor grau.

  • Apostila de Matlab 8.1

    Page 61 of 132

    Por exemplo, o polinmio 5x3 - 9x2 +

    +

    representado como p=[5 -9 8/5 4/7]. bom lembrar que o

    polinmio pode ter elementos irracionais como, por exemplo, ou .

    As principais funes destinadas para os polinmios so descritas a seguir.

    poly

    Definio: Determina os coeficientes do polinmio a partir de suas razes. Caso a entrada seja uma

    matriz, este calcula o polinmio caracterstico da matriz.

    Sintaxe:

    p = poly(A)

    p = poly(r)

    >> y = [-2 -1]; %Declara um vetor linha [-2 -1]

    >> z = poly(y) %z o polinmio (x+2)(x+1)=x+3x+2 que tem como

    %razes -2 e -1

    %z =

    % 1 3 2

    >> A = [1 5 3; 0 -2 9; 2 11 -1]; %Declara a matriz

    >> poly(A) %calcula o seu polinmio caracterstico

    %ans =

    % 1.0000 2.0000 -106.0000 -5.0000

    roots

    Definio: Retorna um vetor coluna com a(s) raz(es) do polinmio fornecido.

    Sintaxe:

    r = roots(c)

    >> c = [1 3 2]; %declara um vetor correspondente ao polinmio %x+3x+2 >> x = roots(c) %Calcula as razes desse polinmio, que so e -1 %Observe a oposio entre as funes roots e poly %x = % -2 % -1

    polyval

    Definio: Determina o valor do polinmio para uma determinada entrada. Se a entrada for uma matriz, a

    funo retorna o valor do polinmio para cada elemento.

    Sintaxe:

    y = polyval(p,X) y receber os valores do polinmio desenvolvido para cada elemento da matriz X.

  • Apostila de Matlab 8.1

    Page 62 of 132

    >> polinomio = [1 3 2]; % polinmio=x4+5x3-2x2+8x+3.2 >> a = [1 -1; 3 2.83];

    >> valores=polyval(polinomio,a) %valores =

    % 15.2000 -10.8000

    % 225.2000 187.2906

    %valores(1,1) = a(1,1)4+5a(1,1)3-2 a(1,1)+8 a(1,1)+3.2

    polyfit

    Definio: Determina o polinmio interpolador com os pontos dados por x e y com o grau n. Os

    coeficientes so retornados numa matriz linha.

    Sintaxe:

    p = polyfit(x,y,n)

    >> x=[0:0.1:2.5]; >> y = sqrt(x); >> polinomio_interpolador = polyfit(x,y,3) >> pontos_interpoladores = polyval(polinomio_interpolador,x) >> plot(x,y,'color','r') >> hold on >> plot(x,pontos_interpoladores)

    Exerccio 13 - So dados os pontos (1;-1), (2;-7), (5;-8) e (8;10).

    Exerccio 14 - Determine o polinmio que interpola estes pontos;

    Exerccio 15 - Calcule as suas razes e o esboce em um grfico;

    Exerccio 16 - Destaque o ponto no qual se tem o valor do polinmio para x = 3.

    10.3. Solucionando Equaes ou Sistemas

    Quando voc tiver um emaranhado de equaes, resultando em um sistema, o MATLAB poder ser

    uma tima soluo. Ao utilizar a funo solve, voc ser capaz de economizar tempo e evitar resolver um

    tedioso sistema braalmente. A declarao desta funo segue abaixo:

    solve

    Definio: Determina o valor do polinmio para uma determinada entrada. Quando a soluo

    armazenada em uma varivel, o retorno dado em uma estrutura de dados.

    Sintaxe:

    solve(eq) Resolve a equao eq=0

    solve(eq,var) Determina as solues de eq=0, em funo da varivel var.

  • Apostila de Matlab 8.1

    Page 63 of 132

    solve(eq1,eq2,...,eqn) Resolve um sistema de equaes definidas.

    g = solve(eq1,eq2,...,eqn,var1,var2,...,varn) Calcula as solues de um sistema de solues em funo

    das variveis pr-definidas.

    Partindo para um mbito mais complexo, quando se trata de equaes diferenciais, a funo

    destinada para este caso a dsolve, definida abaixo:

    dsolve

    Definio: Soluciona simbolicamente uma equao ou sistema de equaes diferenciais ordinrias.

    Sintaxe:

    r = dsolve('eq1,eq2,...', 'cond1,cond2,...','v')

    r = dsolve('eq1','eq2',...,'cond1','cond2',...,'v')

    dsolve('eq1,eq2,...','cond1,cond2,...', 'v')

    Exemplo 4 - Determine a soluo de

    = - ax .

    >> dsolve('Dx = -a*x')

    Exerccio 17 - Eu tinha o triplo da idade que tu tinhas, quando eu tinha a idade que tu tens. Quando tu

    tiveres a minha idade, a diferena de nossas idades ser de duas dcadas. Determine nossas idades

    utilizando a funo solve.

    Exerccio 18 - Sabe que a acelerao de um carro em uma estrada a = -4 x, em que x representa a

    posio no instante t. Determine a posio no instante , sabendo que este carro parte, no instante 0, do

    ponto 1, sendo que o motorista parou instantaneamente enquanto estava em

    . Considere todas as

    unidades no S.I.

  • Apostila de Matlab 8.1

    Page 64 of 132

    11. CLCULO DIFERENCIAL

    O MATLAB disponibiliza funes que facilitam a operao de certos clculos que so difceis para o

    usurio. Por exemplo, a funo diff(), int() e limit() so algumas delas, nas quais diferenciam, integram ou

    calculam o limite de uma funo de acordo com os parmetros oferecidos, respectivamente.

    Vejamos essas e outras funes a seguir:

    11.1. Limites

    limit

    Definio: Determina o limite de uma expresso simblica

    Sintaxe:

    limit(F,x,a) calcula o limite de uma expresso simblica F com x tendendo a a;

    limit(F,a) determina o limite de F com uma varivel simblica tendendo a a;

    limit(F) determina o limite com a = 0 como default;

    limit(F,x,a,'right') calcula o limite com x tendendo a a pela direita;

    limit(F,x,a,'left') calcula o limite com x tendendo a a pela esquerda;

    Exemplo 5 - Faa o seguinte limite pelo MATLAB:

    >> limit('(abs(x^2)-1)/(x^2-1)',x,1,'right') %ans = % 1

    11.2. Diferenciao

    diff

    Definio: Calcula a diferencial de uma funo/matriz dada.

    Sintaxe:

    diff(S) diferencia a expresso simblica S em funo de uma varivel simblica;

    diff(S,'v') diferencia S em torno de uma varivel simblica v;

  • Apostila de Matlab 8.1

    Page 65 of 132

    diff(S,n) diferencia, para um n inteiro positivo, S por n vezes;

    diff(S,'v',n) diferencia em torno de uma varivel v, S por n vezes.

    Exemplo 6 - Para determinar a derivada de 1 ordem de f(x) = , faz-se:

    >> syms x; >> f = sqrt(log(x)+exp(x)); >> diff(f) %ans = %(exp(x) + 1/x)/(2*(exp(x) + log(x))^(1/2)) >> pretty(ans)

    11.3. Integrao

    int

    Definio: Calcula integral de uma funo simblica dada.

    Sintaxe:

    int(S) integrao indefinida a funo S em respeito a uma varivel simblica j definida;

    int(S,a,b) integra de forma definida a funo S de a a b;

    int(S,v,a,b) integra de a a b em funo de uma varivel v;

    Exemplo 7 - Dado a funo f ( x) = , calcule a integral:

    Indefinida

    >> syms x >> y=sqrt(x^2+5); >> f=int(y,x) %f = %(5*asinh((5^(1/2)*x)/5))/2 + (x*(x^2 + 5)^(1/2))/2

    Definida de 2 a 5

    >> g = int(y,x,2,5) %g = %(5*log(5^(1/2) + 6^(1/2)))/2 - (5*log(5))/4 + (5*30^(1/2))/2 - 3

    Caso a visualizao de f no seja satisfatria, usa-se a funo pretty, que transforma a sada de

    acordo com a representao matemtica, conforme ilustra abaixo:

    >> pretty(g)

  • Apostila de Matlab 8.1

    Page 66 of 132

    Como a integral calculada de forma simblica, no calculado o valor numrico da funo g.

    Entretanto, o MATLAB no deixa a desejar neste ponto, como ao utilizar a funo eval. Por exemplo,

    fazendo a instruo abaixo, voc obtm:

    >> eval(g)

    11.4. Integrais definidas pela Regra Trapezoidal

    um mtodo utilizado quando a rea sob uma curva representada por trapzios entre um intervalo

    [a,b] pr-definido, sendo o nmero de divises n. Em representao matemtica, tem-se:

    em que xi representa o ponto no final de cada trapzio, sendo x0 = a e xn = b . No MATLAB a funo que

    possibilita integrao a partir deste mtodo o trapz, definida abaixo:

    trapz

    Definio: Determina a integrao de uma funo a partir da Regra do Trapzio.

    Sintaxe:

    Z = trapz(Y)

    Z = trapz(X,Y)

    11.5. Integrais definidas pela Regra de Simpson

    O mtodo de Simpson baseado, dado trs pontos sobre a curva da funo, na aproximao desses

    pontos em uma parbola. Ento, tomados n subintervalos, onde n par, e cuja extremidade da curva

    delimitada por f (a) e por f (b) , logo, a integral de uma funo denotada por:

    A maioria das calculadoras programadas utiliza esta regra, que mais utilizada em termos

    computacionais. No MATLAB, a funo encarregada para esse fim a quad, mostrada abaixo:

    quad

    Definio: Determina a integrao de uma funo a partir da Regra de Simpson.

    Sintaxe:

  • Apostila de Matlab 8.1

    Page 67 of 132

    q = quad(fun,a,b)

    q = quad(fun,a,b,tool) tool corresponde o erro que a integral retornar, sendo o default de 10-3

    .

    bom destacar que fun deve ser uma funo do tipo arquivo.m. Por exemplo, para calcular a integral

    de y = e-x no intervalo de 0 a 3, faz-se o seguinte:

    Primeiro, se cria o arquivo .m correspondente funo que deseja integrar, ou seja:

    function y=funcao(x) y=exp(-x^2);

    Em seguida, basta utilizar a funo quad, conforme modelo abaixo:

    >> quad('funcao',0,3) %ans = % 0.8862

    11.6. Integrao Dupla

    O MATLAB possui a funo dblquad que determina a integral dupla de uma funo, conforme

    definio abaixo:

    dblquad

    Definio: Determina a integrao dupla de uma funo.

    Sintaxe:

    q = dblquad(fun,xmin,xmax,ymin,ymax)

    q = dblquad(fun,xmin,xmax,ymin,ymax,tol) tol a preciso que deseja calcular, sendo o default 10-6

    .

    11.7. Integrao Tripla

    Tambm possvel calcular a integral tripla de uma funo no MATLAB, utilizando neste caso a

    funo triplequad, cuja definio segue abaixo:

    triplequad

    Definio: Determina a integrao tripla de uma funo.

    Sintaxe:

    triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax)

  • Apostila de Matlab 8.1

    Page 68 of 132

    triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol) tol a preciso que deseja calcular, sendo o

    default 10-6

    .

    11.8. Outras funes

    gradient

    Definio: Determina o gradiente numericamente.

    Sintaxe:

    FX = gradient(F) retorna o coeficiente do gradiente de F em relao a x(default).

    [FX,FY,FZ,...] = gradient(F) retorna a matriz com os valores de x, y, z..., respectivamente.

    divergence

    Definio: Determina o divergente de um campo vetorial.

    Sintaxe:

    div = divergence(X,Y,Z,U,V,W) determina o divergente do campo vetorial 3D U, V e W. X, Y e Z

    definem os limites de U, V e W, respectivamente.

    div = divergence(X,Y,U,V) calcula agora para 2D.

    div = divergence(U,V,W) usa como default para X, Y e Z o valor de meshgrid(1:n,1:m,1:p).

    Exemplo 8 - Um exemplo clssico para o uso de gradiente seria na determinao do Campo Eltrico

    devido ao efeito de uma carga pontual de 18 C. O cdigo segue abaixo.

    >> [x,y,z] = meshgrid(-1:0.3:1);

    >> V = (18e-12)./(4.*pi.*8.85e-12.*sqrt(x.^2+y.^2+z.^2));

    >> [px,py,pz] = gradient(V,0.3,0.3,0.3);

    >> Ex = (-1).*px;

    >> Ey = (-1).*py;

    >> Ez = (-1).*pz;

    >> quiver3(x,y,z,Ex,Ey,Ez)

    >> axis([-1 1 -1 1 -1 1])

    Veja que a funo quiver plota o que representaria o campo eltricodevido carga, Fig. 34.

  • Apostila de Matlab 8.1

    Page 69 of 132

    Figura 34 - Campo eltrico pela funo quiver

  • Apostila de Matlab 8.1

    Page 70 of 132

    12. SRIES NUMRICAS

    12.1. Somatrio

    Uma funo muito utilizada em Sries Numricas a symsum, que encontra o somatrio simblico

    de uma expresso. A sua descrio segue abaixo:

    symsum

    Definio: Determina o somatrio simblico de uma expresso.

    Sintaxe:

    r = symsum(s) encontra o somatrio da funo s em funo de uma varivel simblica pr-definida.

    r = symsum(s,v) fornece o somatrio em funo da varivel v.

    r = symsum(s,a,b) determina o somatrio de s variando a incgnita de a at b.

    r = symsum(s,v,a,b) determina o somatrio de s variando a incgnita v de a at b.

    Exerccio 19 - Determine os seguintes somatrios:

    a.

    b.

    12.2. Srie de Taylor

    A Srie de Taylor definida como sendo:

    Considerando P(x) como sendo o polinmio de Taylor, de ordem n, em torno do ponto x0, ento P(x)

    o nico polinmio de grau no mximo n que aproxima localmente f em volta de x0 de modo que o erro

    E(x) tenda a zero mais rapidamente que (x-x0)n, quando x x0.

    O MATLAB dispe da funo taylor , conforme pode ser visto abaixo:

    taylor

    Definio: Expande em srie de Taylor.

    Sintaxe:

  • Apostila de Matlab 8.1

    Page 71 of 132

    taylor(f) faz a aproximao pelo polinmio de Taylor at a quinta ordem para a funo simblica f.

    taylor(f,n,v) retorna o polinmio de Taylor para a funo simblica f at o grau n-1 para a varivel

    especificada por v.

    taylor(f,n,v,a) retorna a aproximao de Taylor de f em torno do ponto a, que pode ser simblica ou

    um valor numrico.

    Por exemplo, calculando o polinmio de Taylor para a funo

    , tem-se

    >> syms x >> f = 1/(5+4*cos(x)) %f = %1/(5+4*cos(x)) >> T = taylor(f) %T = %1/9+2/81*x^2+5/1458*x^4+49/131220*x^6 >> pretty(T)

    Exerccio 20 - Determine, pelo polinmio de Taylor de ordem 2, o valor aproximado de

  • Apostila de Matlab 8.1

    Page 72 of 132

    13. ANLISE DE SINAIS

    13.1. Transformao de Varivel Independente

    x(t) x(t + )

    || < 1 Expanso

    || > 1 Compresso

    < 0 Reflexo

    0 Deslocamento

    Deslocamento no tempo:

    >> clear, clc, clf >> x = -2:6; >> y = 2*x; >> n0 = input('Digite o valor de deslocamento, n0= '); >> subplot(2,1,1), stem(x,y), grid on, xlim([-20 20]) >> hold on >> xnovo = x+n0; >> subplot(2,1,2), stem(xnovo,y), grid on, xlim([-20 20]) >> hold off

    Figura 35 - Propriedade de deslocamento no tempo.

  • Apostila de Matlab 8.1

    Page 73 of 132

    Reflexo:

    >> clear, clc, clf >> x = -2:8; >> y = x; >> subplot(2,1,1), stem(x,y), grid on, xlim([-20 20]) >> hold on >> xl = -x; >> subplot(2,1,2), stem(xl,y), grid on, xlim([-20 20]) >> hold off

    Figura 36 - Propriedade de reflexo.

    Escalonamento:

    >> clear, clc, clf >> x = -2:6; >> y = 2*x; >> a = input(' Digite o valor de escalonamento, a= ') >> subplot(2,1,1), stem(x,y), grid on, xlim([-20 20]) >> hold on >> xl = x/a; >> subplot(2,1,2), stem(xl,y), grid on, xlim([-20 20]) >> hold off

  • Apostila de Matlab 8.1

    Page 74 of 132

    Figura 37 - Propriedade de escalonamento.

    13.2. Funes Pr-definidas

    Impulso

    [n] = 0, n 0

    1, n 0

    (t) = 0, t 0

    1, t 0

    function [u] = impulso(n,N) for k = 1:length(n) if n(k)~=N u(k) = 0; else u(k) = 1; end end

  • Apostila de Matlab 8.1

    Page 75 of 132

    Command Window:

    >> x = -2:7; >> y = impulso(x,3); >> stem(x,y)

    Figura 38 - Funo impulso.

    Degrau

    u [n] = 0, n < 0

    1, n 0

    u (t) = 0, t < 0

    1, t 0

    function [u] = degrau(n,N) for k = 1:length(n) if n(k)

  • Apostila de Matlab 8.1

    Page 76 of 132

    Command Window:

    >> n = -2:7; >> y = degrau(n,3); >> stem(n,y)

    Exerccio 21 - Determine:

    a. y[n] = u[n+10] - 2u[n+5] + u[n-6]

    >> n = -20:20;

    >> y = degrau(n,-10)-2*degrau(n,-5)+degrau(n,6);

    >> stem(n,y)

    Figura 39 - Grfico do item a.

  • Apostila de Matlab 8.1

    Page 77 of 132

    b. y[n] =

    - u[n-3]

    >> n = -20:20;

    >> y = ((1/2).^(n)).*degrau(n,3);

    >> stem(n,y)

    Figura 40 - Grfico do item b.

    c. y[n] = cos(0,5n) - u[n-4]

    >> n = -20:20;

    >> y = cos(0.5*pi*n).*degrau(n,4);

    >> stem(n,y)

    Figura 41 - Grfico do item c.

  • Apostila de Matlab 8.1

    Page 78 of 132

    d. y[n] = e2sen(n)

    >> n = -20:20;

    >> y = exp(2*(sin(n)));

    >> stem(n,y)

    Figura 42 - Grfico do item d.

    e. y[n] = sen

    >> x = -20:1:20; >> y = sinc(x/2); >> stem(x,y)

    Figura 43 - Grfico do item e.

  • Apostila de Matlab 8.1

    Page 79 of 132

    bom salientar que nos exemplos anteriores foram dados exemplos de programas no qual se obtm

    as funes impulso e degrau. Entretanto, o MATLAB tambm possui funes que possibilitam isso de

    forma mais rpida, que so as funes dirac e a heaviside, conforme veremos a seguir:

    dirac

    Definio: Obtm a funo delta de dirac, ou seja, a funo impulso no intervalo determinado por x.

    Sintaxe:

    dirac(x)

    >> x = -10:10; >> y = dirac(x-5); %Impulso no instante 5 >> stem(x,y)

    Figura 44 - Impulso com a funo dirac.

    heaviside

    Definio: Determina a funo degrau no intervalo determinado por x.

    Sintaxe:

    heaviside(x)

  • Apostila de Matlab 8.1

    Page 80 of 132

    >> x = -10:10;

    >> y = heaviside(x-5); %Degrau no instante 5

    >> stem(x,y)

    Figura 45 - Degrau com a funo heaviside.

    Exemplo 9 - Sabe-se que a funo impulso a derivada da funo degrau. Determina este fato utilizando

    o MATLAB.

    >> syms x >> diff(heaviside(x),x) %ans = %dirac(x)

    Exerccio 22 - Verifique a integral de sen(x). (x-5)

    13.3. Convoluo

    A convoluo uma ferramenta matemtica que expressa a sada de um sistema de tempo, seja este

    discreto ou contnuo, em funo de uma entrada pr-definida e da resposta ao impulso do sistema.

    O MATLAB possui uma funo chamada de conv que realiza a convoluo de sinais de durao

    finita. Por exemplo, sejam dois vetores x e h representando sinais. O comando y = conv(x, h) gera um

    vetor y que denota a convoluo dos sinais x e y.

  • Apostila de Matlab 8.1

    Page 81 of 132

    Veja que o nmero de elementos em y dado pela soma do nmero de elementos em x e y menos

    um, devido ao processo de convoluo. O vetor ny dado pelo espao de tempo tomado pela convoluo

    definido pelo intervalo entre a soma dos primeiros elementos de nx e nh e a soma dos ltimos elementos

    de nx e nh, sendo nx o espao tempo definido para o vetor x e nh o espao de tempo definido para o vetor

    h.

    ny = [(min(nx) + min(nh)):(max(nx) +max(nh))];

    Vejamos a sintaxe de conv abaixo:

    conv

    Definio: Determina a convoluco de dois sinais ou a multiplicao de dois polinmios.

    Sintaxe:

    w = conv(u,v)

    >> h = [1 2 1]; >> x = [2 3 -2]; >> y = conv(x,h)

    %y =

    % 2 7 6 -1 -2

    Exemplo 10 - Determine os coeficientes do polinmio obtido ao multiplicar os polinmios 3x2 + 3x com

    2x + 2 .

    >> a = [3 3 0]; >> b = [2 2]; >> y = conv(a,b); %y = % 6 12 6 0

    Logo, o polinmio obtido seria 6x3 + 12x

    2 + 6x.

    Exemplo 11 - Determine a resposta de um sistema com a entrada x[n] = u[n - 2] - u[n - 7] , sabendo que a

    resposta desse sistema ao impulso h[n] = u[n] - u[n - 10] .

    >> h = ones(1,10); >> x = ones(1,5); >> n = 2:15; >> y = conv(x,h); >> stem(n,y);

  • Apostila de Matlab 8.1

    Page 82 of 132

    Figura 46 - Grfico de convoluo.

    Exerccio 23 - Use o MATLAB para determinar a sada do sistema com entrada x[n] = 2{u[n + 2] - u[n -

    12]} sabendo que a resposta ao impulso desse sistema h[n] = 0,9n {u[n - 2] - u[n - 13]}.

    13.4. Equaes de Diferenas

    As Equaes de Diferenas uma forma de expressarmos um sistema na forma recursiva que permita

    que a sada do sistema fosse computada a partir do sinal de entrada e das sadas passadas.

    Um comando que possvel realizar uma funo similar seria o filter, definida a seguir:

    filter

    Definio: Expressa a descrio em equao de diferenas de um sistema em uma forma recursiva que

    permita que a sada do sistema seja computada a partir do sinal de entrada e das sadas passadas.

    Sintaxe:

    y = filter(b,a,X)

    y = filter(b,a,X,zi)

    Veja acima que apareceu o parmetro zi, que determina a condio inicial de y. Este zi uma matriz

    com as condies iniciais, sendo os valores passados de y.

  • Apostila de Matlab 8.1

    Page 83 of 132

    Exemplo 12 - Um exemplo clssico no uso de filter determinar a seqncia de Fibonacci, definida

    como o nmero atual ser igual a soma dos dois nmeros anteriores. Em linguagem matemtica, tem-se

    y[n] - y[n - 1] - y[n - 2] = 0 em que y a sada do sistema.

    Veja que ele no depende de uma entrada, mas ao usarmos o filter, necessrio usar a entrada apenas

    para definir o nmero de elementos da seqncia no qual se deseja obter, assim como um parmetro

    indispensvel para o uso da funo filter.

    Ser dado como condio inicial a matriz [1 0], correspondente a entrada no desejada y[-1] e y[-2],

    indispensvel para obter os outros valores.

    O cdigo do programa que pode ser implementado no M-file segue abaixo. Neste caso, se deseja

    adquirir 20 valores.

    >> a = [1, -1, -1];

    >> b = [0];

    >> x = ones(1,20);

    >> y = filter(b,a,x,[1 0]);

    Exerccio 24 - Determine, utilizando filter, a seqncia de Fibonacci.

    Quando se trabalha com sistemas de equaes de diferenas, no qual precisa determinar a resposta

    desse sistema ao impulso, o comando impz se torna bastante til. A sua sintaxe segue abaixo:

    impz

    Definio: Determina a resposta ao impulso de um sistema de equaes de diferenas.

    Sintaxe:

    [h,t] = impz(b,a)

    [h,t] = impz(b,a,n)

    O comando [h,t] = impz(b,a,n) avalia n valores da resposta ao impulso de um sistema descrito por

    uma equao de diferenas. Os coeficientes da equao de diferenas esto contidos nos vetores b e a no

    que se refere a filter. O vetor h contm os valores da resposta ao impulso e t contm os ndices de tempo

    correspondentes.

    13.5. FFT (Transformada Rpida de Fourier)

    A Transformada de Fourier leva uma funo no domnio do tempo para o domnio da freqncia, no

    qual podemos analisar as freqncias mais importantes (com maior amplitude) de uma funo. A

    transformada inversa de Fourier faz o processo inverso, passa uma funo do domnio da frequncia para

    o domnio do tempo.

  • Apostila de Matlab 8.1

    Page 84 of 132

    A Transformada de Fourier e sua inversa podem ser calculadas a partir das expresses abaixo,

    respectivamente:

    Onde a freqncia fundamental.

    A FFT (Transformada rpida de Fourier) um algoritmo computacional otimizado que calcula a

    Transformada Discreta de Fourier mais rapidamente. A FFT tambm pode servir de aproximao para a

    Transformada de Tempo Discreto de Fourier, Srie de Fourier e a prpria Transformada de Fourier.

    Uma propriedade da Transformada de Fourier que a transformada da convoluo de duas funes

    equivale multiplicao das duas no domnio da freqncia. Portanto para calcular a convoluo de uma

    funo levamos os dois sinais para o domnio da freqncia, multiplicamos e voltamos para o domnio do

    tempo. Veja a expresso abaixo:

    y(t ) = x(t ) * h(t ) = IFFT[FFT(x(t)).FFT(h(t))]

    Exemplo 13 - Dado o circuito RC da Fig. 47, determine a resposta ao impulso e a corrente no capacitor

    iC (t) quando a entrada x(t) igual a e-t.

    Figura 47 - Circuito eltrico do Exemplo 13

    Resoluo:

    Clculo da resposta ao impulso:

    Lei dos ns

    i = iR + iC

    i = iR + C

    Em t = 0, i = (t) e iR = 0

  • Apostila de Matlab 8.1

    Page 85 of 132

    .(t) =

    V(0) = V(0

    +) =

    0 =

    + C

    Resoluo Eq. Diferencial V(t) =

    .

    i(t) = h(t) = C

    = -

    Para R = 40 k e C = 300 F h(t) = -

    A

    Clculo da convoluo analiticamente:

    iC(t) = y(t) =

    ()h(t-)d =

    -

    d

    =

    .

    d =

    Clculo da convoluo atravs do MATLAB:

    >> n = [0:0.08:81.84]; %amostragem >> x = exp(-n); %definio da entrada >> h = -exp(-n/12)/12; %definio da sada >> fftx = fft(x); %clculo da fft >> ffth = fft(h); >> ffty = fftx.*ffth; %multiplicao >> y = ifft(ffty); %inversa >> plot(n,-abs(y)*0.08) >> title('Convoluo'); >> xlabel('t(s)'); >> ylabel('i(A)');

  • Apostila de Matlab 8.1

    Page 86 of 132

    Figura 48 - Grfico da resposta ao impulso do exemplo 13.

    Exerccio 25 - Calcule a convoluo das formas de onda:

    x(t) = e-5t

    e h(t) = cos(2,5t) t

    13.6. Filtros Digitais

    O MATLAB possui inmeras funes que permitem ao usurio descobrir a funo transferncia de

    diferentes tipos de filtros digitais:

    A funo de transferncia digital definida por H(z) onde forma geral a funo de transferncia H(z)

    a seguinte:

    H(z) =

    H(z) =

    butter

    Definio: Determina os coeficientes de um filtro Butterworth. Esse filtro pode ser passa baixa, passa

    alta, passa banda, rejeita banda.

    Sintaxe:

  • Apostila de Matlab 8.1

    Page 87 of 132

    [B,A] = butter(N, Wn, tipo) Determina os coeficientes da funo transferncia dada a freqncia de

    corte e o tipo de filtro. Caso nada seja posto em tipo, o MATLAB interpreta filtro passa baixa como

    padro.

    freqz

    Definio: Calcula os valores de uma funo complexa H(z)

    Sintaxe:

    freqz(B,A,n) Utiliza 3 argumentos de entrada. O primeiro um vetor contendo os coeficie