Você está na página 1de 72

Universidade Federal de Santa Maria Centro de Tecnologia Curso de Graduao em Engenharia Eltrica Programa Especial de Treinamento

Introduo ao MATLAB

Guia Prtico da Verso 5.0

Santa Maria, maio de 2003

ndice

1. Introduo ..........................................................................................................................................................1 2. Caractersticas Bsicas.......................................................................................................................................1 2.1 Operaes Simples.......................................................................................................................................1 2.2 Formatao de nmeros ...............................................................................................................................1 2.3 Uso de Variveis..........................................................................................................................................3 2.4 Sobre variveis.............................................................................................................................................4 2.5 Outras funes bsicas .................................................................................................................................4 3. Funes Cientficas ............................................................................................................................................5 3.1 Funes Matemticas Gerais........................................................................................................................5 3.2 Nmeros Complexos....................................................................................................................................6 4. Ajuda On-line ..................................................................................................................................................10 4.1 O comando HELP ......................................................................................................................................10 4.2 O comando LOOKFOR .............................................................................................................................11 5. Operaes de arranjos......................................................................................................................................12 5.1 Arranjos simples ........................................................................................................................................12 5.2 Endereamento de arranjos ........................................................................................................................12 5.3 Construo de arranjos...............................................................................................................................13 5.4 Operaes Arranjo-Escalares.....................................................................................................................14 5.5 Operaes Arranjo-Arranjo .......................................................................................................................14 5.6 Orientao dos Arranjos ............................................................................................................................15 5.7 Outras funes ...........................................................................................................................................16 6. Representaes Grficas Simples: ...................................................................................................................18 6.1 Comandos Plot e Plot3...............................................................................................................................18 6.2 Outros comandos .......................................................................................................................................22 7. Arquivos de comandos.....................................................................................................................................24 8. Texto................................................................................................................................................................25 9. Operaes Relacionais e Lgicas.....................................................................................................................26 9.1 Operadores Relacionais .............................................................................................................................26 9.2 Operadores Lgicos ...................................................................................................................................27 10. lgebra Linear e Matrizes..............................................................................................................................29 10.1 Funes Bsicas.......................................................................................................................................29 10.2 Outras Funes.........................................................................................................................................30 11. Manipulao de Matrizes...............................................................................................................................30 11.1 Outras Funes.........................................................................................................................................31 12. Estruturas de comandos .................................................................................................................................32 13. Funes para arquivos M-File........................................................................................................................34 13.1 Funes Bsicas.......................................................................................................................................34 14. Anlise de Dados ...........................................................................................................................................36 14.1 Funes Bsicas.......................................................................................................................................36 14.2 Outras funes .........................................................................................................................................38 15. Polinmios .....................................................................................................................................................39 15.1 Razes.......................................................................................................................................................39 15.2 Multiplicao ...........................................................................................................................................39 15.3 Adio......................................................................................................................................................40 15.4 Diviso .....................................................................................................................................................40 15.5 Derivada...................................................................................................................................................40 15.6 Grfico da funo.....................................................................................................................................40 16. Ajustamento de curva e Interpolao ...............................................................Erro! Indicador no definido. 16.1 Ajustamento de curvas .............................................................................................................................41 -1-

16.2 Interpolao Unidimensional ...................................................................................................................41 17. Anlise Numrica...........................................................................................................................................44 17.1 Plotagem ..................................................................................................................................................44 17.2 Minimizao e Maximizao ...................................................................................................................44 17.3 Determinao do Zero..............................................................................................................................45 17.4 Integrao ................................................................................................................................................45 17.5 Diferenciao ...........................................................................................................................................46 17.6 Equaes Diferenciais..............................................................................................................................47 18. Referncia a Sinais e Sistemas.......................................................................................................................49 18.1 Funo BODE..........................................................................................................................................49 18.2 Funo NYQUIST ...................................................................................................................................50 18.3 Funo RLOCUS .....................................................................................................................................52 19. Tabelas de Referncias ..................................................................................................................................54 19.1 Comandos Gerais .....................................................................................................................................54 19.2 Operadores e Caracteres Especiais ..........................................................................................................55 19.3 Construo de Linguagem e Depurao...................................................................................................55 19.4 Manipulao de Matrizes.........................................................................................................................56 19.4.1 Matriz Elementar ..............................................................................................................................56 19.4.2 Matrizes Especiais ............................................................................................................................57 19.5 Funes Matemticas...............................................................................................................................57 19.5.1 Funes de Matemtica Elementar ...................................................................................................57 19.5.2 Funes Especializadas da Matemtica ............................................................................................59 19.6 Funes Matriciais - lgebra Numrica Linear .......................................................................................59 19.7 Anlise de Dados e as Funes da Transformada de Fourier...................................................................60 19.8 Funes Polinomiais e Interpolares .........................................................................................................60 19.9 Funo Funo ......................................................................................................................................61 19.10 Funes Matriciais Esparsadas ..............................................................................................................61 19.11 Grficos Bidimensionais ........................................................................................................................62 19.12 Grficos Tridimensionais.......................................................................................................................62 19.13 Funes Grficas....................................................................................................................................63 19.14 Controle de Cores e Funes de Luminosidade .....................................................................................64 19.15 Funes Sonoras ....................................................................................................................................64 19.16 Funes de Texto ...................................................................................................................................65 19.17 Funes de Arquivos I/O de Baixo Nvel ..............................................................................................65 20. Tabela de Referncia a Matemtica Simblica. .............................................................................................66 21. Referncia a Sistemas e Sinais.......................................................................................................................67

-2-

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

1. Introduo
Nesta terceira edio do Curso de Introduo ao MATLAB do Programa Especial de Treinamento do curso de Engenharia Eltrica, foram feitas algumas correes, incluses e mudanas referentes verso 5 do programa. O curso ser, portanto, baseado nesta apostila, mas a exemplo de sua primeira edio, sero acrescentados alguns itens ou comentrios que venham a se tornar oportunos durante as aulas expositivas, de forma que as aulas no estaro presas ao contedo deste manual de referncia. Como exemplo disto, ser dada uma nfase na parte de programao um pouco maior que aquela dada nesta apostila, alm de exemplos de situaes que possam vir a surgir no decorrer do curso. No final desta apostila vocs ainda encontraro uma biblioteca de funes que o MatLab possui.

2. Caractersticas Bsicas
O MATLAB , de maneira geral, um interpretador de comandos que trabalha essencialmente com um nico tipo de objeto: uma matriz retangular numrica podendo ter elementos complexos. Em algumas situaes atribuda uma denominao especial s matrizes |x|, chamadas de escalares, e a matrizes com somente uma linha ou coluna, que so chamadas de vetores. Desta caracterstica veio o seu nome: Laboratrio de Matrizes (MATrix LABoratory).

2.1 Operaes Simples


Operao Adio Subtrao Multiplicao Diviso Potncia

a+b ab ab ab ab

Smbolo + * / ou \ ^

Exemplo 5+3 25-13 3.14*0.82 64/8 = 8\64 7^3

Nas expresses podem-se usar parnteses, a fim de digitar a expresso certa. Exemplo: Expresso MATLAB 3^2-5-6/3*2 3^2-5-6/(3*2) 4*3^2+1 (4*3)^2+1 Resultado 0 3 37 145

6 2 2 6 32 5 3 2 2 43 +1 (4 3) 2 + 1 32 5 2.2 Formatao de nmeros

O resultado de qualquer expresso de atribuio do MATLAB mostrado na tela, tanto se for atribudo a uma varivel especfica, ou varivel ans, se nenhuma varivel fornecida. O formato numrico a ser exibido pode ser controlado usando-se o comando format. Este comando afeta somente a maneira pela qual as matrizes so mostradas, no como so calculadas ou salvas (o MATLAB faz toda a computao com preciso dupla).

-1-

Curso de Introduo ao MATLAB - Guia Prtico Por exemplo: x = [-1 0 1] Sempre resulta em Digite x [enter] x = -1 0 1

Junho/2002

Se todos os elementos de uma matriz so inteiros, a matriz mostrada sem qualquer ponto decimal.

Se pelo menos um dos elementos no for inteiro, h vrias maneiras da sada ser formatada. O formato padro, chamado formato short, mostra cinco dgitos decimais significantes. Os outros formatos mostram mais dgitos significantes ou usam a notao cientfica. Como exemplo, vamos supor x = [4/3 1.2345e-6] Os formatos, e a sada resultante para este vetor, so: format short 1.3333 0.0000 format short e 1.3333E+000 1.2345E-006 format long 1.33333333333333 format long e 1.333333333333333e+000 format hex 3ff5555555555555 format + ++ format rat 4/3 1/810045 3eb4b6231abfd271 1.234500000000000e-006 0.00000123450000

Nos formatos short e long, se o maior elemento de uma matriz for maior que 1000 ou menor que 0.001, um fator de escala comum aplicado a toda a matriz quando esta mostrada. Por exemplo: x = 1.e20*x multiplica x por 1020 e mostra o resultado x = 1.0e+020 * 1.3333 0.0000

O formato + uma maneira compacta de se mostrar matrizes muito grandes. Os smbolos +, - e espao so mostrados para elementos positivos, negativos e nulos, respectivamente. Um ltimo comando, format compact, exclui muitas das quebras de linha que aparecem entre as matrizes, permitindo que mais informao seja impressa na tela. Os formatos mais utilizados esto colocados na tabela a seguir. -2-

Curso de Introduo ao MATLAB - Guia Prtico Comando do MATLAB format long format short e format long e Format hex format bank format + Format rat format short Nmero 35.83333333333334 3.5833e+01 3.583333333333334e+01 4041eaaaaaaaaaab 35.83 + 215/6 35.8333

Junho/2002 Componentes 16 dgitos 5 dgitos + expoente 16 dgitos + expoente hexadecimal 2 dgitos decimais positivo, negativo ou zero aproximao em frao padro

2.3 Uso de Variveis


Podem-se usar variveis, como a, b, verdura, desde que se atribua um valor a elas. Por exemplo: Determine quantas frutas foram compradas, o valor da compra e o valor mdio pago por cada fruta.Dados: 2 mas R$ 0,71 cada, 5 pras R$ 0,37 cada e 6 bananas R$ 0,12 cada. Pode-se resolver usando as variveis indicadas no problema. macas=2 macas = 2 peras=5 peras = 5 bananas=6 bananas = 6 frutas=macas+peras+bananas frutas = 13 custo=macas*0.71+peras*0.37+bananas*0.12 custo = 3.9900 valormedio=custo/frutas valormedio = 0.3069 IMPORTANTE!!! Para saber quais as variveis que esto na memria, utiliza-se o comando who. Ele mostra todas as variveis. E para saber o que est contido em alguma varivel, digite-a na linha de comando, assim: macas macas = 2 Para mudar o valor de uma varivel, digite na linha de comando a varivel e atribua um novo valor a ela, porm as variveis que a utilizaram continuam com seus respectivos valores anteriores. Exemplo: macas=3 macas = 3

-3-

Curso de Introduo ao MATLAB - Guia Prtico frutas frutas = 13

Junho/2002

DICA: As teclas de funo, , , e servem para modificar algum erro de digitao ou para repetir alguns comandos j escritos.

2.4 Sobre variveis


Como o MATLAB segue a linguagem do computador, existem alguns comentrios a fazer: fruta, Fruta, FrUtA e FRUTA so variveis diferentes; jamais os nomes das variveis devero comear com nmeros, e sim com caracteres. Existem algumas variveis especiais, como: Varivel ans pi eps inf NaN iej realmin realmax Valor varivel padro usada para resultados razo entre a circunferncia e o seu dimetro usada para nmeros muito pequenos (psilon) infinito, ou seja, 1 0 no nmero, ou seja,
0 0

i = j = 1
um nmero pequeno real positivo um nmero grande real positivo

2.5 Outras funes bsicas


Como j vimos, o comando who mostra as variveis que esto na memria. Para retir-las, utiliza-se do comando clear. Note que ele incondicional, ou seja, uma vez usado no poder recuperar esses dados. Exemplo: clear macas clear peras bananas clear apaga a varivel macas apaga as variveis pras e bananas apaga todas as variveis da memria

Voc poder incluir comentrios s variveis, usando para isso o sinal (%). Ex.: macas=4 macas = 4 % Nmero de maas

O MATLAB simplesmente ignora a parte escrita depois do sinal (%). Mltiplos comandos podero ser feitos numa linha s, separados por vrgulas (,) ou ponto-e-vrgula (;). Ex.: macas=4 , bananas=6 ; peras=8 macas = 4 peras = 8 O (;) no mostra os resultados da operao, enquanto que (,) os mostra. -Para interromper a execuo de um comando, pressione simultaneamente Ctrl+C. -Para sair do MATLAB digite quit. -4-

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

-Quando a expresso for muito longa, escreva trs pontos (...), d um espao, pressione Enter e continue na prxima linha.

3. Funes Cientficas
Como nas calculadoras cientficas, o MATLAB oferece funes importantes para a Matemtica, Engenharia e outras cincias. O MATLAB tambm trabalha com nmeros complexos.

3.1 Funes Matemticas Gerais


Algumas funes da matemtica esto representadas nesse programa por alguns comandos. Exemplo: x=sqrt(2)/2 x = 0.7071 y=asin(x) y = 0.7854 OBS: Note que 0,7854 radianos correspondem a 45! Veja abaixo: y_deg=y*180/pi y_deg = 45.0000 Esses comandos envolvendo ngulos mostram que o MATLAB trabalha com os radianos, onde

2 = 360 . Outros exemplos:


y=sqrt(3^2+4^2) y = 5 y=rem(23,4) y = 3 x=2.6 , y1=fix(x) % arredonda p/ 0 y2=floor(x) % arredonda p/- y3=ceil(x) % arredonda p/+ y4=round(x) % arredonda p/ inteiro x = 2.6000 y1 = 2 y2 = 2 y3 = 3 y4 = 3 % Clssico exemplo do tringulo retangular 3-4-5;

-5-

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

Veja no Captulo 19, comandos e funes do MATLAB. Na tabela abaixo, esto algumas das mais elementares funes matemticas: Funo do MATLAB abs(x) Aos(x) acosh(x) angle(x) asin(x) Asinh(x) atan(x) atan2(x,y) Atanh(x) ceil(x) conj(x) cos(x) Cosh(x) exp(x) fix(x) Floor(x) Imag(x) log(x) log10(x) real(x) rem(x,y) round(x) sign(x) sin(x) sinh(x) sqrt(x) tan(x) tanh(x) Funo Matemtica valor absoluto ou magnitude de um nmero complexo funo inversa do coseno funo inversa do coseno hiperblico argumento de um nmero complexo funo inversa do seno funo inversa do seno hiperblico funo inversa da tangente funo inversa da tangente do quarto quadrante funo inversa da tangente hiperblica arredondamento para o mais prximo de + conjugado do nmero complexo funo coseno funo coseno hiperblico exponencial: e arredondamento para o mais prximo de 0 arredondamento para o mais prximo de parte imaginria de um nmero complexo logaritmo natural logaritmo decimal parte real de um nmero complexo resto da diviso x/y arredondamento para o mais prximo inteiro retorna o sinal de um nmero. Ex.: sign(1.2)=1, sign(-23.4)=-1e sign(0)=0 funo seno funo seno hiperblico raiz quadrada funo tangente funo tangente hiperblica
x

3.2 Nmeros Complexos


Para
2

ilustrar

os

nmeros

complexos,

consideremos

equao

de

segundo

grau

ax + bx + c = 0 , onde: x1, x2 = b b 2 4ac 2a

Se a = 1, b = 5 e c = 6, a soluo usando MATLAB ser: a=1 ; b=5 ; c=6 ; x1=(-b+sqrt(b^2-4*a*c))/(2*a) x1 = -2 x2=(-b-sqrt(b^2-4*a*c))/(2*a) x2 = -3 a*x1^2+b*x1+c % substituindo x1 em x para verificar o resultado ans = 0

-6-

Curso de Introduo ao MATLAB - Guia Prtico Junho/2002 a*x2^2+b*x2+c % substituindo x2 em x para verificar o resultado ans = 0 As ltimas duas linhas de comando serviram para confirmar o resultado. Agora, imaginemos com a = 1, b =4, c = 13, a soluo ser:

x1 = 2 + 3 1 x2 = 2 3 1
O 1 no um nmero real, portanto o resultado da soluo ser um nmero complexo, com a parte real igual a 2 e a imaginria igual a 3 ou -3. A soluo no MATLAB ser: a=1 ; b=4 ; c=13 ; x1=(-b+sqrt(b^2-4*a*c))/(2*a) x1 = -2.0000 + 3.0000i x2=(-b-sqrt(b^2-4*a*c))/(2*a) x2 = -2.0000 - 3.0000i a*x1^2+b*x1+c % substituindo x1 em x para verificar o resultado ans = 0 a*x2^2+b*x2+c % substituindo x2 em x para verificar o resultado ans = 0 x1 e x2 so nmeros complexos da forma a+bi, sendo a a parte real, b a parte imaginria e

i = 1 . Na engenharia, o j mais usado, sendo esse aceito pelo MATLAB. A seguir, algumas operaes com nmeros complexos:
c1=1-2i c1 = 1.0000 - 2.0000i c2=3*(2-sqrt(-1)*3) c2 = 6.0000 - 9.0000i c3=sqrt(-2) c3 = 0 + 1.4142i c4=6+sin(.5)*i c4 = 6.0000 + 0.4794i c5=6+sin(.5)*j c5 = 6.0000 + 0.4794i

-7-

Curso de Introduo ao MATLAB - Guia Prtico Nos ltimos 2 exemplos, o MATLAB considerou que c6=(c1+c2)/c3 c6 = -7.7782 - 4.49497i

Junho/2002

i = j = 1 . Outras operaes:

1 checagem=i^2 % checagem = -1.0000 + 0.0000i

= 1!

checagem=real(checagem) % mostra a parte real. checagem = -1 H pelo menos duas maneiras convenientes de se entrar matrizes complexas no MATLAB, que esto ilustradas pelas expresses: A = [1 2; 3 4] + i*[5 6; 7 8] e A = [1+5i 2+6i; 3+7i 4+8i] e que iro produzir o mesmo resultado. O nmero i (ou j) pode ser entrado das duas formas que vimos, ou seja, com o smbolo de multiplicao ou sem. No entanto, algumas regras devem ser observadas. Quando no for usado o smbolo *: o nmero deve ser colocado antes da parte complexa, sem espaos (da mesma forma para nmeros reais, um espao colocado antes da potncia como em 1.23 e-4 resulta em um erro). No podemos, ainda, fazer o seguinte: A = [1 2; 3 4] + [5 6; 7 8]i Cuidado com as variveis! Uma funo interna pode ser usada como nome de varivel: caso em que a funo interna original se torna indisponvel para o workspace corrente (ou funo local em um arquivo .m), at que a varivel seja limpa. Se voc usar i e j como variveis, voc no poder multiplicar a parte imaginria pela funo i ou j, mas ainda poder criar nmeros complexos utilizando a forma sem *. No entanto, se for necessria a utilizao da forma com *, podemos facilmente criar uma nova unidade complexa e us-la desta forma: ii = sqrt(-1) z = 3 + 4*ii Agora, nesses exemplos finais, consideremos a forma polar e retangular:

M = M e j = a + bi
onde

M = a 2 + b2 = arctan b a a = M cos b = M sen

( )

O MATLAB faz a converso da forma polar em retangular, ou vice-versa usando as funes REAL, IMAG, ABS e ANGLE:

-8-

Curso de Introduo ao MATLAB - Guia Prtico c1 c1 = 1.000 - 2.0000i mag_c1=abs(c1) mag_c1 = 2.2361 angle_c1=angle(c1) angle_c1 = -1.1071 deg_c1=angle_c1*180/pi deg_c1 = -63.4349 real_c1=real(c1) real_c1 = 1 imag_c1=imag(c1) imag_c1 = -2

Junho/2002

Dica: Note que ABS fornece o valor absoluto num nmero real e a magnitude de um nmero complexo; e ANGLE fornece o ngulo em radianos!

-9-

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

4. Ajuda On-line
Como o MATLAB baseado em comandos, h a possibilidade do esquecimento de algum comando ou de sua funo. Existem algumas possibilidades de consultar a ajuda: o comando help do MATLAB e o comando lookfor. Na verso 5.0 possvel abrir uma janela com os tpicos de help do MATLAB digitando helpwin.

Ainda nesta verso existe um aplicativo que possibilita ao usurio uma maneira interativa de lidar com o programa que o MATLAB Demo Window:

4.1 O comando HELP


O comando help muito simples, basta escrever help <tpico> que mostra, se existir, as funes deste tpico. Ex.: help sqrt SQRT Square root SQRT(X) is the square root of the elements of X. Complex result are produced if X is not positive. See also SQRTM. Nesse exemplo acima a ajuda da funo da raiz quadrada. Agora, help cows cows not found significa que nada existe sobre cows.

- 10 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

Escrevendo o comando help assim, sozinho, aparece uma lista de tpicos de ajuda. Por exemplo: help HELP topics: matlab:general matlab:ops matlab:lang matlab:elmat matlab:speemat matlab:elfun matlab:specfun matlab:matfun matlab:datafun matlab:polyfun matlab:funfun matlab:sparfun matlab:plotxy matlab:plotxyz matlab:graphics matlab:color matlab:strfun matlab:iofun General purpose commands. Operators and special characters. Language constructs and debugging. Elementary matrices and matrix manipulation. Specialized matrices. Elementary math functions. Specialized math functions. Matrix functions - numerical linear algebra. Data analysis and Fourier transform functions. Polynomial and interpolation functions. Function function - nonlinear numerical methods. Sparce matrix functions. Two dimensional graphics. Three dimensional graphics. General purpose graphics functions. Color control and lighting model functions. Character string functions. Low-level file I/O functions.

For more help on directory/topic, type "help topic".

4.2 O comando LOOKFOR


O comando lookfor usado para ajuda sobre temas. Ex.: lookfor complex CONJ IMAG REAL CDF2RDF RSF2CSF CPLXPAIR Complex conjugate. Complex imaginary part. Complex real part. Complex diagonal form to real block diagonal form. Real block form to complex diagonal form Sort numbers into complex conjugate pairs. Importante: Este comando serve apenas para temas, no para comandos.

- 11 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

5. Operaes de arranjos
Muitas operaes matemticas se baseiam em arranjos. Nos prximos tpicos, falaremos sobre essa ferramenta da matemtica no MATLAB.

5.1 Arranjos simples


Para construir um arranjo bem simples, basta escrever os nmeros dentro de colchetes, separados por espaos cada elemento do arranjo. Ex.: x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi] x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8849 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 y=sin(x) y = Columns 1 0 Columns 8 0.8090

through 7 0.3090 0.5874 through 11 0.5878 0.3090

0.8090 0.0000

0.9511

0.9511

Importante!!! Quando o arranjo contiver um nmero complexo, deve escrev-lo sem espaos, pois o MATLAB, como qualquer outra linguagem de computao, interpretar como elementos deferentes dentro do arranjo. Ex: z=[1 -2i 3 4 5+6i] ans = 1 -2i 3 4

5+6i

5.2 Endereamento de arranjos


No MATLAB, cada elemento do arranjo pode ser acessado, atravs da sua ordem. Por exemplo, x(1) o endereo do primeiro elemento, x(2) do segundo, e assim por diante. Ex.: x(3) % Terceiro elemento de X ans = 0.6283 y(5) ans = 0.9511 Para acessar um bloco de elementos, o MATLAB utiliza esta notao: x(1:5) % Do primeiro ao quinto elemento de x ans = 0 0.3142 0.6283 0.9425 1.2566 y(3:-1:1) % Do terceiro ao primeiro elemento ans = 0.5878 0.3090 0 x(2:2:7) % Do segundo, em intervalos de 2, at o stimo elemento ans = 0.3124 0.9425 1.5708

- 12 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

Veja que neste ltimo, o stimo elemento no apareceu, pois no estava no intervalo dado a ele. y([8 2 9 1]) % O oitavo, segundo, nono e primeiro elementos ans = 0.8090 0.3090 0.5878 0

5.3 Construo de arranjos


Arranjos na matemtica so usados tipicamente para progresses aritmticas e geomtricas, como foi o caso do X. Ele tinha 11 valores, mas, o que fazer se precisar de 111 valores? O MATLAB tem uma resposta. Ex: x=(0:0.1:1)*pi x = Columns 1 through 7 0 0.3142 0.6283 Columns 8 through 11 2.1991 2.5133 2.8274 x=linspace(0,pi,11) x = Columns 1 through 7 0 0.3142 0.6283 Columns 8 through 11 2.1991 2.5133 2.8274

0.9425 3.1416

1.2566

1.5708

1.8849

0.9425 3.1416

1.2566

1.5708

1.8849

No primeiro caso, a notao (0:0.1:1) criou um arranjo que comea em 0 e vai at 1 em intervalos de 0,1. No segundo caso, a funo linspace foi usada para criar X. Sua sintaxe : linspace(primeiro_elemento,ultimo_elemento,numero_de_elementos) Existe tambm a funo logspace, semelhante a e esta ltima, porm com expoentes. Ex.: logspace(0,2,11) ans = Columns 1 through 7 1.0000 1.5849 2.5119 3.9811 Columns 8 through 11 25.1189 39.8107 53.0957 100.0000

6.3096

10.0000

15.8489

Ele criou um arranjo que comea em 10 at 10 , contendo 11 valores. Sua sintaxe : logspace(primeiro_expoente,ultimo_expoente,numero_de_expoentes) H outras formas de criar um arranjo. Nos prximos exemplos, citaremos alguns deles: a=1:5,b=1:2:9 a = 1 2 3 4 b = 1 3 5 7 c=[b a] c = 1 3

5 9

d=[a(1:2:5) 1 0 1] d = 1 3 5 1 0

- 13 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

5.4 Operaes Arranjo-Escalares


Pode-se fazer adio, subtrao, multiplicao e diviso por um escalar a todos os elementos de um arranjo. Ex.: a-2 % Subtraiu 2 de cada elemento de a ans = -1 0 1 2 3 2*a-1 % Multiplicou cada elemento de a por 2 e subtraiu 1 ans = 1 3 5 7 9

5.5 Operaes Arranjo-Arranjo


Podemos fazer a adio, subtrao, multiplicao e diviso de arranjos, aplicados elemento-aelemento (Primeiro com o primeiro, Segundo com o segundo...). Ex: a,b a = 1 b = 1 a+b ans = 2

2 3

3 5

4 7

5 9

11

14

ans-b ans = 1 2 2*a-b ans = 1 1

Para a multiplicao e diviso de arranjos, requer a incluso de um ponto. Ex.: a.*b ans = 1 6 15 28 45 a./b ans = 1.0000 0.6667 0.6000 b.\a ans = 1.0000

0.5714

0.5556

0.6667

0.6000

0.5714

0.5556

a*b ??? Error using ==> * Inner matrix dimensions must agree. A diviso destes dois arranjos, feitos sem o ponto, ser considerada uma operao de matrizes. Ex:

a/b ans = 0.5758 - 14 -

Curso de Introduo ao MATLAB - Guia Prtico a\b ans = 0 0 0 0 0.2000 0 0 0 0 0.6000 0 0 0 0 1.0000 0 0 0 0 1.4000 0 0 0 0 1.8000

Junho/2002

Pode-se fazer tambm potncias entre arranjos, arranjos e escalares, mas deve-se usar o ponto. Ser feita elemento-a-elemento. Ex.: a,b a = 1 b = 1

2 3

3 5

4 7

5 9

a.^2 ans = 1 4 2.^a ans = 2 4 b.^a ans = 1

16

25

16

32

125

2401

59049

b.^(a-3) ans = 1.0000 0.3333

1.0000

7.0000

81.0000

5.6 Orientao dos Arranjos


Nos exemplos anteriores, o arranjo era linear, ou seja, ocupava vrias colunas e apenas uma linha. Para mudar essa orientao para arranjo em colunas, ou seja, ocupar vrias linhas e apenas uma coluna, deve-se, em vez de colocar os nmeros com espaos, colocar o ponto-e-vrgula entre os elementos. Ex.: c=[1;2;3;4;5] c = 1 2 3 4 5 Para criar um arranjo em colunas, deve-se primeiro utilizar os procedimentos da criao em linhas, e depois usar o operador transpose ( ' ). Ex.:

a=1:5 a = 1 2 b=a'

- 15 -

Curso de Introduo ao MATLAB - Guia Prtico b = 1 2 3 4 5

Junho/2002

Agora, para os nmeros complexos, o operador transpose faz a transposio com o seu conjugado. Ex.: d=a+i*a d = Columns 1 through 4 1.0000+1.0000i 2.0000+2.0000i Column 5 5.0000+5.0000i e=d' e = 1.0000 2.0000 3.0000 4.0000 5.0000

3.0000+3.0000i

4.0000+4.0000i

1.0000i 2.0000i 3.0000i 4.0000i 5.0000i

Para resolver esta situao, utilizaremos o ponto (.'). Ex: f=d.' f = 1.0000 2.0000 3.0000 4.0000 5.0000

+ + + + +

1.0000i 2.0000i 3.0000i 4.0000i 5.0000i

5.7 Outras funes


Lembra-se do comando who? Ele mostrava as variveis locadas na memria. No caso dos arranjos, o comando whos nos d uma informao adicional. whos Name Size Elements Bytes Density Complex a 1 by 5 5 40 Full No b 5 by 1 5 40 Full No d 1 by 5 5 80 Full Yes e 5 by 1 5 80 Full Yes f 5 by 1 5 80 Full Yes

Esta Tabela ilustra as operaes bsicas de arranjo Operaes de Arranjos

a = [a 1

a2

a n ] , b = [b 1

b2

b n ] e c = {escalar}
- 16 -

Curso de Introduo ao MATLAB - Guia Prtico Adio com escalar Multiplicao com escalar Adio de arranjos Multiplicao de arranjos Diviso de arranjos

Junho/2002

a + c = [a 1 + c a 2 + c a * c = [a 1 * c a 2 * c

Operaes de Arranjos

a n + c] a n * c]

a + b = [a 1 + b 1 a.*b = [a 1 * b 1 a./ b = [a 1 / b 1
a.\ b = [a 1 \ b 1

a 2 + b2 a 2 * b2 a 2 / b2
a2 \ b2

an + bn ] a n * bn ]
an \ bn ]

an / bn ]

a. ^ c = [a 1 ^ c a 2 ^ c
Potncia em arranjos

a n ^ c]

c. ^ a = [c ^ a 1 a. ^ b = [a 1 ^ b 1

c ^ a2 a 2 ^ b2

c ^an ] an ^ bn ]

- 17 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

6. Representaes Grficas Simples:


6.1 Comandos Plot e Plot3
Embora o MATLAB possua uma capacidade grfica grande, ns iremos mostrar as linhas gerais. Consideremos a funo y = sen x , e 0 x 2 . Para isso, primeiramente criaremos 30 pontos entre 0 e

( )

2 :
x=linspace(0,2*pi,30); O seno dos pontos de x: y=sin(x); O comando plot desenha a funo: plot(x,y)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7

Agora desenharemos a funo seno e a funo coseno no mesmo grfico: z=cos(x); plot(x,y,x,z)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7

- 18 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

Vamos agora desenhar a funo seno, e indicar os pontos que definiram a curva usando o smbolo +. plot(x,y,x,y,'+')
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7

Desenhamos agora o grfico plot(y,z)


1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1

cos(x ) sen(x ) , ou seja, cos(x ) = f (sen(x ))

-0.5

0.5

No prximo exemplo ilustraremos a identidade funo usando linhas pontilhadas: plot(x,y,x,2*y.*z,'--') grid xlabel('Varivel Independente X') ylabel('Varivel Dependente') title('2sin(x)cos(x)=sin(2x)') % % % %

2 sen( )cos( ) = sen(2 ) . Desenharemos a

Linhas de grade do grfico Nome do eixo dos X Nome do eixo dos y Ttulo do grfico

- 19 -

Curso de Introduo ao MATLAB - Guia Prtico


V a r i v e l D e p e n d e n t e 2sin(x)cos(x)=sin(2x) 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 Varivel Independente X 6 7

Junho/2002

Analisaremos agora o exemplo de grficos em 3-D: plot3(x,y,z),grid

1 0.5 0 -0.5 -1 1 0.5 0 -0.5 -1 0 2 4 6 8

A seguir, uma tabela com as cores e formas da funo plot: Smbolo y m c g b w k Cores Amarelo margenta cyan verde azul branco preto Smbolo . o x + * : -. -Linha ponto crculo marca-x cruz estrela linha de pontos trao e ponto trao e trao

Com a funo text voc pode inserir no grfico algum texto. Ex.: y=sin(x); z=cos(x); plot(x,y,x,z) grid - 20 -

Curso de Introduo ao MATLAB - Guia Prtico xlabel('Varivel Independente X') ylabel('Varivel Dependente') title('Curvas seno e coseno') text(2.5,0.7,'sin(x)')

Junho/2002

J o comando gtext faz o seu cursor virar em forma de cruz, para que voc coloque o argumento da funo no grfico. Ex: gtext('cos(x)')
V a r i v e l D e p e n d e n t e Curvas seno e coseno 1 0.8 sin(x) 0.6 0.4 cos(x) 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 Varivel Independente X 6 7

O comando axis manipula o grfico, como o eixo de coordenadas e a escala. A tabela abaixo h uma descrio do comando: Comando Axis([xmin xmax ymin ymax]) axis auto axis ('auto') Axis(axis) Descrio Indica o mximo e o mnimo valores usados para os eixos. Se escreve na forma de vetor. Retorna a escala normal, com xmin=min(x), xmax=max(x), etc. Faz com que a escala seja feita nos correntes limites, s que a funo hold ser ligada, e os subsequentes plots usaro o limite dessa primeira. Usa as coordenadas cartesianas, fazendo com que o eixo horizontal sejam da esquerda para a direita, e o eixo vertical seja de baixo para cima. Faz com que o corrente plot seja feito de modo que a figura seja um quadrado. Faz com que as escalas sejam iguais para os eixos. Desliga quando axis for square e/ou equal. Tira os eixos da figura. Tambm os labels, mas deixa o ttulo e os feitos pelos comandos text e gtext Retorna os eixos, juntamente com os labels e o grid.

axis xy axis ('xy') axis axis axis axis axis axis axis axis axis axis square ('square') equal ('equal') normal ('normal') off ('off') on ('on')

Note: Se voc quiser usar, no comando axis, mais de um argumento, usa-se os argumentos separados por vrgulas, dentro dos parnteses. Ex: axis('square','equal')

- 21 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

6.2 Outros comandos


loglog semelhante ao plot, porm seus eixos esto em escalas logartmicas. semilogx semelhante ao plot, porm seu eixo-x usa a escala logartmica, enquanto o eixo-y usa a escala linear. semilogy semelhante ao plot, porm seu eixo-y usa a escala logartmica, enquanto o eixo-x usa a escala linear. Para plotar em coordenadas polares, fazemos o uso do comando polar(t,r,S), onde t o vetor ngulo, r o vetor radiano e S o opcional caracter ou cores. Ex.: t=0:.01:2*pi; r=sin(2*t).*cos(2*t); polar(t,r) title('Polar Plot of sen(2t)cos(2t)')

Usa-se o comando bar e o comando stair para utilizar o grfico atravs de colunas. Ex.: x=-2.9:0.2:2.9; y=exp(-x.*x); bar(x,y) title('Curva feita pela funo BAR')
Curva feita pela funo BAR 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -5 0 5

stairs(x,y) title('Curva feita pela funo STAIR')

- 22 -

Curso de Introduo ao MATLAB - Guia Prtico


Curva feita pela funo STAIR 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -3 -2 -1 0 1 2 3

Junho/2002

- 23 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

7. Arquivos de comandos
Voc pode colocar uma srie de comandos a serem executados no MATLAB criando um arquivo. Este conter a extenso (m). O termo M-file ser usado para arquivos de comandos. Para criar um arquivo, escolha New no menu File e selecione M-file. Abrir uma janela do editor de texto. Depois de salv-lo em seu disco, com o nome de teste.m, por exemplo, o MATLAB s executar os comandos de seu arquivo se voc cham-lo na linha de comando. Ex.: teste O MATLAB procurar no diretrio corrente, emitindo um sinal se no ach-lo. A seguir, alguns comandos que voc necessitar para a manipulao desses arquivos: Comando What Dir Ls type test delete test cd path chdir path Cd Chdir Pwd Descrio Retorna a lista de todos os M-files no diretrio corrente. Lista todos os arquivos do corrente diretrio. Semelhante ao dir Mostra o contedo do arquivo test.m Apaga o arquivo test.m Entra no diretrio definido em path Semelhante ao cd path Mostra o nome do diretrio corrente Semelhante a cd Semelhante a cd

- 24 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

8. Texto
O MATLAB pode trabalhar com texto. Para determinar uma varivel que contenha texto, deve digit-lo entre apstrofes ('). Ex: t='Voc conhece o MATLAB?' Pode tambm pegar trechos das variveis: u=t(6:12) u = conhece Pegar de ordem inversa: u=t(12:-1:6) u = ecehnoc Escrever em diferentes linhas: v=[A um bochincho - certa feita, Eu fui chegando - de curioso.'] v = A um bochincho - certa feita, Eu fui chegando - de curioso. Voc tambm tem acesso aos valores ASCII das letras, atravs da funo abs: s='ABCDEF' s = ABCDEF m=abs(s) m = 65 m=s+0 m = 65

66

67

68

69

70

71

66

67

68

69

70

71

Para voltar aos caracteres normais, usa-se a funo setstr: setstr(m) ans = ABCDEF Vamos somar cinco e depois converter para caracteres: n=m+5 n = 70 71 72 73 74 75 76

setstr(n) ans = FGHIJKL Finalmente, vamos converter em minsculas os caracteres adicionando a diferena de ambos: n=s+'a'-'A' n = 97 98 99 100 101 102 103 setstr(n) ans = abcdef

- 25 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

9. Operaes Relacionais e Lgicas


Como operaes tradicionais na Matemtica, o MATLAB suporta operaes relacionais e lgicas. Seus comandos, operadores e funes retornam valores Verdadeiro/Falso para as questes propostas. Para demonstrar esses valores, o MATLAB utiliza-se da seguinte notao: zero (0) para retorno falso e diferente para retorno verdadeiro. Normalmente, quando a operao puramente lgico, ele retorna o valor 1. Se no, retorna o valor da varivel.

9.1 Operadores Relacionais


Operadores relacionais do MATLAB para a comparao: Operador < <= > >= == ~= Descrio menor que menor ou igual que maior que maior ou igual que igual que diferente que

Para demonstrar as operaes relacionais, vamos utilizar 2 arranjos. Note que elemento-aelemento. Ex: A=1:9,B=9-A A = 1 2 B = 8 7

3 6

4 5

5 4

6 3

7 2

8 1

9 0

tf=A>4 %Em quais posies os valores de A so maiores que 4? tf = 0 0 0 0 1 1 1 1 1 tf=A==B %Em quais as posies os valores de A so iguais as de B? tf = 0 0 0 0 0 0 0 0 0 tf=B-(A>2) % Subtrair A de B apenas os valores maiores que 2. tf = 8 7 5 4 3 2 1 0 -1 B=B+(B==0)*eps B = Columns 1 through 7 8.0000 7.0000 6.0000 Columns 8 through 9 1.0000 0.0000

5.0000

4.0000

3.0000

2.0000

Para B=0, soma-se o valor de eps, aproximadamente 2,2e-16 (ou para funes onde tem um ponto de descontinuidade da curva. Ex.: x=(-3:3)/3 x = -1.0000 -0.6667

2,2 1016 ). Isto importante

-0.3333

0.3333

0.6667

1.0000

sin(x)./x Warning : Divide by zero. ans = 0.8475 0.9276 0.9816

NaN

0.9816

0.9276

0.8475 - 26 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

A funo sin(x)/x indefinida para o ponto x=0, pois sin(0)/0=0/0. O MATLAB retornar NaN (no nmero). Agora usando o eps: x=x+(x==0)*eps; sin(x)./x ans = 0.8475 0.9276

0.9816

1.0000

0.9816

0.9276

0.8475

Agora apareceu o limite correto para x=0.

9.2 Operadores Lgicos


Operador & | ~ Descrio AND OR NOT (e) (ou) (no)

No captulo passado, voc viu um exemplo de operadores relacionais. A=1:9,B=9-A; tf=A>4 %maiores que 4 tf = 0 0 0 0

Agora usando operadores lgicos: tf=~(A>4) % no maiores que 4. tf = 1 1 1 1 0

tf=(A>2)$(A<6) % Maiores que 2 e menores que 6. tf = 0 0 1 1 1 0 0 0 Um exemplo para criar uma funo descontnua:

x=linspace(0,10,100); % criar os pontos. y=sin(x); % aplicar a funo seno. z=(y>=0).*y; % Os valores negativos de y iguais a zero. z=z+0.5*(y<0); % Os valores negativos de y iguais a 1/2. z=(x<=8).*z; % Valores de x acima de 8 iguais a zero. plot(x,z) xlabel('X'),ylabel('Z=f(x)') title('O sinal Descontinuo')

- 27 -

Curso de Introduo ao MATLAB - Guia Prtico


O sinal Descontnuo 1 0.9 0.8 0.7 0.6 0.5 Z= f(x) 0.4 0.3 0.2 0.1 0 0 2 4 X 6 8 10

Junho/2002

O MATLAB tem outras funes relacionais e lgicas, algumas mencionadas no quadro abaixo: Funo xor(x,y) any(x) all(x) isnan(x) isinf(x) finite(x) Descrio Operador exclusivo OR. Retorna 1 se ou x ou y forem diferentes de zero. Retorna zero se x e y forem iguais a zero ou diferentes de zero. Retorna um se qualquer elemento de um vetor x for diferente de zero. Retorna um se algum dos elementos da diagonal da matriz x for diferente de zero. Retorna um se todos os elementos de um vetor x forem no-nulos. Retorna um se todos os elementos da diagonal da matriz x forem diferentes de zero. Retorna um se x contiver NaNs (No-nmeros). Retorna um se x contiver Infs (Infinito). Retorna um se x contiver valores finitos.

A seguir, o quadro de preferncias do MATLAB, com os elementos na ordem de prioridade, ou seja, cresce de importncia de cima para baixo: Tabela de preferncia de Operadores .^ ' .' / \ .* ./ .\ ~ +(unary) -(unary) > < >= <= == ~= | &

^ * + :

- 28 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

10. lgebra Linear e Matrizes


10.1 Funes Bsicas
O Material desta seo assume que voc j tenha algum conhecimento anterior em lgebra linear. Na matemtica, qualquer sistema linear de equaes pode ser transformado numa operao de matrizes. Ex: Joo comprou uma ma, duas bananas, trs pras e pagou R$ 3,66. Maria comprou quatro maas, cinco bananas e seis pras e pagou R$ 8,04. Jos comprou sete mas, oito bananas, nenhuma pra e pagou R$ 3,51. Quanto custa cada fruta? Para resolver o problema, determinaremos para pras. Temos:

x 1 para o preo das maas, x 2 para bananas e x 3

x 1 + 2 x 2 + 3x 3 = 3,66 4 x 1 + 5x 2 + 6x 3 = 8,04 7 x 1 + 8x 2 + 0x 3 = 3,54


Agora, transformada em matrizes, temos:

1 2 3 x 1 3,66 4 5 6 x = 8,04 2 7 8 0 x 3 3,54


A x = B
Para a multiplicao de matrizes, usa-se o operador *. Esto a soluo ser: A=[1 2 3;4 5 6;7 8 0] A = 1 2 3 4 5 6 7 8 0 B=[3.66;8.04;3.51] B = 3.6600 8.0400 3.5400 Para determinar as solues, verificamos se o determinante da matriz A diferente de zero: det(A) ans = 27 Ento a soluo ser x=inv(A)* B x = 0.2500 0.2200 0.9900

x = A1 b , ou seja:

- 29 -

Curso de Introduo ao MATLAB - Guia Prtico A funo inv faz a matriz inversa x=A\B x = 0.2500 0.2200 0.9900
1

(A ), mas tem uma outra forma:

Junho/2002

Quando as equaes so homogneas, isto , iguais a zero, usa-se a notao x=pinv(A)*b. A soluo baseia-se no pseudo-inverso, que calcula as possibilidades de outras solues alm da nula.

10.2 Outras Funes


A.' a transposta da matriz A. A transposta conjugada da matriz A escrita A'. d=eig(A) retorna autovalores associados da matriz quadrtica A. [V,D]=eig(A) retorna autovetores na matriz V e autovalores na diagonal da matriz D. Nota: [a,b] retorna duas variveis a e b da funo. [L,U]=lu(A) retorna a fatorao LU da matriz quadrtica A. [Q,R]=qr(A) retorna a fatorao QR da matriz A. [U,S,V]=svd(A) retorna o valor decomposto singular da matriz A. rank(A) retorna o rank de A. cond(A) retorna o nmero condicional da matriz A. norm(A) retorna a norma da matriz A. 1=normal, 2-normal, F-normal, e -normal so suportados. poly(A) escreve o polinmio caracterstico associado a matriz A.

11. Manipulao de Matrizes


No MATLAB, pode-se fazer a manipulao das matrizes usando as posies de seus elementos. Ex: A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 A(3,3)=0 A = 1 4 7 % Elemento nulo na terceira linha, terceira coluna. 2 5 8 3 6 0

Quando um elemento est fora das dimenses da matriz, cria-se colunas iguais a zero. Ex.: A(2,6)=1 A = 1 2 4 5 7 8

3 6 9

0 0 0

0 0 0

0 1 0

Fazer outra matriz a partir de uma: A=[1 2 3;4 5 6;7 8 9]; B=A(3:-1:1,1:3) % ou B=A(3:-1:1,:) B = 7 8 9 4 5 6 1 2 3

- 30 -

Curso de Introduo ao MATLAB - Guia Prtico Junho/2002 C=[A B(:,[1 3])] % A igual a A + a primeira e terceira coluna de B. C = 1 2 3 7 9 4 5 6 4 6 7 8 9 1 3 B=A(1:2,2:3) B = 2 3 5 6 B=A(:) B = 1 4 7 2 5 8 3 6 9 A(:,2)=[] % remover segunda coluna. A = 1 3 4 6 7 9

11.1 Outras Funes


[l,c]=size(A) retorna o nmero de linhas para l e nmero de colunas para c. flipud(A) inverte a matriz de cima para baixo. fliplr(A) inverte a matriz da direita para a esquerda. rot90(A) rotaciona a matriz A no sentido anti-horrio. diag(v) cria uma matriz diagonal com o vetor v na diagonal dessa matriz. diag(A) extrai a diagonal da matriz A em um vetor. zeros(m,n) cria uma matriz m por n de zeros. ones(m,n) cria uma matriz m por n de ums. rand(m,n) cria uma matriz m por n de nmeros rndomicos de zero at um. eye(m,n) cria uma matriz identidade m por n.

- 31 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

12. Estruturas de comandos


Estruturas de comandos for x = arranjo comandos end Descrio As repeties dos comandos sero feitas desde a primeira coluna do arranjo (matriz ou seqncia) at a ltima. Exemplos data=[3 9 45 6 7 16 -1 5]; for n=data x=n(1)-n(2) end x = -4 x = -7 x = 46 x = 1 As repeties dos num=0;EPS=1; comandos sero while (1+EPS)>1 EPS=EPS/2; feitas enquanto a num=num+1; expresso for end verdadeira ou num no nula. num = 53 EPS=2*EPS EPS = 2.2204e-16 a=10;cost=a*25 cost = 250 if a>5 %20% de desconto cost=(1-20/100)*cost; end

while expressao comandos end

if expressao comandos end

cost cost = 200 if expressao a=10;b=a-1; A estrutura Ifcomandos se expressao verdad. else-end dividida if a>b else a=b; em duas partes. comandos se expressao falso else A primeira parte end a=b+1; ser executada se end a expresso for verdadeira ou a,b no nua. A a = 9 segunda parte se a expresso for b = falsa ou nula. 9 if expressao A estrutura geral a=10;b=a-1;c=a+1; comandos se expressao verdad. if a>b do If-else-end. elseif expressao1 a=b; Executa os comandos se expressao1 verdad. elseif a<c comandos elseif expressao2 a=b+1; associados as comandos se expressao2 verdad. else expresses, se . c=a; elas so . end verdadeiras. . - 32 -

A simples estrutura if-end executa os comandos enquanto a expresso for verdadeira ou no nula.

Curso de Introduo ao MATLAB - Guia Prtico Estruturas de comandos else comandos se expressao falso end Descrio

Junho/2002 Exemplos a,b,c a = 10 b = 9 c = 11 EPS=1; for num=1:1000 EPS=EPS/2; if (1+EPS)<=1 EPS=EPS*2 break end end EPS = 2.2204e-16 num num = 53

break

Termina a execuo das repeties for e while.

- 33 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

13. Funes para arquivos M-File


13.1 Funes Bsicas
Muito da utilidade do MATLAB vem de seu extenso conjunto de funes. Algumas destas funes so intrnsecas, internas, ou ainda chamadas de built-in functions outras so disponveis em bibliotecas de arquivos .m distribudas com o programa (o MATLAB Toolbox), ou compradas em separado para fins especficos (ex Control Toolbox). E algumas funes so adicionadas por usurios individuais, ou grupos de usurios, para aplicaes mais especficas. Uma caracterstica importante do MATLAB que voc pode criar as suas prprias funes, e elas iro funcionar exatamente como as funes internas, mas estaro em arquivos .m, como veremos mais adiante. At agora, ns vimos somente funes com um argumento de entrada e um de sada. Mas as funes podem ser usadas com mltiplos argumentos. Por exemplo: x = sqrt(log(z)) Algumas funes retornam mais de um valor de sada. Estes valores esto entre colchetes, e separados por vrgulas: [V,D] = eig(A) [y,i] = max(x) Neste caso, a primeira funo retorna duas matrizes, V e D, os autovetores e autovalores, respectivamente, da matriz A. O segundo exemplo retorna o valor mximo y e o ndice i deste valor no vetor x. As funes que permitem mltiplos argumentos de sada podem retornar um nmero menor destes argumentos. Por exemplo, a funo max, com um argumento de sada, max(x) retorna somente o valor mximo. Note que os argumentos de entrada de uma funo nunca so modificados. Muitas das funes do MATLAB so , na verdade, arquivos chamados M-files. Voc poder criar seus arquivos utilizando um editor de texto que grave no formato ASCII, com extenso M. Para voc ter uma idia de como fazer um, utilizaremos a funo fliplr, localizado no arquivo fliplr.m: function y = fliplr(x) %FLIPLR Flip matrix in the left/right direction. % FLIPLR(X) returns X with row preserved and columns flipped % in the left/right direction. % % X = 1 2 3 becomes 3 2 1 % 4 5 6 6 5 4 % % See also FLIPUD. % Copyrigth (c) 1984-93 by The MathWorks, Inc.

[m,n] = size(x); y = x(:,n:-1:1); A primeira parte do seu arquivo vai servir para o help. Na segunda parte, como a funo ser executada. Existe uma varivel, chamada nargin, que serve para indicar os parmetros que no so feitos pelos usurios. Confuso? A funo linspace um bom exemplo para o uso do nargin: function y = linspace(d1, d2, n) %LINSPACE Linearly spaced vector. % LINSPACE(x1, x2) generates a row vector of 100 % linearly equally spaced points between x1 and % x2. LINSPACE(x1, x2, N) generates N points - 34 -

Curso de Introduo ao MATLAB - Guia Prtico % between x1 and x2. % % See also LOGSPACE and :. % Copyright (c) 1989 by the MathWorks, Inc.

Junho/2002

if nargin == 2 n = 100; end y = [d1+(0:n-2)*(d2-d1)/(n-1) d2]; Se no existe valor para n, por exemplo, x=linspace(0,pi), linspace executar seus comandos com n igual a 100. Dica: O MATLAB verso 5 possui um editor/debugger que pode ser chamado a partir do interpretador de comandos atravs do comando edit.

- 35 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

14. Anlise de Dados


14.1 Funes Bsicas
Por conveno, a entrada de dados feita atravs de matrizes, orientado a colunas. Por exemplo, vamos verificar a temperatura em trs cidades durante 31 dias. Executando o M-file contm a varivel temps, criado por voc num editor de texto: temps temps = 12 15 12 14 12 11 15 8 19 12 14 11 9 8 15 8 10 12 9 12 12 10 13 9 10 14 12 13 15 13 12

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

18 22 19 23 22 19 15 20 18 18 19 17 23 19 18 20 17 22 19 21 20 17 18 20 22 21 22 18 23 24 22

A varivel temps contm as temperaturas mais altas do dia. Cada coluna representa uma cidade. Para visualizar os dados, vamos desenh-los: d=1:31; % nmero de dias num ms. plot(d,temps) xlabel('Dias do ms'),ylabel('Celcius') title('As altas temperaturas de trs cidades')

- 36 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

A funo mean d a mdia das temperaturas das cidades, nesse caso. Ex: avg_temp=mean(temps) avg_temp = 11.9677 8.2258 19.8710 Note que ela fez por colunas, e no o total. Se voc estiver interessado no total, aplique a funo de novo. Ex: avg_avg=mean(avg_temp) avg_avg = 13.3548 Para saber o mximo valor das temperaturas, usa-se a funo max. Ex: max_temp=max(temps) max_temp = 19 12 24 Para saber a posio dos valores mximos, fcil. Basta acrescentar uma varivel resposta. Ex: [max_temp,x]=max(temps) max_temp = 19 12 24 x = 9 23 30 O mesmo e aplica para os valores mnimos, s que a funo min. Ex.: min_temp=min(temps) min_temp = 8 5 15 [min_temp,n]=min(temps) min_temp = 8 5 15 - 37 -

Curso de Introduo ao MATLAB - Guia Prtico n = 8 3 7 Agora, para saber o desvio padro, usa-se a funo std. Ex: s_dev=std(temps) s_dev = 2.5098 1.7646

Junho/2002

2.2322

A funo diff nos d a variao dia-a-dia das temperaturas. Ex.: daily_change=diff(temps) daily_change = 3 1 4 -3 -4 -3 2 3 4 -2 -2 -1 -1 3 -3 4 0 -4 -7 1 5 11 -3 -2 -7 0 0 2 3 1 -3 -2 -2 -2 -1 6 -1 1 -4 7 0 -1 -7 1 2 2 -2 -3 2 0 5 -3 1 -3 3 0 2 0 0 -1 -2 1 -3 3 3 1 -4 -2 2 1 -4 2 4 1 -1 -2 -2 1 1 2 -4 2 3 5 -2 1 1 -1 1 -2

14.2 Outras funes


Funes Estatsticas corrcoef(x) cov(x) cumprod(x) cumsum(x) diff(x) hist(x) mean(x) median(x) prod(x) rand(x) randn(x) sort(x) std(x) sum(x) Descrio Coeficientes correlatos. Matrix covariante. Produto cumulativo das colunas. Soma acumulativa das colunas. Diferena entre elementos. Grfico de historiogramas. Mdia dos valores das colunas. Mediana dos valores das colunas. produto dos elementos nas colunas. Distribuio uniforme de nmeros randmicos. Distribuio normal de nmeros randmicos. Colocao nas colunas em ordem crescente Desvio padro das colunas. Soma dos elementos de cada coluna.

- 38 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

15. Polinmios
15.1 Razes
Para se saber as razes de um polinmio, isto , achar a soluo quando o polinmio for igual a zero, preciso colocar os coeficientes do polinmio em forma de vetor. Por exemplo, o polinmio x 4 12 x 3 + 25x + 116 , para o MATLAB, assim: p=[1 -12 0 25 116] p = 1 -12 0

25

116
2

Note que o coeficiente zero do termo x foi includo. Sem ele, o MATLAB entenderia como um polinmio de 3 grau, e no de 4 grau, como o nosso caso. Agora, para saber as razes, basta usar a funo roots. Ex.: r=roots(p) r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i Agora, vamos fazer o inverso. Ns temos as razes e queremos saber o polinmio que a gerou. Para isso usamos a funo poly. Ex.: pp=poly(r) pp = 1.0e+002 * Columns 1 through 4 0.0100 Column 5 1.1600 + 0.0000i pp=real(pp) % Suprimir a parte imaginria pp = 1.0000 -12.0000 0.0000 25.0000 116.0000 Como o MATLAB trabalhou com nmeros complexos e mtodos numricos, normal que o resultado da parte imaginria seja fruto do erro desses mtodos. Basta simplificar, suprimindo a parte imaginria, para se ter os coeficientes para a funo real. Mas ATENO, na verso 5, com a preciso aumentada, este problema diminuiu e, no exemplo anterior, no h parte imaginria na reconstruo do polinmio. -0.1200 -0.0000 0.2500

15.2 Multiplicao
Para a multiplicao de polinmios, o MATLAB utiliza a funo conv (Convoluo de dois arranjos). Considere o produto de dois polinmios: a( x) = x 3 + 2 x 2 + 3x + 4 e b( x) = x 3 + 4 x 2 + 9 x + 16 : a=[1 2 3 4]; b=[1 4 9 16]; c=conv(a,b) c= 1 6 20 50 75 84 64 O resultado c( x) = x + 6x polinmios, repete o uso de conv.
6 5

+ 20x 4 + 50x 3 + 75x 2 + 84 x + 64 . Para multiplicar mais de dois

- 39 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

15.3 Adio
Para somar dois ou mais polinmios, pode-se fazer uma simples adio de arranjos, ou seja, a soma de a( x) e b( x) : d=a+b d = 2

12

20

O resultado

d( x) = 2 x 3 + 6x 2 + 12 x + 20 .

15.4 Diviso
No MATLAB, a diviso de polinmios feita atravs da funo deconv. Ex.: [q,r]=deconv(c,b) % c/b q = 1 2 3 4 r = 0 0 0 0

O resultado de b dividir c um polinmio quociente q e resto em r.

15.5 Derivada
Para a derivao de um polinmio, o MATLAB tem a funo polyder. Ex.: g=[1 6 20 48 69 72 44]; % x^6+6x^5+20x^4+48x^3+69x^2+72x+44 h=polyder(g) h = 6 30 80 144 138 72

15.6 Grfico da funo


Para se desenhar a funo, precisa-se, primeiramente criar um arranjo de pontos e escrever a funo em forma de vetor: x=linspace(-1,3);p=[1 4 -7 -10]; A funo polyval retorna os pontos da funo: y=polyval(p,x); plot(x,y),title('y(x)=x^3+4x^2-7x-10'),xlabel('x'),ylabel('y(x)')
y(x)=x^3+4x^2-7x-10 35 30 25 20 15 10 y(x) 5 0 -5 -10 -15 -1 -0.5 0 0.5 1 x 1.5 2 2.5 3

- 40 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

16.Ajustamento de curva e Interpolao


Em numerosas reas, precisa-se do uso de uma equao para se resolver um problema. O que fazer se ns s estivermos com os dados na mo? Nesse caso, o uso do ajustamento e interpolao poder nos facilitar essa resoluo.

16.1 Ajustamento de curvas


No MATLAB, a funo polyfit pode resolver quando voc tem os dados e tem que transformar em polinmios. A ilustrao abaixo nos permite ver o uso dessa funo. Depois vamos plotar para ver se o ajustamento est certo: x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; Para usar o comando polyfit deve-se indicar qual o grau do polinmio para se tentar ajustar. Por exemplo, se n=1, ele tentar ajustar para uma reta. Agora, se for n=2, como o nosso caso, ele indicar um polinmio de grau 2. Ex.: n=2; p=polyfit(x,y,n) p = -9.8108 20.1293

-0.0317

O resultado do nosso ajustamento : verificar se o ajustamento est certo:

9.8108 x 2 + 20.1293 x 0.0317 . Vamos agora

xi=linspace(0,1,100); z=polyval(p,xi); plot(x,y,'o',x,y,xi,z,':') xlabel('x'),ylabel('y'),title('Ajustagem para uma curva quadrtica')

16.2 Interpolao Unidimensional


Para ilustrar uma interpolao unidimensional, Vamos considerar esse exemplo: Fazendo parte de um projeto cientfico, Lisa coletou as informaes sobre as - 41 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

temperaturas durante um dia, num perodo de doze horas. Como saber a temperatura numa hora qualquer? Vamos plotar esses dados: horas=1:12; temps=[5 8 9 15 25 29 31 30 22 25 27 24]; plot(horas,temps,horas,temps,'+') title('Temperaturas') xlabel('Hora'),ylabel('Graus celcius')
Temperaturas 35 G r a u s C e l c i u s 30

25

20 15

10 5 0

6 Hora

10

12

Para estimar a temperatura numa determinada hora, usamos a funo interp1. Ex: t=interp1(horas,temps,9.3) % Estimar a hora 9,3 t = 22.9000 t=interp1(horas,temps,4.7) % Estimar a hora 4,7 t = 22 t=interp1(horas,temps,[3.2 6.5 7.1 11.7]) t = 10.2000 30.0000 30.9000 24.9000 Para se ter uma preciso ainda maior, deve-se usar o argumento spline. Ex: t=interp1(horas,temps,9.3,'spline') t = 21.8577 t=interp1(horas,temps,4.7,'spline') t = 22.3143 t=interp1(horas,temps,[3.2 6.5 7.1 11.7],'spline') t = 9.6734 30.0427 31.1755 - 42 -

Curso de Introduo ao MATLAB - Guia Prtico 25.3820

Junho/2002

A Interpolao tipo spline diferente da linear, pois emprega o conceito diferencial, da os resultados serem deferentes. O tipo spline mais indicado quando se quer utilizar para grficos. Ex: h=1:0.1:12; t=interp1(horas,temps,h,'spline'); plot(horas,temps,'--',horas,temps,'+',h,t) title('Temperaturas') xlabel('Hora'),ylabel('Graus Celcius')
Temperaturas 35 G r a u s C e l c i u s

30

25 20 15

10 5

6 Hora

10

12

- 43 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

17. Anlise Numrica


17.1 Plotagem
Para voc plotar uma funo, pode-se usar a funo, escrita na forma de texto, e depois utilizar a funo fplot. A ilustrao abaixo vai indicar como se faz isso: f='2*exp(-x).*sin(x)'; fplot(f,[0 8]) % Funo f no intervalo de 0 a 8 title(f),xlabel('x')
2*exp(-x).*sin(x) 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -0.1 0 1 2 3 4 x 5 6 7 8

17.2 Minimizao e Maximizao


Para saber um pouco mais sobre isso, vamos utilizar a funo passada. Note que o valor mximo est perto de x m x = 0,7 e o valor mnimo est perto de x min = 4 . Analiticamente, esses pontos esto em x m x = 4 .785 e x min = 5 4 3.93 . Escrevendo um arquivo M-file num editor de texto conveniente, temos: % ex_fmin.m fn='2*exp(-x)*sin(x)'; xmin=fmin(fn,2,5) emin=5*pi/4-xmin x=xmin; ymin=eval(fn) fx='-2*exp(-x)*sin(x)'; xmax=fmin(fx,0,3) emax=pi/4-xmax x=xmax; ymax=eval(fn) % % % % % % % % % % Funo por min No intervalo de 2 a 5 Erro Definir x para avaliar fn avaliar xmin Funo por max : note o sinal No intervalo de 0 a 3 Erro define x para avaliar fn avaliar xmax

Executando este M-file, teremos: ex_fmin xmin = 3.9270 emin = 1.4523e-06 ymin = -0.0279 - 44 -

Curso de Introduo ao MATLAB - Guia Prtico xmax = 0.7854 emax = -1.3781e-05 ymax = 0.6448 Percebe-se, pelo grfico, que esses valores condizem com a realidade.

Junho/2002

17.3 Determinao do Zero


Determinaremos o zero da funo grfico abaixo, deve estarem torno de x=2.6
100

y=

(x 3)

+ 0.01

(x 9)2 + 0.04

6 que, pelo

80

60

40

20

-20 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3

Para o MATLAB determinar o zero dessa funo, escolhemos a funo do MATLAB, chamada fzero. A ilustrao abaixo descreve o uso dessa funo: xzero=fzero(f,2.6) % Ver o zero perto de 2.6 xzero = 2.6033

17.4 Integrao
Determinaremos a rea da funo

y=

(x 3)

+ 0.01

(x 9)2 + 0.04

6 no intervalo e -

1 a 2. Existem duas formas de se fazer isso: A aproximao trapezoidal, representado pela funo trapz, em quadrados, representados pelas funes quad e quad8. quad8 mais rigoroso do que o quad. Ex.: x=-1:.17:2; y=1./((x-3).^2+.01)+1./((x-9).^2+.04)-6; area=trapz(x,y) area = 25.9174 x=-1:.07:2; y=1./((x-3).^2+.01)+1./((x-9).^2+.04)-6; area=trapz(x,y) area = 26.6243 Naturalmente que seriam resultados diferentes. No primeiro caso os intervalos eram maiores que no segundo, portanto mais sujeito a erros.

- 45 -

Curso de Introduo ao MATLAB - Guia Prtico area=quad('y',-1,2) % rea entre -1 e 2 area = 26.3450 area=quad8('y',-1,2) area = 26.3450

Junho/2002

17.5 Diferenciao
Vamos utilizar o exemplo da curva de ajustamento para a utilizao do ajustamento de curva. p x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; n=2; p=polyfit(x,y,n) = -9.8108 20.1293 -0.0317 xi=linspace(0,1,100); z=polyval(p,xi); plot(x,y,'o',x,y,xi,z,':') xlabel('x'),ylabel('y'),title('Ajustagem para uma curva quadrtica')
Ajustagem para uma curva quadrtica 12 10 8 6 y 4 2 0 -2 0

0.2

0.4 x

0.6

0.8

Para ns ficarmos sabendo da equao da derivada, utiliza-se a funo polyder. Ex.: pd=polyder(p) pd = -19.6217 20.1293 A derivada de

f (x ) = 9,8108 x 2 + 20,1293 x 0,0317

. Nosso prximo passo plotar o grfico: z=polyval(pd,xi); plot(xi,z) xlabel('X'),ylabel('dy/dx') title('Derivada do Ajustamento da curva polinomial')

- 46 -

Curso de Introduo ao MATLAB - Guia Prtico


Deriv ada do Ajustamento da curv a poly nomial 25

Junho/2002

20

15 dy /dx 10

0 0

0.2

0.4 X

0.6

0.8

Agora, se voc quiser saber a derivada ponto a ponto, usa-se um artifcio com a funo diff. Ex.: dy=diff(y)./diff(x); xd=x(1:length(x)-1); plot(xd,dy) title('Aproximao da derivada usando a funo DIFF') ylabel('dy/dx'),xlabel('X')

17.6 Equaes Diferenciais


Para resolver uma equao diferencial, vamos nos utilizar do seguinte exemplo:

Fazendo a resoluo diferencial, dividindo-a em duas variveis:

portanto,

- 47 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

Para resolver esse sistema, as funes ode23 e ode45 so usadas. Voc ter que escrever a funo nesta M-file: function yprime = vdpol(t,y); %Vdpol(t,y) returns the state derivatives of the %Van der Pol equation: % % x''-mu*(1-x^2)*x'+x = 0 (' = d/dx, '' = d^2/dx^2) % % let y(1) = x and y(2) = x' % % then y(1)' = y(20 % y(2)' = mu*(1-y(1)^2)*y(2) -y(1) mu=2; % choose 0< mu < 10 yprime=[y(2) mu*(1 - y(1)^2)*y(2)-y(1)]; % yprime is a column Para o sistema que rege a equao diferencial, a soluo : [t,y]=ode23('vdpol',0,30,[1;0]); y1=y(:,1); % Primeira coluna y(1) versus pontos de tempo de t y2=y(:,2); % Segunda coluna y(2) plot(t,y1,t,y2,'--') xlabel('Tempo, segundos'),ylabel('Y(1) e Y(2)') title('Soluo Van der Pol para mu=2')
Soluo Van der Pol para mu=2 4 3 2 1 Y(1) e 0 Y(2) -1 -2 -3 -4 0 5 10 15 20 Tempo, segundos 25 30

A sintaxe do ode23 e ode45 a mesma. Ex.: [t,x]=ode23('xprime',t0,tf,x0) onde xprime a funo, t0 tempo inicial, tf tempo final e x0 condio inicial.

- 48 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

18. Referncia a Sinais e Sistemas


18.1 Funo BODE
Objetivo Comandos Plotar a resposta em freqncia bode. [mag,phase,w]=bode(a,b,c,d) [mag,phase,w]=bode(a,b,c,d,iu) [mag,phase,w]=bode(a,b,c,d,iu,w) [mag,phase,w]=bode(num,den) [mag,phase,w]=bode(num,den,w) O bode retira a resposta em freqncia, magnitude e fase, de um sistema de tempo contnuo LTI. Bode plots so usados para anlise das propriedades do sistema, incluindo ganho marginal, fase marginal, ganho D.C, largura de faixa de banda, rejeio a perturbao e estabilidade. Se no houver os argumentos de sada ([mag,phase,w]), ele desenha os resultados. Bode(a,b,c,d) produz contnuo Estado-Espao: a srie de bode plots, uma para cada entrada do sistema

Descrio

= Ax + Bu x y = Cx + Du

A srie de freqncias automaticamente determinada. Bode(a,b,c,d,iu) produz bode plots para a entrada simples iu para todas as sadas do sistema para a srie de freqncias determinadas automaticamente. O escalar iu indexado as entradas de um sistema e especificada qual entrada ser usada na resposta Bode. Bode(num,den) desenha o bode plots de uma funo de transferncia

G (s) = num(s) den(s) onde num e den contm os coeficientes dos polinmios das
potncias descendentes de s. Bode(a,b,c,d,iu,w) ou bode(num,den,w) usa um suprimento de freqncias no vetor w. O vetor w especifica as freqncias em radianos/sec em que a resposta bode ser calculada. A funo logspace cria vetores gerais de freqncias para dados espaados logaritmicamente iguais em freqncias. Se houver argumentos de sada: [mag,phase,w]=bode(a,b,c,d,iu) [mag,phase,w]=bode(a,b,c,d,iu,w) [mag,phase,w]=bode(num,den) [mag,phase,w]=bode(num,den,w) retorna as respostas freqenciais de um sistema nas matrizes mag, phase e w. No ser desenhado na tela. As matrizes mag e phase contm as respostas de magnitude e fase de um sistema com valores freqncias w. mag e phase contm nas colunas as sadas para cada elemento no w:

G ( s) = C( sI A ) B + D
1

mag( ) = G ( j ) phase( ) = G ( j )
A fase retorna em graus. A magnitude pode ser convertida em decibels por magdb = 20 * log 10( mag) . Plote as respostas (magnitude e fase)da funo de transferncia cuja expresso : - 49 -

Exemplo

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

G (s) =
num=[1 1];den=[1 1 2]; bode(num,den) title('Bode plot')
10 G a i n dB P h a s e 0 -10 -20 -1 10 0 -30 -60 -90

s+1 s +s+2
2

Bode plot

10

10

Frequency (rad/sec)

d -120 e -150 -1 10 g

100 Frequency (rad/sec)

101

Procure Referncias

logspace, dbode, nyquist [1] Laub, A. J., Efficient Multivariable Frequency Responce Computations, IEEE Transactions on Automatic Control, Vol. AC-26, No. 2, April 1981, pp. 407-408.

18.2 Funo NYQUIST


Objetivo Comandos Plotar a resposta em freqncias Nyquist [re,im,w]=nyquist(a,b,c,d) [re,im,w]=nyquist(a,b,c,d,iu) [re,im,w]=nyquist(a,b,c,d,iu,w) [re,im,w]=nyquist(num,den) [re,im,w]=nyquist(num,den,w) nyquist calcula a resposta Nyquist em freqncias de um sistema de tempo contnuo LTI. Nyquist plots so usados para a anlise das propriedades do sistema, incluindo ganho marginal, fase marginal e estabilidade. nyquist determina a estabilidade de um sistema. Fazendo o Nyquist plot da funo de transferncia open-loop G ( s) , e a funo de transferncia close-loop:

Descrio

G cl (s) =

G (s) 1 + G (s)

estvel se o Nyquist plot cercar o ponto 1 + j0 exatamente no tempo P na direo antihorria, onde P um nmero de plos instveis open-loop. nyquist(a,b,c,d) produz a srie de Nyquist plots, um para cada sada e entrada combinada de um sistema contnuo estado-espao:

= Ax + Bu x y = Cx + Du
A srie de freqncias automaticamente determinada. Nyquist(a,b,c,d,iu) produz Nyquist plots para a entrada simples iu para todas as sadas do sistema para a srie de freqncias determinadas automaticamente. O escalar iu indexado as entradas de um sistema e especificada qual entrada ser usada na resposta Nyquist.

- 50 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

o nyquist plots de uma funo de transferncia Nyquist(num,den) desenha G (s) = num(s) den(s) onde num e den contm os coeficientes dos polinmios das potncias descendentes de s. Nyquist(a,b,c,d,iu,w) ou Nyquist(num,den,w) usa um suprimento de freqncias no vetor w. O vetor w especifica as freqncias em radianos/sec em que a resposta Nyquist ser calculada. A funo logspace cria vetores gerais de freqncias para dados espaados logaritmicamente iguais em freqncias. Se houver argumentos de sada: [re,im,w]=nyquist(a,b,c,d,iu) [re,im,w]=nyquist(a,b,c,d,iu,w) [re,im,w]=nyquist(num,den) [re,im,w]=nyquist(num,den,w) retorna as respostas frequenciais de um sistema nas matrizes re, im e w. No ser desenhado na tela. As matrizes re e im contm as partes real e imaginria da resposta de freqncias de um sistema com valores freqncias w. re e im contm nas colunas as sadas para cada elemento no w: Plote a resposta Nyquist do sistema:

Exemplo

H (s) =
num=[2 5 1];den=[1 2 3]; nyquist(num,den) title('Nyquist Plot')
Nyquist Plot 2 1.5 I m a g 1 0.5

2s2 + 5s + 1 s 2 + 2s + 1

0 A x -0.5 i s -1 -1.5 -2 0 0.5 1 1.5 2 2.5 Real Axis 3 3.5 4

Procure Referncias

dnyquist, bode, logspace [1] Laub, A. J., Efficient Multivariable Frequency Responce Computations, IEEE Transactions on Automatic Control, Vol. AC-26, No. 2, April 1981, pp. 407-408.

- 51 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

18.3 Funo RLOCUS


Objetivo Comando Localizar as razes. r=rlocus(num,den) r=rlocus(num,den,k) r=rlocus(a,b,c,d) r=rlocus(a,b,c,d,k) rlocus calcula a localizao de razes de um sistema SISO. usado para estudo para o estudo dos efeitos da variao do ganho o sistema de localizao de plos, providenciando informaes indiretas sobre o tempo e respostas de freqncias. A funo de transferncia close-loop, dados a funo de transferncia g( s) e o compensador k * f ( s) , :

Descrio

h(s) =

g(s) g(s) = 1 + k * g(s) * f (s) q (s)

Quando no possui argumentos de sada, a funo rlocus plota o resultado na tela. rlocus serve para sistemas contnuos ou discretos no tempo. rlocus(num,den)plota a localizao das razes para

g(s) = 1 + k

num(s) den(s)

e o vetor ganho k automaticamente determinada. Vetores num e den especifica os coeficientes dos numeradores e denominadores em funo de potncias de s ou z:

num(s) num(1)s nn 1 + num(2)s nn 2 + + num( nn) = den(s) den(1)s nd 1 + den(2)s nd 2 + + den( nd )


rlocus(a,b,c,d) plota a localizao das razes de tempo contnuo ou discreto num sistema estado-espao SISO e o vetor ganho k automaticamente determinado. rlocus(a,b,c,d,k) ou rlocus(num,den,k) usa um vetor ganho suplemento k. O vetor k contm o ganho para as razes closed-loop so computadas. Quando possui argumentos de sada: [r,k]=rlocus(num,den) [r,k]=rlocus(num,den,k) [r,k]=rlocus(a,b,c,d) [r,k]=rlocus(a,b,c,d,k) retorna a matriz r e o vetor ganho k. r uma matriz de length(k) linhas e (length(den)-1) colunas contendo as localizaes das razes complexas. Cada linha de uma matriz corresponde a um ganho do vetor k. Pode-se plotar usando o comando plot(r,'x'). Plote a localizao das razes do sistema:

Exemplo

H (s) =
num=[2 5 1]; den=[1 2 3]; rlocus(num,den); title('Root Locus')

2s2 + 5s + 1 s2 + 2s + 3

- 52 -

Curso de Introduo ao MATLAB - Guia Prtico


Root Locus 2.5 2 I m a g 1.5 1 0.5

Junho/2002

0 A x -0.5 i -1 s -1.5 -2 -2.5 -2 -1 0 Real Axis 1 2

Procure

place, lqr

- 53 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

19. Tabelas de Referncias


Principais Categorias de Funes MATLAB
color datafun demos elfun elmat funfun general graphics iofun lang matfun ops plotxy plotxyz polyfun sparfun specfun specmat sounds strfun Controle de cores e luminosidade. Anlise de dados e funes da transformao de Fourier. Demonstraes e exemplos. Funes de matemtica elementar. Manipulao de matrizes e matriz elementares. Funo Funo - Mtodos Numricos no-lineares. Comandos gerais. Comandos gerais de grficos. Funes de baixo nvel de arquivos I/O. Construo de linguagem e depurao. Funes matriciais - lgebra linear. Operadores e caracteres especiais. Grficos 2D. Grficos 3D. Funes polinomiais e interpolares. Funes de matriz esparsa. Funes especiais da Matemtica. Matrizes especiais. Funes de processamento de som. Funes envolvendo caracteres.

19.1 Comandos Gerais


Controle de Comandos e Funes
demo expo help info lasterr lookfor path subscribe type ver version what whatsnew which Executa demos. Executa programa de demonstrao MATLAB EXPO Documentao on-line. Informao sobre MATLAB e The MathWorks. ltima mensagem de erro gerada. Procura palavra-chave entre os itens de ajuda. Controle de procura de caminhos do MATLAB. Torna aprovado um usurio MATLAB no MathWorks. Mostra o contedo de um arquivo M-File. Verso do MATLAB e ToolBox corrente. Nmero de verso do MATLAB corrente. Lista arquivos *.M, *.MAT e *.MEX. Mostra arquivos LEIA-ME para MATLAB e ToolBox Arquivos e funes locais.

Controle de Variveis e Estao de Trabalho


clear disp length load pack save size who whos Limpa variveis e funes da memria. Mostra matrizes ou textos. Comprimento do vetor. Recupera variveis do disco. Incorpora memria da estao de trabalho. Salva variveis da estao de trabalho para o disco. Tamanho de matrizes. Lista variveis correntes. Lista variveis correntes em longos formatos.

Trabalhando com Arquivos e Ambiente Operacional


cd cedit delete diary dir getenv hostid ls matlabroot pwd tempdir tempname terminal unix ! Muda o diretrio de trabalho corrente. Coloca parmetros em comandos editados(somente UNIX). Apaga arquivos. Salva sesso de textos de MATLAB. Lista o diretrio. Obtm o valor de ambiente. Nmero de identificao do servidor anfitrio MATLAB. Lista o diretrio. Diretrio raiz da instalao MATLAB. Mostra o corrente diretrio de trabalho. Nome do sistema do diretrio temporrio. nico nome para arquivo temporrio. Obtm o tipo de terminal grfico. Executa comando do sistema operacional; retornando o resultado. Executa comando do sistema operacional.

- 54 -

Curso de Introduo ao MATLAB - Guia Prtico


Controle de Janelas do Windows
clc echo format home more Limpa janela de comando. Repete comandos para dentro de arquivos de texto. Formato de sada do nmero. Envia o cursor para a base, casa Controle da listagem de informaes em janelas de comando.

Junho/2002

Iniciando e Saindo do MATLAB


matlabrc quit startup Executa arquivos *.M. Fecha o MATLAB. Executa arquivos *.M quando MATLAB invocado.

19.2 Operadores e Caracteres Especiais


Operadores e Caracteres Especiais
+ .* Adio. Subtrao. Multiplicao matricial. Multiplicao de vetorial. Potncia matricial.

.^ kron \ / ./ : ( ) [ ] . . . . . . , ; % ! .' = == < > & | ~ xor

Potncia vetorial. Produto de tensor Kronecker. Corte ou diviso esquerda. Corte ou diviso direita. Diviso vetorial. Dois pontos. Parnteses. Colchetes. Ponto Decimal. Diretrio raiz. Continuao. Vrgula. Ponto-e-vrgula. Comentrio, observao. Ponto de exclamao. Transposio. Transposio Vetorial. Indicao. Igualdade. Operadores relacionais. E lgico. OU lgico. NO lgico. EXCLUSIVO OU lgico.

Funes Lgicas
all any exist find finite isempty ishold isieee isinf isletter isnan isreal issparse isstr Verdadeiro se todos elementos do vetor forem verdadeiros. Verdadeiro se algum elemento do vetor for verdadeiro. Verifica se existe variveis ou funes. Encontra ndices dos elementos no nulos. Verdadeiro para elementos finitos. Verdadeiro para matrizes vazias. Verdadeiro se hold estiver ligado. Verdadeiro para IEEE pontos flutuantes aritmticos. Verdadeiro para elementos infinitos. Verdadeiro para caracteres alfabticos. Verdadeiro para um no nmero. Verdadeiro se todos elementos da matriz forem reais. Verdadeiro para matrizes esparsas. Verdadeiro para texto.

19.3 Construo de Linguagem e Depurao


MATLAB como uma Linguagem de Programao
eval Executa funes em formato texto no MATLAB.

- 55 -

Curso de Introduo ao MATLAB - Guia Prtico


MATLAB como uma Linguagem de Programao
feval function global nargchk Executa funes especificadas nas variveis texto. Adiciona novas funes. Define variveis globais. Nmero de validade de argumentos colocados.

Junho/2002

Controle de Fluxo
break else elseif end error for if return while Execuo terminal de um Loop. Usado com if. Usado com if. Termina com o campo de ao de comandos for, while e if. Mostra mensagem e aborta funes. Repete declaraes num especificado nmero de vezes. Executa declaraes condicionais. Retorna para funes invocadas. Repete declaraes num indefinido nmero de vezes.

Entrada Interativa
input keyboard menu pause Prompt para entrada de usurio. Declara o teclado como se fosse um arquivo texto. Menu geral de escolhas para entrada do usurio. Espera pela resposta do usurio.

Depurao
dbclear dbcont dbdown dbquit dbstack dbstatus dbstep dbstop dbtype dbup Remove ponto de parada. Execuo resumida. Muda o contexto local da estao de trabalho. Sai do modo debug. Lista quem chamou quem. Lista todos pontos de parada. Executa uma ou mais linhas. Coloca um ponto de parada. Lista arquivo *.M com nmero de linhas. Muda o contexto local da estao de trabalho.

19.4 Manipulao de Matrizes


19.4.1 Matriz Elementar
Matrizes Elementares
eye gallery linspace logspace meshgrid ones rand randn zeros : Matriz Identidade. Teste de matrizes - condio matricial e autovalores. Vetor linearmente esparsado. Vetor logaritmicamente esparsado. Matrizes X e Y para plotes 3-D. Matriz de elementos unitrios. Distribui uniformemente nmeros ao acaso. Distribui normalmente nmeros ao acaso. Matriz de elementos nulos. Vetor regularmente esparsado.

Variveis e Constantes Especiais


ans computer eps flops i,j inf NaN nargin nargout pi realmax realmin Mais recente resposta. Escrita computacional. Relativa preciso no ponto-flutuante. Operaes enumeradas de ponto flutuante. Unidade imaginria. Infinito. No nmero. Nmero de entradas de argumentos da funo. Nmero de sadas de argumentos da funo. 3.1415926535897 ... Maior nmero de ponto flutuante. Menor nmero de ponto flutuante.

Data e Hora
clock cputime date etime tic, toc Relgio. Tempo decorrido em unidades de CPU. Calendrio. Funo do tempo decorrido. Funes de tempo decorrido.

- 56 -

Curso de Introduo ao MATLAB - Guia Prtico


Manipulao Matricial
diag fliplr flipud isreal reshape rot90 tril triu : Cria ou extrai diagonais. Vira matriz para direita/esquerda. Vira matriz para cima/baixo. Verdadeiro para matriz contendo somente elementos reais. Muda tamanho. Rotaciona a matriz em 90 graus. Extrai a parte inferior triangular. Extrai a parte superior triangular. ndice para dentro da matriz, rearranja matriz.

Junho/2002

19.4.2 Matrizes Especiais


Matrizes Especiais
compan hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson Matriz usada em clculo de polinmios. Matriz Hadamard. Matriz Hankel. Matriz Hilbert. Matriz inversa de Hilbert. Matriz quadrada cujas as somas das linhas e colunas so iguais. Matriz Pascal. Problema clssico de teste de simetria dos autovalores. Matriz Toeplitz. Matriz Vandermonde. Autovalores obtidos para a matriz de Wilkinson

19.5 Funes Matemticas


19.5.1 Funes de Matemtica Elementar
Funes de Matemtica Elementar
abs acos acosh acot acoth acsc acsch angle asec asech asin asinh atan atanh2 atanh ceil conj cos cosh cot coth csc csch exp fix floor Valor absoluto. Inversa do coseno. Inversa do coseno hiperblico. Inversa da cotangente. Inversa da cotangente hiperblica. Inversa da cosecante. Inversa da cosecante hiperblica. ngulo de fase. Inversa da secante. Inversa da secante hiperblica Inversa do seno. Inversa do seno hiperblico. Inversa da tangente. Inversa da tangente no quarto quadrante. Inversa da tangente hiperblica. Inteiro prximo a mais infinito. Conjugado de um nmero complexo. Coseno. Coseno hiperblico. Cotangente. Cotangente hiperblica. Cosecante. Cosecante hiperblico. Exponencial. Inteiro prximo a 0.

gcd imag lcm log log10 real rem round sec sech

Inteiro prximo a . Grande divisor comum. Parte imaginria de um nmero complexo. Menor mltiplo comum. Logaritmo natural. Logaritmo comum. Parte real de um nmero complexo. Resto da diviso. Inteiro mais prximo. Secante. Secante hiperblica.

- 57 -

Curso de Introduo ao MATLAB - Guia Prtico


Funes de Matemtica Elementar
sign sin sinh sqrt tan tanh retorna o sinal de um nmero. Ex.: sign(1.2)=1, sign(-23.4)=-1e sign(0)=0 Seno. Seno hiperblico. Raiz quadrada. Tangente. Tangente hiperblica.

Junho/2002

- 58 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

19.5.2 Funes Especializadas da Matemtica


Funes de Matemtica Especializada
bessel besseli besselj besselk bessely beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln legendre log2 pow2 rat rats Funes Bessel. Funes Bessel modificada de primeiro tipo. Funes Bessel de primeiro tipo. Funes Bessel modificada de segundo tipo. Funes Bessel de segundo tipo. Funes beta. Funes beta incompleta. Logaritmo da funo beta. Funes elpticas de Jacobian. Integral elptica completa. Funo de erro. Funo de erro complementar. Escala complementar da funo de erro. Funo inversa de erro. Integral exponencial. Funo gama. Funo gama incompleta. Funo logartmica de gama. Funes associadas Legendre. Separao de nmeros de ponto flutuante. Escala de nmeros de ponto flutuante. Aproximao racional. Sada racional.

19.6 Funes Matriciais - lgebra Numrica Linear


Anlise Matricial
cond det etree norm null orth rcond rank rref subspace trace Nmero da condio matricial. Determinante. rvore eliminatria de uma matriz. Matriz ou vetor normal. Espao nulo. Ortogonalizao. Estimao condicional recproca LINPACK. Nmero de linhas ou colunas linearmente independentes. Reduzir linhas da forma ECHELON. ngulo entre dois sub-espaos. Soma dos elementos diagonais.

Equaes Lineares
chol inv lscov lu nnls pinv qr \ and / Fatorizao CHOLESKY. Matriz inversa. ltimos quadrados na presena de covariance. Fatores de eliminaes Gausianas. Matrizes quadradas no negativas. Pseudo-inversa. Decomposio ortogonal-triangular Soluo de equao linear

Autovalores e Valores Singulares


balance cdf2rdf eig hess poly qz rsf2csf schur svd Escala diagonal para melhorar preciso de autovalores. Forma da diagonal complexa para real forma de bloco diagonal. Autovalores e autovetores. Forma Hessenberg. Polinmio caracterstico. Autovalores gerais. Forma de diagonal de bloco para forma de diagonal complexa. Decomposio Schur. Decomposio de valor singular.

Funes Matriciais
exp. funm logm sqrtm Matriz exponencial. Avaliao geral da funo matricial. Matriz logartmica. Matriz de razes quadradas.

- 59 -

Curso de Introduo ao MATLAB - Guia Prtico


Funes de Baixo Nvel
qrdelete qrinsert Apaga colunas de fatorizao QR. Insere colunas para dentro da fatorizao QR.

Junho/2002

19.7 Anlise de Dados e as Funes da Transformada de Fourier


Operaes Bsicas
cumprod cumsum max mean median min prod sort std sum trapz Produto cumulativo de elementos. Soma acumulativa de elementos. Maior componente. Mdia ou valor significativo. Valor mdio. Menor componente. Produto de elementos. Organiza em ordem ascendente. Desvio padro. Soma de elementos. Integrao numrica usando mtodo trapezoidal.

Diferenas Finitas
del2 diff gradient Ponto cinco discreto Laplaciano. Funo diferencial e derivada aproximada. Gradiente aproximado.

Correlao
corrcoef cov Coeficientes correlacionados. Matriz covariante.

Filtro e Convoluo
conv conv2 deconv filter filter2 Convoluo e multiplicao polinomial. Convoluo Bidimensional. Deconvoluo e diviso polinomial. Filtro digital unidimensional. Filtro digital bidimensional.

Transformada de Fourier
abs angle cplxpair fft fft2 fftshift ifft ifft2 nextpow2 unwrap Magnitude. ngulo de fase. Organiza nmeros para dentro de um par conjugado complexo. Discreta transformada de Fourier. Discreta transformada de Fourier bidimensional. Muda a freqncia zero para centro do espectro. Inversa discreta da transformada de Fourier. Inverso bidimensional da discreta transformada de Fourier. Prxima fora maior de 2. Remove o ngulo de fase saltando atravs de limites de 360

Funes Vetoriais
cross dot Produto de vetores. Produto de ponto vetorial.

19.8 Funes Polinomiais e Interpolares


Polinmios
conv deconv poly polyder polyeig polyfit polyval polyvalm residue roots Multiplicao polinomial. Diviso polinomial. Construo polinomial com razes especificas. Derivada polinomial. Soluo polinomial para problemas de autovalores. Ajuste polinomial para dados. Clculo do grau polinomial. Clculo do grau polinomial com argumentos matriciais. Expanso de frao parcial (resduos). Encontra razes polinomiais.

Interpolao de Dados
griddata interp1 interp2 Rede de dados. Interpolao unidimensional. Interpolao bidimensional.

- 60 -

Curso de Introduo ao MATLAB - Guia Prtico


Interpolao de Dados
interpft Interpolao unidimensional usando mtodo FFT.

Junho/2002

19.9 Funo Funo


Funo - Funo - Mtodos Numricos no lineares
fmin fmins fplot fzero ode23 ode 45 quad quad8 Funo minimizada de uma varivel. Funo minimizada de vrias variveis. Funes de plotagem. Encontra zero da funo de uma varivel. Resolve equaes diferenciais pelo mtodo de baixa ordem. Resolve equaes diferenciais pelo mtodo de alta ordem. Avaliao numrica da integral pelo mtodo de baixa ordem. Avaliao numrica da integral pelo mtodo de alta ordem.

19.10 Funes Matriciais Esparsadas


Matrizes Elementares Esparsadas
spdiags speye sprandn sprandsym Matriz esparsada formada por diagonais. Matriz identidade esparsada. Matriz esparsada casual. Matriz esparsada simetricamente casual.

Tudo para Converso Esparsada


find full sparse spconvert Encontra ndices de entradas no nulas. Converte matriz esparsa em matriz completa. Cria matriz esparsa de no nulos e ndices. Converte para formato externo de matriz esparsa.

Trabalhando com Entradas No nulas de Matrizes Esparsas


issparse nnz nonzeros nzmax spalloc spfun spones Verdadeiro se matriz esparsa. Nmero de entradas no nulas. Entradas no nulas. Soma de distribuio armazenada para entradas. Destina memria para entradas no nulas. Aplica funo para entradas no nulas. Substitui entradas no nulas por um.

Visualizando Matrizes Esparsadas


gplot spy Plota grfico, como em "teoria grfica". Visualiza estrutura esparsada.

Reordenando Algoritmos
colmmd colperm dmperm randperm symmmd symrcm Mnima extenso da coluna. Ordena colunas baseadas em contador no nulo. Decomposio Dulmage-Mendelsohn. Permutao aleatria de vetores. Mnima extenso simtrica. Ordenando a reversa de Cuthill-McKee.

Norma, Nmero Condicional e Linha


condest normest sprank Estimativa 1 - condio de norma. Estimativa 2 - norma. Linha estrutural.

Miscelnea
spaugment spparms symbfact Sistema ampliado da ltima forma quadrtica. Estabelece parmetros para rotinas de matrizes esparsadas. Anlise de fatorizao simblica.

- 61 -

Curso de Introduo ao MATLAB - Guia Prtico

Junho/2002

19.11 Grficos Bidimensionais


Grficos Elementares X-Y
fill loglog plot semilogx semilogy Desenha polgonos bidimensionais preenchidos. Plota em escala logartmica. Plota em escala linear. Plota em escala linear, somente com o eixo x logaritmizado. Plota em escala linear, somente com o eixo y logaritmizado.

Grficos Especiais X-Y


bar comet compass errorbar feather fplot hist polar rose stairs stem Plota em barras grficas. Plota em comet animado. Plota em compass. Plota em erros de barra. Plota em Feather. Plota funes. Plota em historiogramas. Plota em coordenadas polares. Plota em ngulos historiogrmicos. Plota em Stairstep. Plota em Stem de seqncias discretas de dados.

Anotaes Grficas
grid gtext legend text title xlabel ylabel Rede de linhas. Lugar do texto com o mouse. Adiciona legenda para plotar. Anotao de texto. Ttulo do grfico. Classificao do eixo X. Classificao do eixo Y.

Converso de Sistemas de Coordenadas


cart2pol pol2cart Coordenadas cartesianas para coordenadas polares. Coordenadas polares para coordenadas cartesianas.

Miscelnea
zoom Zoom de aproximao (in) e afastamento (out).

19.12 Grficos Tridimensionais


Comandos de Linha e rea Preenchida
fill3 plot3 Desenha polgonos 3-D preenchidos em espao 3-D. Plota linhas e pontos em espao 3-D.

Contorno e outras Plotagens Bidimensionais de dados Tridimensionais


clabel comet3 contour contour3 contourc image imagesc pcolor quiver slice Classifica a elevao do plot de contorno. Plot de comet animado. Plot de contorno. Plot de contorno tridimensional. Clculo do plot de contorno (usado pelo contorno). Mostra imagem. Dados em escala e mostra como imagem. Plota um tabuleiro de damas. Plot estremecido. Plot de um pedao volumtrico.

Plotagem de Superfcie e Malha


mesh meshc meshz slice surf surfc surfl waterfall Malha da superfcie em 3-D. Combinao de plot de malha/contorno. Malha 3-D com plano zero. Visualizao de plot volumtrico. Superfcie 3-D sombreada. Combinao de plot de superfcie/malha. Superfcie 3-D sombreada com luminosidade. Plota superfcies. Semelhante ao comando mesh.

Aparncia Grfica
axis caxis Escala e aparncia de eixo. Pseudocores de eixo escalar.

- 62 -

Curso de Introduo ao MATLAB - Guia Prtico


colormap hidden shading view viewmtx Tabela de cores. Retirada da linha de malha oculta . Sombreamento de cores. Especificao do ponto de vista de um grfico 3-D. Visualizao de matrizes transformadas.

Junho/2002

Anotao Grfica
grid legend text title xlabel ylabel zlabel Rede de linhas. Adiciona legenda no plot. Anotao. Ttulo do grfico. Classificao do eixo X. Classificao do eixo Y. Classificao do eixo Z para plots 3-D.

Objetos 3-D
cylinder sphere Cilindro comum. Esfera comum.

Converso de Sistemas de Coordenadas


cart2sph sph2cart Coordenadas cartesianas para polar. Coordenadas polares para cartesianas.

19.13 Funes Grficas


Criao e Controle de Janelas
capture clf close figure gcf graymon newplot refresh whitebg Captura tela de uma figura atual (somente UNIX). Limpa figura atual. Fecha figura. Cria figura (janela grfica). D mobilidade a figura atual. Determina as propriedades padro da figura para monitores monocromticos. Determina os eixos corretos e a figura para novos grficos. Redesenha a atual figura da janela. Altera figura para cores de fundo.

Criao e Controle de Eixos


axes axis caxis cla gca hold ishold subplot Cria eixos em posies arbitrrias. Controla escala e aparncia de eixos. Controla pseudocores de escala de eixos. Limpa eixos atuais. Torna eixo manusevel. Controla o grfico atual. Verdadeiro se o controle estiver ligado. Cria eixos em vrias posies.

Objetos Grficos Manuseveis


axes figure image line patch surface text uicontrol uimenu Cria eixos. Cria janela de figura. Cria imagem. Cria linha. Cria mancha. Cria superfcie. Cria texto. Cria controle de interface do usurio. Cria menu de interface do usurio.

Operaes Grficas Manuseveis


delete drawnow findobj gco get reset rotate set Deleta objeto. Comea eventos grficos pendentes. Encontra objetos com propriedades especficas. Torna um objeto manusevel. D as propriedades de um objeto. Refaz as propriedades de um objeto. Rotaciona um objeto. Faz as propriedades do objeto.

Caixas de Dilogos
uigetfile Recupera nome do arquivo para abrir uma caixa de dilogo.

- 63 -

Curso de Introduo ao MATLAB - Guia Prtico


Caixas de Dilogos
uiputfile Recupera nome do arquivo para escrever numa caixa de dilogo.

Junho/2002

Impresso e Armazenagem
orient print printopt Mostra orientaes do papel. Imprime grficos ou salva-os em arquivos. Configurao local da impressora.

Filmes e Animaes
getframe movie moviein Mostra estrutura do filme. Roda as estruturas do filme gravado. Inicializa a memria da estrutura do filme.

Miscelneas
ginput ishold rbbox waitforbuttonpress Entrada do grfico pelo mouse. Retorna ao estado conservado. Caixa de borracha para regio selecionada. Espera pelo pressionamento de uma tecla sobre a figura.

19.14 Controle de Cores e Funes de Luminosidade


Controle de Cores
caxis colormap shading Pseudocores da escala de eixos. Tabela de consulta de cores. Modo de sombreamento de cores.

Mapeamento de Cores
bone contrast cool copper flag gray hsv hot jet pink prism white Escala cinza com uma matiz azul. Acentuao de contraste em escala cinza. Sombra de cyan e magenta. Matiz linear usando tonalidades cooper. Alternando vermelho, branco, azul e preto. Escala de cinza linear. Valor de saturao de tonalidade. Preto-vermelho-amarelo-branco. Variao do HSV. (sem wrap) Pasteuriza sombras de rosa. Prisma de cores. Tudo em branco monocromtico.

Funes relacionadas com Mapeamento de Cores


brighten colorbar hsv2rgb rgb2hsv rgbplot spinmap Brilho ou escurido. Mostra mapeamento de cores como escala de cores. Converso de HSV para RGB. Converso de RGB para HSV. Plota o mapeamento de cores. Gira o mapeamento de cores.

Luminosidade
diffuse specular surfl surfnorm Reflexo difuso. Reflexo refletido. Superfcies 3-D sombreadas com luminosidade. Superfcies normais.

19.15 Funes Sonoras


Funes Gerais de Som
saxis sound Som em eixos escalares. Converte vetor para som.

SPARCstation - Funes Sonoras Especficas


auread auwrite lin2mu mu2lin L arquivos de som .au Escreve arquivos de som .au Converso de linear para mu-law. Converso de mu-law para linear.

- 64 -

Curso de Introduo ao MATLAB - Guia Prtico


Funes de Som .wav
wavread wavwrite Carrega MS-Windows 3.1 .wav no formato de arquivo de som. Salva MS-Windows 3.1 .wav no formato de arquivo de som.

Junho/2002

19.16 Funes de Texto


Gerais
abs blanks deblank eval findstr isstr setstr str2mat string strrep strtok Converte texto para valores numricos. Cria texto de vazios. Remove arrastando espaos brancos e nulos de textos. Executa frases com expresso MATLAB. Encontra uma letra em um texto. Verdadeiro para texto. Converte valores numricos para texto. De texto matricial para letras individuais. Sobre caracteres texto no MATLAB. Procura e substitui texto. Primeiro toma como texto.

Comparao Frasal
isletter lower strcmp upper Verdadeiro para caracter alfabtico. Converte texto para uma caixa menor. Compara textos. Converte texto para uma caixa maior.

Converso de Texto para Nmero


int2str num2str sprintf sscanf str2num Converte inteiro para texto. Converte nmero para texto. Converte nmero para texto sob um controle formatado. Converte texto para nmero sob um controle formatado. Converte texto para nmero.

Converso de Hexadecimal para Nmero


dec2hex hex2dec hex2num Converte inteiro decimal para texto hexadecimal. Converte texto hexadecimal para inteiro decimal. Converte texto hexadecimal para IEEE nmero de ponto flutuante.

19.17 Funes de Arquivos I/O de Baixo Nvel


Abrindo e Fechando Arquivo
fclose fopen Fecha arquivo. Abre arquivo.

I/O Desformatada
fread fwrite L dado binrio de arquivo. Escreve dado binrio para arquivo.

I/O Formatada
fgetl fgets fprintf fscanf L linha de arquivo, descarta novas linhas de caracteres. L linha de arquivo, permanece novas linhas de caracteres. Escreve dado formatado para arquivo. L dado formatado para arquivo.

Posio em Arquivos
feof ferror frewind fseek ftell Teste para fim de linha. Pergunta a situao do erro de arquivo I/O. Refaz arquivo. Mostra o indicador da posio do arquivo. Determina o indicador da posio do arquivo.

Converso de Texto
sprintf sscanf Escreve dados formatados para letras. L letras sob um controle formatado.

Arquivos Especiais de I/O


csvread cswrite L um arquivo de valores separados por (;). Escreve um arquivo de valores separados por (;).

- 65 -

Curso de Introduo ao MATLAB - Guia Prtico


Arquivos Especiais de I/O
uigetfile uiputfile wk1read wk1write Recupera nome de arquivo para abrir caixa de dilogo. Recupera nome de arquivo para escrever numa caixa de dilogo. L um arquivo Lotus 1-2-3 .wk1 Escreve um arquivo Lotus 1-2-3 .wk1

Junho/2002

20. Tabela de Referncia a Matemtica Simblica.


Clculo
diff int cacobian taylor Diferencial ou Derivada. Integral. Matriz Jacobian Espano em srie de Taylor.

lgebra Linear
charpoly colspace determ eigensys inverse jordan linsolve nullspace singvals svdvpa transpose Polinmio caracterstico simblico. Bsico para espao em colunas. Determinante da matriz simblica. Autovalores e autovetores simblicos. Matriz inversa Simblica. Forma cannica Jordan. Soluo para equaes lineares simultneas. Base para nullspace. Valores matriciais simblicos e vetores singulares. Valor singular de preciso varivel. Matriz transposta simblica.

Simplificaes
allvalues collect expand factor simple simplify symsum Achar todos os valores para a expresso RootOF. Acumular. Expandir. Fator. Buscar para a forma shortest. Simplificar. Srie de soma simblica.

Soluo para Equaes


compose dsolve finverse solve Composio funcional. Soluo simblica para equaes diferenciais. Inverso funcional. Soluo simblica para equaes algbricas.

Preciso varivel aritmtica


digits vpa Tornar a varivel exata. Preciso de aritmtica varivel.

Operao com Expresses Simblicas e Matrizes


latex horner numden numeric poly2sym pretty subs sym sym2poly symadd symdiv symmul symop sympow symrat symsize symsub symvar Representao LaTeX para sadas simblicas. Representao polinomial Nested. Numerador e denominador. Converte forma numrica em matriz simblica. Polinmio simblico para vetor coeficiente. Imprime numa forma bonita a expresso simblica. Substituto da sub-expresso. Cria ou modifica matriz simblica. Converte matriz simblica em forma numrica. Adiciona expresses simblicas. Divide expresses simblicas. Multiplica expresses simblicas. Operaes simblicas. Potncia de expresses simblicas. Aproximao simblica racional. Tamanho de uma matriz simblica. Subtrai expresses simblicas. Determina variveis simblicas.

- 66 -

Curso de Introduo ao MATLAB - Guia Prtico


Aplicaes Pedaggicas e Grficas
ezplot funtool rsums Fcil para usar a funo plotter. Funo calculadora. Soma Riemann

Junho/2002

Transformaes e Transformadas Inversas


fourier invfourier invlaplace invztrans laplace ztrans Transformada integral de Fourier. Inversa de transformada integral de Fourier. Inversa da transformada de Laplace. Inversa da transformada z. Transformada de Laplace. Transformada de z.

21. Referncia a Sistemas e Sinais


Construo de um Modelo
append cloop feedback rmodel series ssselect Anexar sistemas dinmicos. Fechar loops do sistema. Conectar sistemas Feedback. Gerar um modelo contnuo randmico. Coneco de sistemas em srie. Selecionar subsistemas para uma sistema grande.

Converso de Modelos
c2d c2dm ss2tf ss2zp tf2ss tf2zp zp2tf zp2ss Converso de contnua para discreta. Converso de contnua para discreta usando mtodo. Converso de estado-espao para funo de transferncia Converso de estado-espao para zero-plos. Converso de funo de transferncia para estado-espao. Converso de funo de transferncia para zero-plos. Converso de zero-plos para funo de transferncia. Converso de zero-plos para estado-espao.

Realizao de Modelos
canon Converso de sistemas para forma cannica.

Propriedades de Modelos
ctrb damp ddamp dsort esort obsv tzero Matriz Controlabilidade. Fatores damping e freqncias naturais. Fatores discretos damping e freqncias naturais. Classe de autovalores discretos por magnitude. Classe de autovalores contnuos por parte real. Matriz Observabilidade Transmisso zero.

Resposta em Tempo
dimpulse dlsim dstep impulse lsim step Resposta a funo impulso discreto unitrio. Simulao discreta para entradas arbitrrias. Resposta a funo degrau discreto. Resposta a funo impulso. Simulao contnua para entradas arbitrrias. Resposta a funo degrau.

Resposta em Freqncias
bode freqs freqz nyquist Plota bode. Transformada de Laplace. Transformada de z. Plota nyquist.

Localizao de Razes
rlocus Localiza lugares das razes.

- 67 -

Curso de Introduo ao MATLAB - Guia Prtico


Seleo de Ganho
acker lqe lqr place Lugar dos plos SISO. Projeto estimativo linearmente quadrtico. Projeto regulador linearmente quadrtico. Lugar dos plos.

Junho/2002

Gerao de ondas
sinc Funo sinc ou sin ( x ) x

Anlise/Implementao de Filtros
freqs freqz grpdelay zplane Resposta de freqncias em transformadas de Laplace. Resposta de freqncias em transformadas de z. Grupo atrasado. Plota zero-plo discreto.

Transformao de Sistemas Lineares


residuez sos2ss sos2tf sos2zp ss2sos ss2tf ss2zp tf2ss tf2zp zp2sos zp2ss zp2tf Expanso em fraes parciais. Converso de sesses de segunda ordem para estado-espao. Converso de sesses de segunda ordem para funo de transferncia. Converso de sesses de segunda ordem para zero-plo. Converso de estado-espao para sesses de segunda ordem. Converso de estado-espao para funo de transferncia. Converso de estado-espao para zero-plo. Converso de funo de transferncia para estado-espao. Converso de funo de transferncia para zero-plo. Converso de zero-plo para sesses de segunda ordem. Converso de zero-plo para estado-espao. Converso de zero-plo para funo de transferncia.

Projeto de Filtro IIR - Clssico e Direto


butter cheby1 cheby2 ellip yulewalk Projeto de filtro ButterWorth. Projeto de filtro Chebyshev tipo I. Projeto de filtro Chebyshev tipo II. Projeto de filtro elptico. Projeto de filtro Yule-Walker

Projeto de filtro FIR


remez Projeto de filtro FIR Parks-McClellan.

Processo Estatstico de Sinal


psd Espectro de potncia estimado.

Janelas
boxcar hamming hanning kaiser triang Janela retangular. Janela hamming. Janela hanning. Janela kaiser. Janela triangular.

Operaes Especializadas
specgram Espectograma.

Projeto Prottipo Analgico


buttap cheb1ap cheb2ap ellipap Filtro prottipo Butterworth. Filtro prottipo Chebyshev (passband ripple) tipo I. Filtro prottipo Chebyshev (passband ripple) tipo II. Filtro prottipo elptico.

Translao de Freqncias
lp2bp lp2bs lp2hp lp2lp Transformao lowpass para bandpass. Transformao lowpass para bandstop. Transformao lowpass para highpass. Transformao lowpass para lowpass.

- 68 -

Curso de Introduo ao MATLAB - Guia Prtico


Discretizao de Filtros
bilinear impinvar Transformao bilinear. Mtodo impulso invariante para converso de filtro A/D.

Junho/2002

Outros
detrend polystab strips Remover direo linear. Polinmio estabilizador. Plota strip.

- 69 -

Você também pode gostar