Você está na página 1de 34

Ferramentas Matemticas para Anlise de Sinais Discretos verso 1.0.

Prof. Dr. Marcelo de Oliveira Rosa

29 de setembro de 2011

Resumo
Este documento busca auxiliar os alunos de disciplinas que usem os programas Mathworks Matlab e GNU Octave como ferramentas de resoluo de exerccios numricos como Sinais e Sistemas, Processamento Digital de Sinais, Anlise de Sinais Aleatrios e Identicao de Sistemas, entre outros. A inteno apresentar os fundamentos matemticos que orientam as funcionalidades desses softwares em conjunto com vrios exerccios para que o aluno compreenda qual a melhor forma de resolver seus problemas atravs desses softwares. Assume-se de antemo que o aluno no tem qualquer conhecimento dessas ferramentas, mas tem o segundo grau completo, est fazendo graduao e sabe rudimentos de programao convencional. Para este aluno: boa sorte!

Prof. Marcelo de Oliveira Rosa

Sumrio
1 Introduo
1.1 Computao Numrica

Simblica . . . . . . . . . . . . . . . . 1

2 Linha de Comando
2.1 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3
4

3 HELP, I need somebody 4 Representao de Nmeros


4.1 4.2 Escalares 4.1.1 4.2.1 4.2.2 4.2.3 4.3 4.3.1 4.3.2 4.3.3 Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . Acessando elementos . . . . . . . . . . . . . . . . . . . . . Dimenses . . . . . . . . . . . . . . . . . . . . . . . . . . . Reorganizao . . . . . . . . . . . . . . . . . . . . . . . .

5 6
6 8 8 9 10 10 10 11 12 12

Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acessando elementos . . . . . . . . . . . . . . . . . . . . . Dimenses . . . . . . . . . . . . . . . . . . . . . . . . . . . Reorganizao . . . . . . . . . . . . . . . . . . . . . . . .

5 Nmeros especiais 6 Operaes Matemticas


6.1 6.2 6.3 6.4 Aritmtica e lgebra Linear . . . . . . . . . . . . . . . . . . . . . Operaes elemento-a-elemento . . . . . . . . . . . . . . . . . . . Nmeros Complexos Funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13 15
15 18 18 18

7 Textos e Grcos
7.1 7.2 Textos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20
20 21

8 Programas
8.1 8.2 8.3 8.4 8.5 Novos operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . Aplicaes teis Anlise de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24
24 26 26 26 27 27

Razes de polinmios . . . . . . . . . . . . . . . . . . . . . . . . . Operaes com sistemas analgicos . . . . . . . . . . . . . . . . . 8.5.1 Resposta ao impulso . . . . . . . . . . . . . . . . . . . . .

ii

iii

8.5.2 8.5.3

Resposta ao degrau . . . . . . . . . . . . . . . . . . . . . . Resposta em freqncia . . . . . . . . . . . . . . . . . . .

28 28

9 Concluso

29

Captulo 1

Introduo
Preliminarmente pensamos em desenvolver uma apostila genrica para apresentar o programa Mathworks Matlab. Uma rpida busca na internet revelou que vrios professores e pesquisadores acabam desenvolvendo uma apostila para seus cursos. Ou seja, seria reescrever a roda mais uma vez. cial (www.mathworks.com) um grande nmero de documentos referentes a cada funo do programa Matlab. A justicativa para escrever esta apostila apresentar no apenas o Matlab como ferramenta computacional para problemas de matemtica numrica (nosimblica), mas tambm softwares livres como GNU Octave (e outros a medida que este projeto evolua). Assim, este documento contemplar os aspectos matemticos (ligados fundamentalmente algebra linear) das ferramentas, bem como o uso de exerccios para permitir que alunos de graduao em engenharia (e outros interessados, mas fundamentalmente aqueles que jamais usaram tais ferramentas computacionais) possam descrever seus problemas na linguagem dessas ferramentas. A possibilidade de apresentar tais ferramentas em conjunto se deve a similaridade entre suas linguagens matemticas. oportunamente no presente documento. Basicamente elas tm a mesma raiz, que a linguagem do Mathworks Matlab. As diferenas sero apontadas Adicionalmente a prpria fabricante (Mathworks) mantm em seu site o-

1.1 Computao Numrica Simblica


Os softwares voltados para computao matemtica dividem-se em dois grandes grupos: aqueles que realizam matemtica numrica e aqueles que realizam matemtica simblica. Matemtica simblica refere-se a manipulao de smbolos, por meio de expanses e redues, de tal forma a obter uma expresso fechada, matemtica, que represente a soluo desejada. Um exemplo simples disso o processo de integrao de uma funo

g (x) qualquer como: f (x) = g (x)dx = ex sen(x)dx

(1.1)

onde

pode ser um valor ou apenas um smbolo representando um valor

qualquer (como

a R). f (x)
realizado simbolicamente, por regras bem

O processo de clculo de

denidas de substituio (como por exemplo, regra da cadeia aplicada sobre

ex sen(x) no integrando).

Tais regras so obtidas a partir de conhecimento prvio

de operaes matemticas possveis para uma determina situao simblica. Ao nal do clculo simblico, teremos um resultado tambm simblico

f (x) =
Pode-se ento aplicar (ou seja,

ex [ cos(x) + sen(x)] 2 qualquer valor a x para se conhecer

(1.2) a integral de

g ( x)

f (x))

naquele ponto. Note que sempre buscamos uma soluo fechada

para um problema quando usamos tais softwares. Pode-se resolver sistemas de equaes lineares, equaes diferenciais ordinrias, diferenciao, etc. Wolfram Mathematica, Maplesoft Maple e PTC MathCad so exemplos de softwares capacitados para computao simblica; entretanto, eles no sero objeto de estudo neste documento. J os programas voltados computao numrica usam uma srie de algoritmos matemticos ecientes voltadas algebra linear sobre os quais se realizam operaes matemticas. ponto, o valor de Para o caso de uma integrao, no h como obter uma expresso matemtica fechada para

f (x).

Deve-se ento calcular, ponto a

f (x),

realizando-se assim uma integrao numrica atravs da

regra de Simpson, por exemplo. Enquanto a computao simblica fornece uma expresso matemtica de preciso innita, a computao numrica produz uma aproximao do resultado. Tal aproximao controlada a partir de parmetros ligados aos algoritmos de resoluo dos problemas (passo de integrao na Regra de Simpson, erro de aproximao no mtodo de Newton-Raphson, passo de integrao no mtodo de Runge-Kutta, etc). Note que h um grande nmero de algoritmos para soluo nmerica de problemas matemticos distintos. Na computao simblica no h tal diversidade, pois as regras de substituio simblica no so controladas pelo usurio.

Captulo 2

Linha de Comando
As ferramentas utilizadas so baseadas em comandos. Tais comandos so digitados em linhas de comando, que so executadas imediatamente pela ferramenta. Assim, a cada comando digitado, a ferramenta interpreta o que foi escrito e executa alguma ao, gerando um resultado (que pode ser apenas um retorno para que o usurio digite novos comandos. Exemplos de comandos:

 a = 5 a = 5  b = 4 b = 4  teste ??? Undefined function or variable teste. 

frisar:

as ferramentas fazem distino entre maisculas e minsculas sin). O mesmo vlido para variveis (descritas na seqncia).

(ou seja: Sin

Note que a cada comando, a ferramenta emite uma resposta. Para os dois primeiros comandos, a ferramenta indicou que as atribuies foram efetivadas. mando, indicando assim um erro.

a = 5

b = 4

No terceiro comando, a ferramenta no compreendeu o co-

A ferramenta possui um rol de comandos que ela compreende. So comandos internos ou

built-in.

Caso digitemos um comando inexistente, a ferramenta

busca em uma srie de diretrios (congurveis) e o executa imediatamente. Caso ainda no o encontre, a ferramenta ento emite uma mensagem adequada de erro. Note que nas atribuies, a ferramenta emite um indicativo de sua ao. possvel impedir tal impresso. Isto feito colocando-se um

virgula

(;) ao nal do comando, ou seja:

ponto-e-

 a = 7;  b = 9  teste;

??? Undefined function or variable teste. 


Em caso de erro, mesmo com o ponto-e-vrgula, a ferramenta emite uma mensagem condizente com o problema.

2.1 Exerccios
1. Digite os seguintes comandos e pondere os resultados obtidos: (a) (b) (c) (d)

a = 10 sin(a) + 10 * cos(3.1415) [pi/4 exp(1) abs(3+j)] exp(exp([0.1 0.01 0.001]))

Captulo 3

HELP, I need somebody


Talvez o comando mais importante para qualquer usurio das ferramentas (iniciantes e experientes) seja o comando

help.

Digite na linha de comando:

   

help help sin help filter help plot


A sintaxe do comando

help <comando desejado>.

Geralmente estaremos

interessados em uma funo matemtica especca (como as funes de Bessel) ou em conhecer como a ferramenta realiza determinada operao (como a resoluo de sistemas de equaes lineares), e at em saber quais os parmetros necessrios de um procedimento interno (como os parmetros para plotagem grca).

Captulo 4

Representao de Nmeros
importante compreender como as ferramentas representam nmeros, pois a forma que os representamos pode signicar maior ou menor ecincia na resoluo dos problemas. Lembre-se sempre que tais ferramentas possuem algoritmos especializados para clculos de lgebra linear. Assim, naturalmente lidaremos como escalares, vetores e matrizes. Aproveitaremos para falar de variveis. As ferramentas associam nmeros a smbolos (variveis) para facilitar a construo de algoritmos matemticos para soluo de problemas. Tal associao feita pelo smbolo

=.

Do lado esquerdo

indicamos qual o smbolo (seqncia alfanumrica iniciada por uma letra, no conter alguns caracteres especiais em sua constituio, como ponto, vrgula, smbolo de igualdade, operadores matemticos de soma, subtrao, multiplicao e diviso, dentre outros). Mais detalhes sobre a constituio de variveis pode ser encontrada com

help.

4.1 Escalares
Os escalares so nmeros, que podem ser reais ou imaginrios (formalmente

x|x R x C).

Na ferramenta, os nmeros reais so simplesmente nmeros,

com ou sem o ponto decimal. So exemplos de nmeros escalares:

 150  150.0001  0.0001


Alm dos nmeros reais, os nmeros complexos so considerados escalares. Sintaticamente os nmeros complexos so denidos por

i=j=

a bj

ou

a bi,

onde

a, b R. i

Em uma operao matemtica dentro da ferramenta, e

possvel intercambiar

sem problemas.

De preferncia, opte por uma

notao, para evitar confuso. Importante: observe que a parte imaginria colocada So exemplos de escalares complexos

antes

de

(ou

j ).

   

10 + 5j 10 + j5 - 3j 1.5 - 0.001j
Em termos de atribuies, podemos fazer mltiplas atribuies, com dife-

rentes representaes numricas, a um mesmo smbolo/varivel. A ferramenta manter a associao da atribuio mais recente. Diferente de linguagens de programao convencionais (como C ou Pascal), as ferramentas no exigem prvia denio de tipos para variveis. So exemplos de atribuies envolvendo escalares:

   

a a b b

= = = =

5 j 7 0 1.5

+ 0.1j

Para conhecer qual o valor atualmente atribudo uma varivel, basta digitar o nome da varivel sem o ponto-e-vrgula. Caso a ferramenta no conhea essa varivel, trata-la- como um comando externo e tentar execut-lo, como vimos anteriormente.

   

a b c pi
Note que o valor de pi ( ) uma varivel interna mantida pela ferramenta. possvel realizar operaes matemticas sem atribuir o resultado uma

varivel. Quando isso acontece, as ferramentas automaticamente atribuem o resultado uma varivel chamada

ans

(de answer). possvel usar o contedo

dessa varivel em operaes matemticas, lembrando-se apenas que o seu contedo pode ser sobre-escrito a qualquer momento por uma nova operao sem atribuio.

   

7 + 8 3 + ans 10 * sin(3*pi + pi/5) 3 + ans


Note que a medida que criamos variveis, podemos ter interesse em saber

quais so mantidas pela ferramenta em um dado instante. feita pelos operadores varivel.

who

whos.

Tal vericao

O primeiro operador fornece apenas a lista

de variveis, enquanto que o segundo fornece, adicionalmente, dados sobre cada

 a = 7;  b = pi;

   

who c = 30; a = 0.1; whos


Adicionalmente, possvel descartar variveis. A eliminao implica em onde

que a ferramenta no reconhecer mais aquele smbolo como um repositrio de nmeros. Isso feito pelo operador

clear <variavel>,

variavel

indica

qual smbolo ser removido do espao de variveis da ferramenta.

        

a = 7; b = pi; whos clear b whos b = 2*pi; whos clear whos


Sem qualquer parmetros, o operador

clear

elimina

espao de variveis da ferramenta. J o operador

clear all,
,

todas

as variveis do

alm de eliminar

todas as variveis, tambm reinicia denies de variveis internas da ferramenta (isso signica que voc pode redenir o valor de eliminadas); cabe ento uma olhada em por exemplo). Cada ferramenta eliminar mais ou menos informaes (certamente as variveis sero

help clear

para maiores detalhes.

4.1.1

Exerccios

1. Digite os seguintes comandos e pondere os resultados obtidos: (a) (b) (c) (d)

10 10.0 pi 0.0001 + 1000j

2. Efetue as seguintes atribuies variveis. Tente posteriormente: (a) (b) (c)

a = b =

10 7.0j 0.01

largura_casa =

4.2 Vetores
Como falamos anteriormente, as ferramentas contem algoritmos especializados para operaes de lgebra linear. Dessa forma, necessrio representar vetores (e, conseqentemente, matrizes) a partir da linha de comando. Lembrando

apenas que um vetor pode ser do tipo linha ou do tipo coluna. Tal diferenciao pode ser feita no momento de sua construo. O vetor construdo usando-se uma seqncia de escalares (reais ou complexos) separados por espao em branco ou por ponto-e-vrgula, e que esto entre dois colchetes ([

]).

O uso de espao em branco ou ponto-e-vrgula dene se o

vetor ser do tipo linha ou do tipo coluna. So vetores do tipo linha:

 a = [ 10 5 2  b = [ 5 + 12j

3 3

8] 4j

10 - 7j

Note que a ferramenta compreende a diferena entre espaos entre escalares e espaos internos relativos aos escalares complexos. Para facilitar a visualizao, podemos escrever valores escalares complexos entre chaves. So vetores do tipo coluna:

 a = [ 1 ;  b = [ +1;

3; 2 ;4] -1; +j; -j]

Tanto os espaos, quanto os ponto-e-vrgulas, permitem concatenao de vetores, gerando vetores maiores. Com base na orientao dos vetores, podemos estend-los conforme nossas necessidades. Veja os exemplos abaixo:

   

a a b b

= = = =

[1 2 3 4] [a a a a] [1; 2+j] [b; b; b]


Acessando elementos

4.2.1

posio

Podemos acessar um elemento do vetor pela notao

vetor(posio),

onde

um valor inteiro entre 1 e o tamanho do vetor, inclusive (veja como

obter o tamanho de um vetor no Captulo 5). Este um ponto

importante

a respeito de vetores (e matrizes): o ndice do primeiro elemento de um vetor sempre 1. A ferramenta emite mensagem de erro em qualquer tentativa de acesso a um elemento cujo ndice extrapole o intervalo fechado o tamanho do vetor.

[1, N ]

onde

     

a = [1 2 3 4] a = [a a a a] a(1) a(16) a(20) a(0)


O parmetro

posio pode ser um vetor de ndices (desde que seus elementos

[1, N ]).

Assim, podemos ter um vetor de ndices para acessar elementos de

um vetor de interesse. No caso, o retorno ser no mais um escalar mas outro vetor, contendo apenas aqueles elementos de interesse.

10

    

a = [9 8 7 6 5 4 3 2 1] indices = [2 4 9 8] a(indices) indices = [0 1 10 7] a(indices)


Dimenses

4.2.2

As ferramentas possuem dois operadores para determinar as dimenses de um vetor. O operador

size()

retorna um vetor contendo as dimenses do vetor

(um dos valores ser sempre 1). elementos do vetor.

Outro operador (length()) retorna um escalar contendo a quantidade de

Ambos os operadores so aplicados sobre nmeros ou sobre variveis.

     

a = [1 2 3 ones(1, 3) zeros(1, 3)] size(a) length(a) a = [1 j 2+j 3 -j] size(a) length(a)


Reorganizao

4.2.3

possvel reorganizar os elementos dentro de um vetor. Uma das reorganizaes mais comuns a operao de transposio de vetores. Isso feito atravs do operador

',

que aplicado aps o vetor (ou a varivel que o contm).

      

a = [1 2 3 4 5 6] size(a) a' size(a') a = [1+j; 1-j; 1; -1] size(a) a'

4.3 Matrizes
Finalmente, temos as denies de matrizes. Este arranjo bidimensional de valores escalares (reais ou complexos) construdo expandindo o conceito de separao de escalares com espaos e ponto-e-vrgula. Basicamente deniremos um conjunto de linhas separadas por ponto-e-vrgula, e dentro dessas linhas separaremos os escalares com espaos. So matrizes:

 a = [ 1 2 3; 4 5 6; 7 8 9 ]  b = [ j 0; 0 -j]  c = [ 1 2 ; 3 4 5 ; 6 7 8 9 ]

11

Na denio de matrizes, importante que o nmero de escalares entre os ponto-e-vrgula sejam iguais; caso contrrio a ferramenta apresentar indicativo de erro. No nal, percebemos que as ferramentas efetivamente lidam com matrizes de escalares, sendo vetores e escalares variaes de matrizes quanto a sua denio. Podemos construir matrizes a partir de vetores, de modo anlogo expanso de vetores feitas na seo anterior.

   

a a b b

= = = =

[ 1 2 3 ] [a ; a ; a] [ 1 2 3 ] [ b b b ]

Analogamente, pode-se concatenar matrizes para aumento do tamanho das matrizes. Em lgebra linear as matrizes que compem a matriz maior so chamadas de sub-matrizes.

 a = [1 2; 3 4; 5 6]  a = [a a; a a]
importante que exista coerncia entre as sub-matrizes durante a concatenao, pois as ferramentas emitem mensagem de erro em caso de discrepncia entre nmero de linhas e colunas das sub-matrizes.

4.3.1

Acessando elementos

Podemos acessar um elemento da matriz pela notao onde

matriz(linha, coluna), linha um valor inteiro entre 1 e o nmero de linhas da matriz, inclusive (veja como obter o tamanho de uma matriz no Captulo 5) e coluna um valor
Caso usemos

inteiro entre 1 e o nmero de colunas da matriz.

matriz(ndice)

(onde

ndice

um valor inteiro entre 1 e o

nmero total de elementos da matriz, inclusive), a ferramenta considerar que a matriz como um grande vetor, formado pela concatenao de todas as suas colunas, e ento fornecer o elemento desejado.

     

a = [1 2 3; 4 5 6; 7 8 9] a(1) a(10) a(1,1) a(2,2) a(3,5)


O parmetro

ndice pode ser uma matriz de ndices (desde que seus elemen-

tos

[1, N ]).

Assim, podemos ter uma matriz de ndices para acessar elementos

de uma matriz de interesse. No caso, o retorno ser no mais um escalar mas outra matriz, contendo apenas aqueles elementos de interesse.

 a = [1 2 3; 4 5 6; 7 8 9]  indices = [1 2; 3 4]

12

   

a(indices) linhas = [1 1; 3 2] colunas = [1 3; 1 2] a(linhas, colunas)


Dimenses

4.3.2

As ferramentas possuem dois operadores para determinar as dimenses de uma matriz. O operador Outro operador (length()) retorna um escalar contendo a quantidade de

size() retorna um vetor contendo as dimenses da matriz.

elementos da matriz. Ambos os operadores so aplicados sobre nmeros ou sobre variveis.

     

a = [1 2 3; ones(1, 3); zeros(1, 3)] size(a) length(a) a = [1 j; 2+j 3-j] size(a) length(a)
Reorganizao

4.3.3

possvel reorganizar os elementos dentro de uma matriz. Uma das reorganizaes mais comuns a operao de transposio de matrizes. Isso feito atravs do operador  ' , que aplicado aps a matriz (ou a varivel que a contm).

     

a = [1 2 3; 4 5 6] size(a) a' size(a') a = [1+j 2 3-j; 4 j 6] a'


Note que para matrizes contendo escalares complexos, o operador aspas-

simples sobre tal matriz produz a matriz conjugada transposta. Para se obter apenas a matriz transposta (mesmo para matrizes escalares complexas), usamos o operador  .'.

 a = [1+j 2 3-j; 4 j 6]  a'  a.'

Captulo 5

Nmeros especiais
As ferramentas dispem de um conjunto adicional de variveis e operaes para gerar vetores e matrizes de modo eciente. As operaes

zeros()

ones()

criam vetores/matrizes com escalares zeros e uns, respectivamente.

   

a b c d

= = = =

ones(3) ones(1, 5) zeros(7) zeros(5, 1)

vetores seqenciais (reais) atravs do operador  :. Sua sintaxe  a:b:c e que representa o vetor descrito caso vetor.

Alm de vetores apenas com escalares zeros ou uns, possvel construir

[a, a + b, a + 2b, a + 3b, . . . c]. Note que c pode nunca ser a + (n 1)b < c < a + nb, mas serve como limite para gerao do b = 1.

Caso opte-se por  a:c, as ferramentas implicitamente assumem que

    

a b c d e

= = = = =

1:1000 10:10:101 0:0.01:1 10:-1:0 10:1:0

iniciais, de passo e nais na denio do operator  : induzam no-gerao de qualquer elemento. Considerando esses vetores sequenciais, podemos us-los para acessar um bloco contnuo de vetores ou matrizes (conforme visto nas Sees 4.2.1 e 4.3.1).

Note que as ferramentas podem retornar vetores nulos, caso as condies

     

a = [ones(1, 10) zeros(1, 10) ones(1,10)]; a(12:2:24) a(:) a = [1 2 3 4; 5 6 7 8; 9 10 11 12] a(2, :) a(:, 1:2)
13

14

Para o acesso a valores de vetores e matrizes, possvel usar o operador dois-pontos

sozinho

para indicar todos os elementos do vetor, e de uma linha

ou coluna de uma matriz.

Com o emprego do operador  :, podemos fazer atribuies alterando porExige-se apenas que a dimenso do sub-vetor do

es internas de um vetor. da atribuio.

lado esquerdo da atribuio seja igual dimenso do sub-vetor do lado direito

   

a = [ones(1, 10) zeros(1, 10) ones(1,10)] b = 1:30; a(5:2:15) = b(7:3:22); a

Captulo 6

Operaes Matemticas
Existe um grande nmero de operaes matemticas que as ferramentas podem desempenhar. comando Focaremos nas principais, relacionadas com os tipos de nmeOperaes especializadas podem ser consultadas atravs do da ferramenta (veja Captulo 3. ros disponveis.

help

6.1 Aritmtica e lgebra Linear


As principais operaes matemticas realizadas sobre nmeros (escalares, vees elemento-a-elemento, que so  .+,  .-,  .*,  .\ e  .^ (as operaes elemento-a-elemento tm funo distintiva ligada a vetores e matrizes). As ferramentas adotam as regras da aritmtica e lgebra linear para resoluo das operaes envolvendo os diferentes tipos de nmeros (incluindo precedncia de operaes). Quando lidamos com escalares (reais ou complexos), as operaes ponto-aponto agem do mesmo modo que suas equivalentes (sem o ponto), ou seja: tores ou matrizes) so  +,  -,  *,  \ e  ^ . Alm dessas temos as opera-

   

a = 0.1 b = 10 + a * j a + b (a + pi) ^ 2
A soma (ou subtrao) entre escalar e vetor/matriz foge um pouco das re-

gras conhecidas, sendo anloga a multiplicao entre escalar e vetor/matriz: adiciona-se (ou subtrai-se) o escalar a todos os elementos do vetor/matriz.

     

a = [1 2 3] b = [4 5; 6 7; 8 9] pi + a a + pi j + b b + (-j)

15

16

Para vetores e matrizes, as regras de lgebra linear so vlidas. Para

soma

e subtrao

de vetores e matrizes, o nmero de elemento e o nmeros de

linhas e colunas, respectivamente, deve ser igual para dois vetores ou matrizes que sejam somados ou subtrados.

        

a b a a c a a b a

= = + = + = = +

[1 2 3] [2 3 4] b b [2 4 5 6] b - c [1 2; 3 4; 5 6] ones(2, 3); b

A multiplicao entre escalares e vetores/matrizes direta, sem qualquer restrio de tamanho.

     

a = [1 2 3] b = [4; 5; 6] pi * a a * pi j * b b * (-j)
Para a

multiplicao

entre matrizes, temos as seguintes regras (para

vetores, basta considerar que um dos tamanhos da matriz unitrio):

Dado duas matrizes ento

a a a a a

b, b, b, b, b,

respectivamente de tamanhos

am am am am am

b n, b n, b n, a n, b m,

c=a b c=ab c=ab c=a b c=ab

uma matriz de tamanho e

m n;
e

Dado duas matrizes ento

respectivamente de tamanhos

produzir erro nas ferramentas; e respectivamente de tamanhos e

Dado duas matrizes ento

produzir erro nas ferramentas; e respectivamente de tamanhos e

Dado duas matrizes ento

uma matriz de tamanho e

m n;
e

Dado duas matrizes ento

respectivamente de tamanhos

uma matriz de tamanho

a b;

        

a b c a a a b b c

= = = * * * * * *

[1 2 3] [2 3 4] [4; 5; 6] b c b' a c' b

17 Existem dois operadores para diviso:  \ e  / . Devemos entender diviso do ponto de vista da multiplicao entre um nmero e o inverso de outro nmero. O clculo efetivo realizado pela ferramenta :

 \: a\b = inv(a) b  /: a/b = a inv(b)


A diferena reside no modo como os resultados de diviso so efetivados. Por exemplo, no caso de ferramentas calculam

a\b, ao invs de calcular a matriz inversa de a, as ax = b (pois x = b\a) de modo a obter ecincia via O(n2 ))
ao invs de inverso de matriz

algoritmos de resoluo de sistemas de equaes lineares (mtodos diretos ou iterativos, que atingem complexidade (cuja ecincia

O(n )).

      

a = [1 2 3] b = [4; 5; 6] (pi) \ a (pi) / a a / pi j \ b b / (-j)


Para vetores e matrizes, tais regras so as mesmas. Cabe ressaltar uma

peculiaridade: caso o sistema linear que representa a matriz do tipo

de um problema

ax = b x = b\a

for superdimensionada, as ferramentas determinaro pois o resultado ser aquele que

x atravs de algoritmos de mnimos quadrados, minimiza |Ax b|.

      

a = [1 2 3; 4 5 6; 7 8 9] a_falha = [1 2 3; 1 2 3; 7 8 9] b = [1 0 1] a \ b b / a a_falha \ b b / a_falha


As operaes de exponenciao so realizadas normalmente sobre escalares.

Para matrizes, deve-se considerar que a exponenciao um conjunto de produtos envolvendo uma matriz. Logo, as regras de multiplicao de matrizes so aplicadas no processo de exponenciao. Conseqentemente, no h exponenciao para vetores.

    

a = [1 2 3; 4 5 6; 7 8 9] a^2 a * a a^8 a^(-2)

18

6.2 Operaes elemento-a-elemento


As operaes elemento-a-elemento ( .+,  .-,  .*,  .\ e  .^ ) so realizadas sobre qualquer tipo de nmero dentro das ferramentas; entretanto sua operao peculiar quando aplicadas sobre vetores e matrizes. Considerando duas matrizes (pode ser reduzido para vetores)

de

mesma

c = a .op b           a b c d a a b a c d

dimenso, podemos realizar operaes elemento-a-elemento, ou seja, representa

ci,j = ai,j op bi,j .

= [1 2 3; 4 5 6; 7 8 9] = [9 8 7; 6 5 4; 3 2 1] = 1:10 = j * ones(1, 10) .+ b .+ c .+ a ./ b .* d .^ c

6.3 Nmeros Complexos


Para os nmeros complexos, existem operaes que ajudam a determinar a parte real, imaginria, sua magnitude e fase. Isso feito respectivamente pelas operaes

real(), imag(), abs()

angle().

O ngulo obtido em radianos.

    

a = 1 + 2j real(a) imag(a) abs(a) angle(a)


Alm disso, tais operaes podem ser naturalmente aplicadas a vetores e

matrizes, retornando respectivamente vetores e matrizes.

6.4 Funes
Alm de operaes aritmticas e de lgebra linear, as ferramentas possuem um conjunto de funes que podem ser aplicadas aos nmeros. Diferente de linguagens de programao, as funes podem ser aplicadas a vetores e matrizes, e em muitos casos, retornam vetores e matrizes. Citaremos apenas algumas funes matemticas que podem ser usadas. As funes

sin(), cos() e tan() retornam, respectivamente, o valor do seno,

cosseno e tangente de um nmero (considerando esse nmero em radianos). Quando aplicado sobre vetores ou matrizes, as ferramentas aplicam a funo elemento-a-elemento, produzindo vetores ou matrizes, respectivamente.

19

   

a = 0:0.01:2 sin(2*pi*a) (sin(a))^2 + (cos(a))^2 tan(pi*a/2)


De modo similar s funes senoidais, as ferramentas possuem duas funes

teis para lidarmos com sinais peridicos. Ambas possuem perodo igual a sistemas.

So elas

square()

sawtooth(),

respectivamente gerando funes quadradas e triangulares peridicas.

(como as trigonomtricas). Sua utilidade

ligada representao de ondas quadradas e triangulares como excitao de

 a = 0:0.01:2  square(2*pi*a)  sawtooth(2*pi*a)


A exponencial (exp()), logaritmo neperiano (log()) e logaritmo de base 10

(log10()) tambm so aplicados elemento-a-elemento sobre nmeros.

   

a = 0:0.01:1 exp(a) log(a) exp(j*a)


Lembre-se que existem funes que retornam nmeros de tamanho xo (como e

size()

length()).

Captulo 7

Textos e Grcos
Algumas vezes torna-se interessante produzir textos formatados ou grcos para melhor visualizao dos resultados dos clculos realizados nas ferramentas. At agora, os resultados foram apresentados explorando-se diretamente a interface de linha de comandos com o uso ou supresso de  ; ao nal dos comandos.

7.1 Textos
As ferramentas possuem um tipo para armazenar textos (strings , distinto dos nmeros. Esse tipo permite armazenar sequncias de caracteres para posterior impresso, por exemplo. Um texto denido por uma seqncia de caracteres isolada por aspas simples ( ').

        

a = 'texto que defini' size(a) length(a) b = 'outro texto' size(b) length(b) c = [a b] d = [a'; b'] a + b
A grosso modo, um texto um vetor-linha de caracteres. Assim, a concate-

nao de texto segue as regras da concatenao de vetores-linha. A formatao de texto feita pelo operador

sprintf().

Similar linguagem

C, esse operador usa uma string de texto contendo a formatao desejada, seguido de valores ou variveis (de texto ou de nmeros) para montagem do texto formatado; ou seja:

'formato'

sprintf('formato', valor1, valor2, ...). help sprintf

Lembre-se:

um texto, e pode ser substitudo por uma varivel de texto. para maiores detalhes.

Devido ao grande nmero de possibilidades, apenas alguns exemplos sero mostrados a seguir. Sugere-se acessar

 sprintf('valor de pi = %d', pi)  sprintf('seno de %f = %f\n', [0 pi/2 pi], sin([0 pi/2 pi]))
20

21

 formatacao = 'arco-tangente de %f = %f\n';  sprintf(formatacao, 4*pi, atan(4*pi))


Uma vez que o texto tenha sido formatado (pode at ser armazenado em uma varivel), possvel apresentar o texto na linha de comando usando o operador

disp().

A ferramenta no acrescenta espaos ou quebras de linha como quando

se deseja ver uma varivel (sem o ponto-e-vrgula no nal da linha). O objetivo desse operador organizar a sada de resultados.

     

disp(sprintf('valor de pi = %d', pi)); a = [1 2 3; 4 5 6; 7 8 9]; disp(a); formatacao = 'arco-tangente de %f = %f\n'; resultado = sprintf(formatacao, 4*pi, atan(4*pi)); disp(resultado);

7.2 Grcos
As ferramentas dispem de alguns comandos para representao grca dos resultados. Geralmente aplicamos esses comandos em vetores ou matrizes (considerando as matrizes como um conjunto de vetores). A operao bsica para representar gracamente um conjunto de dados (um vetor)

plot().

Uma vez executado, mostrar uma janela contendo uma curva Esta curva otimizada para que toda ela

representativa dos dados (vetor). aparea nessa janela criada.

 tempo = 0:0.01:10;  senoide = sin(2*pi*tempo);  plot(tempo, senoide, 'r');


Algumas das possveis sintaxes para esse comando so:

plot(y) plot(x1, y1, ..., xn, yn) plot(x1, y1, tipo_linha1, ..., xn, yn, tipo_linhan)
O tipo da linha dene qual a cor, o tipo do tracejamento aplicado e quais os smbolos usados para marcao de pontos especcos da curva. Note que podemos traar mltiplas curvas com um mesmo comando. interessante executar

help plot xn     
por e

para avaliar outras possibilidades com esse operador. de

O processo de plotagem das curvas obedece a seqncia de pontos denidas

{x1(i), y1(i)}. Logo, as dimenses yn. Entretanto, no h restries

x1

y1

devem ser iguais, assim como

para tamanhos diferentes entre

x1

xn.

x1 = [0 1 2 3 9 8 7 6]; y1 = [3 2 1 0 3 2 1 0]; x2 = [0 0 10 10]; y2 = [0 10 10 0]; plot(x1, y1, 'r', x2, y2, 'b');

22

Toda vez que executamos um comando atual, podemos usar o operador

plot(), a janela atual de plotagem

sobre-escrita. Para que possamos incluir mais curvas em uma janela de grcos

hold.

Esse operador xa as curvas atualmente

plotadas, permitindo que novas curvas sejam adicionadas na mesma janela.

hold on:

xa janela de grcos atual; libera janela de grcos atual;

hold off: hold:

alterna entre xao e liberao da janela de grcos atual;

        

tempo = 0:0.01:10; senoide = sin(2*pi*tempo); cossenoide = cos(2*pi*tempo); triangular = sawtooth(2*pi*tempo); plot(tempo, senoide, 'r'); hold on; plot(tempo, cossenoide, 'b'); plot(tempo, triangular, 'k'); hold off;
O operador

clf

permite a janela de grcos atual seja limpa.

Note que temos falado em janela tanto, todos os operadores ponibilizam o operador

plot() sobre-escreve apenas uma nica janela.

atual

nos pargrafos anteriores. EntrePara

criar outra janela de grcos, tornando esta a janela atual, as ferramentas dis-

figure.

Toda vez que executado, uma nova janela

(vazia) criada, e todas as operaes grcas so direcionadas a ela.

        

tempo = 0:0.01:10; senoide = sin(2*pi*tempo); cossenoide = cos(2*pi*tempo); triangular = sawtooth(2*pi*tempo); plot(tempo, senoide, 'r'); figure; plot(tempo, cossenoide, 'b'); figure; plot(tempo, triangular, 'k');
Os operadores

uma olhada no

plot() e figure possuem valores de retorno. Recomenda-se help das ferramentas para maiores detalhes sobre o uso do valor
So eles, respectiva-

de retorno desses operadores. Alguns operadores permitem a incluso de textos nas janelas de grcos, como ttulo e textos referentes abscissa e ordenada. mente,

title(), xlabel() e ylabel().

(que pode ser formatado pelo operador

sprintf(),

O parmetros de todos eles um texto se desejado).

   

tempo = 0:0.01:10; senoide = sin(2*pi*tempo); triangular = sawtooth(2*pi*tempo); figure;

23

      

plot(tempo, senoide, 'r'); hold on; plot(tempo, triangular, 'k'); hold off; title('Grficos'); xlabel('tempo (s)'); ylabel('amplitude');
Um detalhe importante: note que os grcos produzidos para funes trigo-

nomtricas (usadas como exemplo) no suave, mas quebradio. Isso porque o passo entre amostras da curva no contnuo, mas sim, discreto. Isso enfatiza a diferena entre ferramentas de computao numrica (caso presente) das ferramentas de computao simblica. No exemplo anterior, um aumento no passo (de

0,01

para

0,001)

melhoraria a resoluo das funes senide e triangular.

subplot().

Outra opo interessante para apresentao de resultados o operador Ele permite que mltiplos grcos sejam colocados em uma mesma

janela, alm de denir qual rea da janela ser atualizada. Tal rea denida pelo parmetro do operador.

                

tempo = 0:0.01:10; senoide = sin(2*pi*tempo); cossenoide = cos(2*pi*tempo); triangular = sawtooth(2*pi*tempo); quadrada = square(2*pi*tempo); figure; subplot(2, 2, 1); plot(tempo, senoide); title('Seno'); xlabel('tempo (s)'); ylabel('amplitude'); subplot(2, 2, 2); plot(tempo, cossenoide); title('Cosseno'); xlabel('tempo (s)'); ylabel('amplitude'); subplot(2, 2, 3); plot(tempo, triangular); title('Triangular'); xlabel('tempo (s)'); ylabel('amplitude'); subplot(2, 2, 4); plot(tempo, quadrada); title('Quadrada'); xlabel('tempo (s)'); ylabel('amplitude');
Uma variao do operador

plot

o operador

stem.

Seu uso est ligado a (ou seja, no

seqncias (ou sinais discretos no tempo). Usa todos) os mesmo parmetros de

plot.

praticamente inteiros.

A idia caracterizar as seqncias como

valores tomados a instantes (varivel independente)

 instante = 0:2:40;  senoide = sin((pi/8)*instante);  stem(instante, senoide);


Basicamente, cada amostra caracterizada por uma linha vertical (partindo do eixo das abscissas) com altura igual ao valor da amostra, e um smbolo grco (geralmente um crculo) no topo dessa linha vertical.

Captulo 8

Programas
possvel armazenar todos os operadores digitados na linha de comandos em arquivos de texto e solicitar que as ferramentas executem essa lista de operadores, como se fossem digitados na linha de comando, um a um. Efetivamente tais arquivos funcionam como lista de comandos (popularmente conhecidos como batch les), cujas linhas so executadas sequencialmente. Esses arquivos geralmente possuem extenso especca e dependente da ferramenta. Devido a popularidade da ferramenta Mathworks Matlab, a extenso geralmente adotada

.m, e deve ser gravado no diretrio corrente usado pela fergrafico.m cd <caminho>).

ramenta, ou em algum dos diretrios referenciados para busca pela ferramenta (para trocar de diretrio corrente, basta usar o operador

instante = 0:2:40; senoide = sin((pi/8)*instante); stem(instante, senoide); grafico (sem


o executar.

Aps salvar o arquivo no diretrio corrente (como

grafico.m), basta digitar

a extenso) que a ferramenta efetuar a busca desse operador e

 grafico
Em caso de erro, a ferramenta apontar o nome do operador defeituoso, bem como a linha onde o problema ocorreu e um explicativo sucinto para facilitar sua correo.

grafico_defeito.m instante = 0:2:40; senoide = sin((pix/8)*instante); stemm(instante, senoide);

8.1 Novos operadores


Apesar de existir uma gama enorme de operadores matemticos, as ferramentas nunca sero completas. A expanso da capacidade das ferramentas feita atravs do operador

function.

Especicamente a denio desse operador : 24

25

function [saida1, ...] = nome_funcao(entrada1, ...)


onde:

saida1
ber;

o nome do primeiro parmetro (ou varivel) de sada que rece-

nome_funcao o nome nome nome_funcao.m; entrada1


funo.

da funo (cujo arquivo onde est gravada tem o

o nome do primeiro parmetro (ou varivel) de entrada da

Naturalmente pode-se ter de zero a

parmetros de entrada, e de zero a

parmetros de sada.

[a, b] = funcao_a a = 3 b = 4
Note que a funo o valor mais atual de

funcao_a.m

funcao_a
a
e

no possui parmetros de entrada, mas possui

2 parmetros de sada. Ao nal da execuo do programa contido na funo,

repassado para o elemento chamador da funo

(outra funo, um programa, ou linha de comando).

 a = 0  [a, b] = funcao_a
Note que no necessrio fazer atribuio prvia dos parmetros de sada (o mesmo vale para os parmetros de entrada) quando se chama uma funo. A ferramenta faz a iniciao (sempre com escalar zero) para as parmetros usadas nas funes.

stat.m function [media, desvio] = stat(x) n = length(x); media = sum(x)/n; desvio = sqrt(sum((x-mean).^2/n));
Como em linguagens de programao convencionais, h o conceito de varivel

local. No caso da funo

stat,

a varivel

local, que signica que ela tem

seu contedo visvel apenas pela funo que a criou. No h como acess-la em outro nvel ou escopo (linha de comando ou programa chamador). A ferramenta produzir erro (se no conhec-la no nvel do chamador, ou acessar o contedo de uma varivel que tenha o mesmo nome.

 [mean, stdev] = stat([12.7 45.4 98.9 26.6 53/1])  [mean] = stat([0 1 2])  [mean, stdev] = stat
Qual a diferena entre um programa e uma funo, do ponto de vista da ferramenta? Uma delas seria o isolamento das variveis locais, reduzindo o nmero de variveis globais mantidas pela ferramenta (basicamente evita que ns, usurios, faamos confuso... a ferramenta no faz confuso, pois suas aes so determinsticas).

26

8.2 Aplicaes teis


Nesta seo, sero apresentados alguns problemas encontrados em disciplinas como Sinais e Sistemas, Controle e Processamento Digital de Sinais, juntamente com uma listagem de operaes usando as ferramentas de computao numrica. O objetivo apresentar tais operaes sem um aprofundamento no problema e/ou na teoria adjacente ao mesmo.

8.3 Anlise de Fourier


Para analisar um sinal, devemos primeiramente classic-lo em peridico ou no. Sinais peridicos so passveis de anlise espectral atravs da Srie de Fourier. J sinais no peridicos podem ser analisados, estritamente falando, atravs da Transformada de Fourier (caso seja considerado funes generalizadas a TF tambm se aplica a sinais peridicos). Existem duas funes para o clculo da SF ou TF para um sinal:

fftshift.

fft

Em ambos os casos, o clculo da SF e TF corresponde diviso do

resultado de

fft

(ou

fftshift)
x[n].

pelo tamanho do trecho sinal anlisado. Tais

operadores calculam a Transformada Rpida de Fourier, que apenas um procedimento eciente de clculo da Transformada Discreta de Fourier (ou DFT). Considere um sinal comprimento Sendo peridico (T0 ) e selecionando um trecho de

N,

sua SF ser:

tempo = 0:0.01:4; trecho_do_sinal = sin(2*pi*tempo); tam_do_trecho = length(trecho_do_sinal); fft_do_sinal = fft(trecho_do_sinal)/tam_do_trecho; help para compreenso das nuanas desses operadofftshift uma verso transladada em freqncia de fft. Enquanto o nvel DC apresentado na amostra zero de fft, o mesmo nvel DC apresentado na amostra N/2 em fftshift. fftshift til pelo seu carter didtico. De modo anlogo, fft e fftshift, que calculam a Transformada Inversa
Cabe uma olhada em O operador res. Discreta de Fourier (IDFT), podem ser empregadas para o clculo da inversa da SF e TF. Devemos nos reportar sempre teoria para compreender corretamente os efeitos produzidos pela incorporao de zeros na representao de sinais noperidicos, os efeitos da periodicidade nos coecientes obtidos tanto para SF quanto para FT usando a DFT.

8.4 Razes de polinmios


Em vrias ocasies ser necessrio calcular as razes de polinmios, que aparecem na determinao dos autovalores associados a uma equao caractersticas de uma EDO, ou na determinao dos plos e zeros de uma funo de transferncia. Para isso podemos usar o operador do polinmio. Para um polinomio de n-sima ordem em

roots, a partir de um vetor de coecientes x, por exemplo, o

27

coeciente associado

xN

o primeiro elemento do vetor, seguido dos demais

coecientes, at o coeciente associado

x0 ,

que o ltimo elemento do vetor.

polinomio = [1 2 3]; raizes = roots(polinomio) polinomio = [2 0 0]; raizes = roots(polinomio) polinomio = [1 5]; raizes = roots(polinomio)
Pode-se obter o polinmio a partir de suas razes usando o operador o polinmio a partir do produto dos fatores

poly.

ferramenta de computao numrica usa os princpios de lgebra para compor

(x rn )

onde

rn

a n-sima raz.

8.5 Operaes com sistemas analgicos


Algumas ferramentas de computao numrica so capazes de representar um sistema a partir de uma estrutura denominada objeto. Para o caso de sistemas, o operador de dois polinmios em

tf constroi um objeto representativo de um sistema a partir da razo s (varivel da transformada de Laplace).

sistema_1 = tf([1], [1 5 6]) sistema_2 = tf([1], [1 2 3])


Podemos ver (sem o ponto-e-vrgula ao nal das declaraes) que

sistema_2 so objetos.

sistema_1

A eles podem ser aplicadas operaes algbricas sobre

razo de polinmios, produzindos outros racionais polinomiais.

sistema_1 + sistema_2 sistema_1 * sistema_2 sistema_1 ^ 2


8.5.1 Resposta ao impulso

A partir de um objeto sistema, possvel determinar sua resposta ao impulso rapidamente, atravs do operador

impulse.

impulse(sistema_1) impulse(sistema_2) [resposta_impulso_1] = impulse(sistema_1); [resposta_impulso_2, tempo_2] = impulse(sistema_2);


Existem parmetros adicionais para que se calcule a resposta ao impulso para instantes de tempo especcos. Note que quando no especicamos uma varivel para receber o resultado dessa operao, a ferramenta geralmente apresenta uma gura (figure) contendo a representao grca de tal resposta ao impulso.

28

8.5.2

Resposta ao degrau

A partir de um objeto sistema, possvel determinar sua resposta ao degrau rapidamente, atravs do operador

step.

O seu uso similar ao operador

impulse.

step(sistema_1) step(sistema_2) [resposta_impulso_1] = step(sistema_1); [resposta_impulso_2, tempo_2] = step(sistema_2);


Existem parmetros adicionais para que se calcule a resposta ao degrau para instantes de tempo especcos. Note que quando no especicamos uma varivel para receber o resultado dessa operao, a ferramenta geralmente apresenta uma gura (figure) contendo a representao grca de tal resposta ao degrau.

8.5.3

Resposta em freqncia

A resposta em freqncia de um sistema (cujos coecientes esto descritos pelo seu objeto) pode ser obtida a partir de uma varredura em freqncia. feito atravs do operador

bode.

Isso

bode(sistema_1) bode(sistema_2) [mag_1, fase_1] = bode(sistema_1); [mag_2, fase_2] = bode(sistema_2); bode(sistema_1, sistema_2);
Quando no especicamos uma varivel para receber o resultado da operao, o operador apresenta a magnitude (em

dB)

e a fase (em

graus).

O ltimo

caso mostra que as respostas em freqncia de vrios sistemas podem ser apresentadas em um nico grco (com parametrizao equivalente ao operador

plot)

No caso de haver varivel para receber o resultado da operao, a magnitude adimensional, exigindo a operao O operador

pzmap

20 log10 () para obter os valores em decibis).


Os

mostra a distribuio de plos e zeros do sistema.

zeros so marcados com   e os plos com  .

pzmap(sistema_1) pzmap(sistema_2) [polos_1, zeros_1] = pzmap(sistema_1); [polos_2, zeros_2] = pzmap(sistema_2); pzmap(sistema_1, sistema_2);
Quando no especicamos uma varivel para receber o resultado da operao, o operador apresenta os plos e zeros no plano s. O ltimo caso mostra os plos e zeros de vrios sistemas podem ser apresentadas em um nico grco (com parametrizao equivalente ao operador escolhidas pela ferramenta).

plot

(em cores distintivas,

Captulo 9

Concluso
Esta apostila teve como objetivo apresentar as ferramentas de computao numrica usadas tanto em ambiente acadmico, como em ambiente de pesquisa e desenvolvimento (seja pblico ou privado). Espera-se que o aluno possa, sozinho ou sob orientao, conseguir construir programas nessas ferramentas para solucionar seus problemas matemticos. Com essa premissa, procurou-se ento assumir que o aluno nunca teve contato com tais ferramentas, mas tm conhecimento de programao bsica. Existe muito trabalho para ampliao desse manual, focando sempre na generalizao das ferramentas de computao numrica para alunos de graduao. Os autores esperam receber crticas e sugestes (quaisquer que sejam elas).

29

ndice Remissivo
stem,
23 operador operador acessando elementos de matrizes, 11 acessando elementos de vetores, 9 atribuies, 7 conjugado transposto, 12 extenso operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador operador

.m,

24

[ ], 9 abs, 18 angle, 18 ans, 7 bode, 28 cd, 24 clear, 8 clf, 22 cos, 18 disp, 21 exp, 19 fft, 26 fftshift, 26 figure, 22 function, 24 help, 5 hold, 22 ifft, 26 ifftshift, 26 imag, 18 impulse, 27 length, 10, 12 log, 19 ones, 13 plot, 21 poly, 27 pzmap, 28 real, 18 roots, 26 sawtooth, 19 sin, 18
30

size, 10, 12 sprintf, 20 square, 19 stem, 23 step, 28 subplot, 23 tan, 18 tf, 27 title, 22 who, 7 whos, 7 xlabel, 22 ylabel, 22 zeros, 13

operador de exponenciao, 17 operador de multiplicao, 16 operador dois-pontos, 13 operador ponto-e-vrgula, 3 operador transposto, 10, 12 operadores aritmticos, 15 operadores de diviso, 17 operadores de soma e subtrao, 15 operadores ponto-a-ponto, 18 strings, 20 variveis, 6