apostila matlab

72
Apostila Matlab - 1 COMPUTAÇÃO PARA ENGENHARIA Prof. Maurício de Campos 1° Semestre de 2007

Upload: cristiano260188

Post on 05-Jul-2015

550 views

Category:

Documents


4 download

TRANSCRIPT

Apostila Matlab - 1

Computação para Engenharia

COMPUTAÇÃO PARA ENGENHARIA

Prof. Maurício de Campos

1° Semestre de 2007

Apostila Matlab - 2

Computação para Engenharia

1. Requisitos mínimos do sistema:

Chip Intel (ou compatível) Pentium IV ou superior;

Windows XP ou superior;

Mouse;

1500 MB de espaço em disco;

1024 MB de memória.

Apostila Matlab - 3

Computação para Engenharia

2. Características Básicas

Executa-se o MATLAB clicando-se duas vezes em seu ícone. Abrirá uma janela com uma

linha de comando. Nisto é que iremos trabalhar daqui para frente. Este programa é uma ferramenta

poderosa para a resolução de problemas. Por exemplo, se você digitar um cálculo simples:

» 4+6+8

ans =

18

Lembre-se: Não existe espaço entre os números.

2.1 Operações Simples

Operação Símbolo Exemplo

adição a b + 5+3

subtração a b - 25-13

multiplicação a b * 3.14*0.82

divisão a b / ou \ 64/8 = 8\64

potência a b ^ 7^3

Nas expressões pode-se usas parênteses, a fim de digitar a expressão certa. Exemplo:

Expressão MATLAB Resultado

3 56

222 3^2-5-6/3*2 0

3 56

3 2

2

3^2-5-6/(3*2) 3

4 3 12 4*3^2+1 37

( )4 3 12 (4*3)^2+1 145

2.2 Formatação de números:

Comando do MATLAB Número Componentes

format long 35.83333333333334 16 dígitos

format short e 3.5833e+01 5 dígitos + expoente

format long e 3.583333333333334e+01 16 dígitos + expoente

format hex 4041eaaaaaaaaaab hexadecimal

format bank 35.83 2 dígitos decimais

format + + positivo, negativo ou zero

format rat 215/6 aproximação em fração

format short 35.8333 padrão

2.3 Uso de Variáveis

Pode-se usar variáveis, 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 médio

pago por cada fruta, dados: 2 maçãs à R$ 0,71 cada, 5 pêras à R$ 0,37 cada e 6

bananas à R$ 0,12 cada.

Pode-se resolver usando as variáveis indicadas no problema.

Apostila Matlab - 4

Computação para Engenharia

» 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

Para saber quais as variáveis que estão na memória, utiliza-se o comando who. Ele mostra

todas as variáveis. E para saber o que está contido em alguma variável, a digite na linha de comando,

assim:

» macas

macas =

2

Para mudar o valor de uma variável, digite na linha de comando a variável e atribua um novo

valor a ela, porém as variáveis que a utilizaram continuam com seus respectivos valores anteriores.

Exemplo:

» macas=3

macas =

3

» frutas

frutas =

13

Dica: As teclas de função, , , e servem para modificar algum erro de digitação ou

para repetir alguns comandos já escritos.

2.4 Sobre variáveis

Como o MATLAB segue a linguagem do computador, existem alguns comentários a fazer:

fruta, Fruta, FrUtA e FRUTA são variáveis diferentes;

a partir do 19º caracter do nome das variáveis é desprezado;

jamais os nomes das variáveis deverão começar com números, e sim com caracteres.

Existem algumas variáveis especiais, como:

Apostila Matlab - 5

Computação para Engenharia

Variável Valor

ans variável padrão usada para resultados

pi razão entre a circunferência e o seu diâmetro

eps Usada para números muito pequenos

inf Infinito, ou seja, 10

NaN Não é número, ou seja, 00

i e j i j 1

realmin Um número pequeno real positivo

realmax Um número grande real positivo

2.5 Outras funções básicas

Como já vimos, o comando who mostra as variáveis que estão na memória. Para retirá-las, utiliza-

se do comando clear. Note que ele é incondicional, ou seja, uma vez usado não poderá recuperar

esses dados. Ex. :

» clear macas apaga a variável macas

» clear peras bananas apaga as variáveis pêras e bananas

» clear apaga todas as variáveis da memória

Você poderá incluir comentários às variáveis, usando para isso o sinal (%). Ex.:

» macas=4 % Número de maças

macas =

4

O MATLAB simplesmente ignora a parte escrita depois do sinal (%).

Múltiplos comandos poderão ser feitos numa linha só, separados por vírgulas (,) ou ponto-e-vírgula

(;). Ex.:

» macas=4 , bananas=6 ; peras=8

macas =

4

peras =

8

O (;) não mostra os resultados da operação, enquanto que (,) os mostra.

Para interromper a execução de um comando, pressione simultaneamente Ctrl+C.

Para sair do MATLAB digite quit.

Quando a expressão for muito longa, escreva três pontos (...), pressione Enter e continue na

próxima linha.

Apostila Matlab - 6

Computação para Engenharia

3. Funções Científicas

Como nas calculadoras científicas, o MATLAB oferece funções importantes para a

Matemática, Engenharia e outras ciências. O MATLAB também trabalha com números complexos:

3.1 Funções Matemáticas Gerais

Algumas funções na matemática estão representadas nesse programa por alguns comandos.

Ex.:

» x=sqrt(2)/2

x =

0.7071

» y=asin(x)

y =

0.7854

» y_deg=y*180/pi

y_deg =

45.0000

Esses comandos envolvendo ângulos mostra que o MATLAB trabalha com os radianos, onde

2 360 . Outros exemplos:

» y=sqrt(3^2+4^2) % Clássico exemplo do triângulo retangular 3-4-5;

y =

5

» y=rem(23,4)

y =

3

» x=2.6 , y1=fix(x) , y2=floor(x) , y3=ceil(x) , y4=round(x)

x =

2.6000

y1 =

2

y2 =

2

y3 =

3

y4 =

3

Veja no capítulo 19 , comandos e funções do MATLAB. Nesta tabela abaixo, estão algumas

das mais elementares funções matemáticas:

Função do MATLAB Função Matemática

abs(x) valor absoluto ou magnitude de um número complexo

acos(x) função inversa do coseno

acosh(x) função inversa do coseno hiperbólico

angle(x) argumento de um número complexo

asin(x) função inversa do seno

asinh(x) função inversa do seno hiperbólico

atan(x) função inversa da tangente

Apostila Matlab - 7

Computação para Engenharia

Função do MATLAB Função Matemática

atan2(x,y) função inversa da tangente do quarto quadrante

atanh(x) função inversa da tangente hiperbólica

ceil(x) arredondamento para o mais próximo de

conj(x) conjugado do número complexo

cos(x) função coseno

cosh(x) função coseno hiperbólico

exp(x) exponencial: e x

fix(x) arredondamento para o mais próximo de 0

floor(x) arredondamento para o mais próximo de

imag(x) parte imaginária de um número complexo

log(x) logaritmo natural

log10(x) logaritmo decimal

real(x) parte real de um número complexo

rem(x,y) resto da divisão x/y

round(x) arredondamento para o mais próximo inteiro

sign(x) retorna o sinal de um número. Ex.: sign(1.2)=1, sign(-23.4)=-1e sign(0)=0

sin(x) função seno

sinh(x) função seno hiperbólico

sqrt(x) raiz quadrada

tan(x) função tangente

tanh(x) função tangente hiperbólica

3.2 Números Complexos

Para ilustrar os números complexos, consideremos a equação de 2º grau ax bx c2 0 ,

onde:

x xb b ac

a1 2

4

2

2

,

Se a = 1, b = 5 e c = 6, a solução usando MATLAB será:

» a=1 ; b=5 ; c=6 ;

» x1=(-b+sqrt(b^2-4*a*c))/(2*a)

x1 =

-3

» x2=(-b-sqrt(b^2-4*a*c))/(2*a)

x2 =

-2

» 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

Apostila Matlab - 8

Computação para Engenharia

As últimas duas linhas de comando serviram para confirmar o resultado. Agora, imaginemos

com a = 1, b =4, c = 13, a solução será:

x1 2 3 1

x2 2 3 1

O 1 não é um número real, portanto o resultado da solução será um número complexo,

com a parte real igual a 2 e a imaginária igual a 3 ou -3.

A solução 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 são números complexos da forma “a+bi”, sendo “a” a parte real, “b” a parte

imaginária e i 1. Na engenharia, o j é mais usado, sendo esse aceito pelo MATLAB. A seguir,

algumas operações com números 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

Nos últimos 2 exemplos, o MATLAB considerou que 1 1 j . Outras operações:

» c6=(c1+c2)/c3

c6 =

-7.7782 - 4.49497i

Apostila Matlab - 9

Computação para Engenharia

» checagem=i^2 % 1 12

!

checagem =

-1.0000 + 0.0000i

» checagem=real(checagem) % mostra a parte real.

checagem =

-1

Nesses exemplos finais, consideremos a forma polar e retangular:

M M e a bij

onde:

M a b 2 2

arctan ba

a M cos

b M sen

O MATLAB faz a conversão da forma polar em retangular, ou vice-versa usando as funções

REAL, IMAG, ABS e ANGLE:

» 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

Dica: Note que ABS fornece o valor absoluto num número real e magnitude dum número

complexo; e ANGLE fornece o ângulo em radianos.

Apostila Matlab - 10

Computação para Engenharia

4. Ajuda On-line

Como o MATLAB é baseado em comandos, há a possibilidade do esquecimento de algum

comando ou de sua função. Existem três possibilidades de consultar a ajuda: o comando help do

MATLAB, o comando lookfor e usando o menu help.

4.1 O comando HELP

O comando help é muito simples, basta escrever help <tópico> que mostra, se existir, as

funções deste tópico. 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 função da raiz quadrada. Agora,

» help cows

cows not found

significa que nada existe sobre cows.

Escrevendo o comando help assim, sozinho, aparece uma lista de tópicos de ajuda. Ex.:

» help

HELP topics:

matlab:general - General purpose commands.

matlab:ops - Operators and special characters.

matlab:lang - Language constructs and debugging.

matlab:elmat - Elementary matrices and matrix

manipulation.

matlab:speemat - Specialized matrices.

matlab:elfun - Elementary math functions.

matlab:specfun - Specialized math functions.

matlab:matfun - Matrix functions - numerical linear

algebra.

matlab:datafun - Data analysis and Fourier transform

functions.

matlab:polyfun - Polynomial and interpolation functions.

matlab:funfun - Function function - nonlinear numerical

methods.

matlab:sparfun - Sparce matrix functions.

matlab:plotxy - Two dimensional graphics.

matlab:plotxyz - Three dimensional graphics.

matlab:graphics - General purpose graphics functions.

matlab:color - Color control and lighting model

functions.

matlab:strfun - Character string functions.

matlab:iofun - Low-level file I/O functions.

Apostila Matlab - 11

Computação para Engenharia

Toolbox:local - Local function libraly.

Toolbox:sigsys - Signals and Systems Toolbox.

Toolbox:symbolic - Symbolic Math Toolbox.

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

Este exemplo acima serve para você que não se lembra do comando utilizado do MATLAB.

4.2 O comando LOOKFOR

O comando lookfor é usado para ajuda sobre temas. Ex.:

» lookfor complex

CONJ Complex conjugate.

IMAG Complex imaginary part.

REAL Complex real part.

CDF2RDF Complex diagonal form to real block diagonal form.

RSF2CSF Real block form to complex diagonal form

CPLXPAIR Sort numbers into complex conjugate pairs.

Importante: Este comando serve apenas para temas, não para comandos.

Apostila Matlab - 12

Computação para Engenharia

5. Operações de arranjos

Muitas operações matemáticas se baseiam em arranjos. Nos próximos tópicos, falaremos sobre

essa ferramenta da matemática no MATLAB.

5.1 Arranjos simples

Para construir um arranjo é bem simples, basta escrever os números dentro de colchetes,

separados por espaços 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 through 7

0 0.3090 0.5874 0.8090 0.9511 1 0.9511

Columns 8 through 11

0.8090 0.5878 0.3090 0.0000

Importante: Quando o arranjo contiver um número complexo, deve escrevê-lo sem espaços,

pois o MATLAB, como qualquer outra linguagem de computação, interpretará como elementos

deferentes dentro do arranjo. Ex.:

» z=[1 -2i 3 4 5+6i]

ans =

1 -2i 3 4 5+6i

5.2 Endereçamento de arranjos

No MATLAB, cada elemento do arranjo pode ser acessado, através da sua ordem. Por

exemplo, x(1) é o endereço 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 notação:

» 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

Apostila Matlab - 13

Computação para Engenharia

» x(2:2:7) % Do segundo, em intervalos de 2, até o sétimo elemento

ans =

0.3124 0.9425 1.5708

Veja que neste último, o sétimo elemento não apareceu, pois não 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 Construção de arranjos

Arranjos na matemática são usados tipicamente para progressões aritméticas e geométricas,

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 0.9425 1.2566 1.5708 1.8849

Columns 8 through 11

2.1991 2.5133 2.8274 3.1416

» x=linspace(0,pi,11)

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

No primeiro caso, a notação (0:0.1:1) criou um arranjo que começa em 0 e vai até 1 em

intervalos de 0,1. No segundo caso, a função linspace foi usada para criar X. Sua sintaxe é:

linspace(primeiro_elemento,ultimo_elemento,numero_de_elementos)

Existe também a função logspace, semelhante a e esta última, porém com expoentes. Ex.:

» logspace(0,2,11)

ans =

Columns 1 through 7

1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489

Columns 8 through 11

25.1189 39.8107 53.0957 100.0000

Ele criou um arranjo que começa em 100 até102

, contendo 11 valores. Sua sintaxe é:

logspace(primeiro_expoente,ultimo_expoente,numero_de_expoentes)

Há outras formas de criar um arranjo. Nos próximos exemplos, citaremos alguns deles:

» a=1:5,b=1:2:9

a =

1 2 3 4 5

Apostila Matlab - 14

Computação para Engenharia

b =

1 3 5 7 9

» c=[b a]

c =

1 3 5 7 9 1 2 3 4 5

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

d =

1 3 5 1 0 1

5.4 Operações Arranjo-Escalares

Pode-se fazer adição, subtração, multiplicação e divisão 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 Operações Arranjo-Arranjo

Podemos fazer a adição, subtração, multiplicação e divisão de arranjos, aplicados elemento-a-

elemento (Primeiro com o primeiro, Segundo com o segundo, ...). Ex.:

» a,b

a =

1 2 3 4 5

b =

1 3 5 7 9

» a+b

ans =

2 5 8 11 14

» ans-b

ans =

1 2 3 4 5

» 2*a-b

ans =

1 1 1 1 1

Para a multiplicação e divisão de arranjos, requer a inclusão de um ponto. Ex.:

» a.*b

ans =

1 6 15 28 45

» a./b

ans =

1.0000 0.6667 0.6000 0.5714 0.5556

Apostila Matlab - 15

Computação para Engenharia

» b.\a

ans =

1.0000 0.6667 0.6000 0.5714 0.5556

» a*b

??? Error using ==> *

Inner matrix dimensions must agree.

A divisão destes dois arranjos, feitos sem o ponto, será considerada uma operação de matrizes.

Ex.:

» a/b

ans =

0.5758

» a\b

ans =

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0.2000 0.6000 1.0000 1.4000 1.8000

Pode-se fazer também potências entre arranjos, arranjos e escalares, mas deve-se usar o ponto.

Será feita elemento-a-elemento. Ex.:

» a,b

a =

1 2 3 4 5

b =

1 3 5 7 9

» a.^2

ans =

1 4 9 16 25

» 2.^a

ans =

2 4 8 16 32

» b.^a

ans =

1 9 125 2401 59049

» b.^(a-3)

ans =

1.0000 0.3333 1.0000 7.0000 81.0000

5.6 Orientação dos Arranjos

Nos exemplos anteriores, o arranjo era linear, ou seja, ocupava várias colunas e apenas uma

linha. Para mudar essa orientação para arranjo em colunas, ou seja, ocupar várias linhas e apenas uma

coluna, deve-se, em vez de colocar os números com espaços, colocar o ponto-e-vírgula entre os

elementos. Ex.:

Apostila Matlab - 16

Computação para Engenharia

» 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 criação em

linhas, e depois usar o operador “transpose” ( ' ). Ex.:

» a=1:5

a =

1 2 3 4 5

» b=a'

b =

1

2

3

4

5

Agora, para os números complexos, o operador “transpose” faz a transposição com o seu

conjugado. Ex.:

» d=a+i*a

d =

Columns 1 through 4

1.0000+1.0000i 2.0000+2.0000i 3.0000+3.0000i 4.0000+4.0000i

Column 5

5.0000+5.0000i

» e=d'

e =

1.0000 - 1.0000i

2.0000 - 2.0000i

3.0000 - 3.0000i

4.0000 - 4.0000i

5.0000 - 5.0000i

Para resolver esta situação, utilizaremos o ponto (.'). Ex.:

» f=d'

f =

1.0000 + 1.0000i

2.0000 + 2.0000i

3.0000 + 3.0000i

4.0000 + 4.0000i

5.0000 + 5.0000i

5.7 Outras funções

Lembra-se do comando who? Ele mostrava as variáveis locadas na memória. No caso dos

arranjos, o comando whos nos dá uma informação adicional.

» whos

Name Size Elements Bytes Density Complex

a 1 by 5 5 40 Full No

Apostila Matlab - 17

Computação para Engenharia

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 operações básicas de arranjo:

Operações de Arranjos

a a a a n 1 2 , b b b bn 1 2 e c escalar

Adição com escalar a c a c a c a cn 1 2

Multiplicação com escalar a c a c a c a cn* * * * 1 2

Adição de arranjos a b a b a b a bn n 1 1 2 2

Multiplicação de arranjos a b a b a b a bn n.* * * * 1 1 2 2

Divisão de arranjos a b a b a b a bn n./ / / / 1 1 2 2

a b a b a b a bn n.\ \ \ \ 1 1 2 2

Potência em arranjos a.^ c a 1 ^ c a2 ^ c a n ^ c

c.^ a c ^ a c1 ^ a c2 ^ a n

a.^ b a 1 ^ b a1 2 ^ b a n2 ^ b n

Apostila Matlab - 18

Computação para Engenharia

6. Representações Gráficas Simples:

6.1 Comandos Plot e Plot3

Embora o MATLAB possua uma capacidade gráfica grande, nós iremos mostrar as linhas

gerais. Consideremos a função y sen x , e 0 2 x . 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 função:

» plot(x,y)

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Agora desenharemos a função seno e a função coseno no mesmo gráfico:

» z=cos(x);

» plot(x,y,x,z)

Apostila Matlab - 19

Computação para Engenharia

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Vamos agora desenhar a função seno, e indicar os pontos que definiram a curva usando o

símbolo +.

» plot(x,y,x,y,'+')

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Desenhamos agora o gráfico sen x x cos :

» plot(y,z)

Apostila Matlab - 20

Computação para Engenharia

-1 -0.5 0 0.5 1-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

No próximo exemplo ilustraremos a identidade 2 2sen sen cos . Desenharemos

a função usando linhas pontilhadas:

» plot(x,y,x,2*y.*z,'--')

» grid % Linhas de grade do gráfico

» xlabel('Variável Independente X') % Nome do eixo dos X

» ylabel('Variável Dependente') % Nome do eixo dos y

» title('2sin(x)cos(x)=sin(2x)') % Título do gráfico

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Variável Independente X

2sin(x)cos(x)=sin(2x)V

a

r

i

á

v

e

l

D

e

p

e

n

d

e

n

t

e

Analisaremos agora o exemplo de gráficos em 3-D:

» plot3(y,z,x),grid

Apostila Matlab - 21

Computação para Engenharia

02

46

8

-1

-0.5

0

0.5

1-1

-0.5

0

0.5

1

A seguir, uma tabela com as cores e formas da função plot:

Símbolo Cores Símbolo Linha

y Amarelo . ponto

m margenta o círculo

c cyan x marca-x

g verde + cruz

b azul * estrela

w branco : linha de pontos

k preto -. traço e ponto

-- traço e traço

Com a função text você pode inserir no gráfico algum texto. Ex.:

» y=sin(x);

» z=cos(x);

» plot(x,y,x,z)

» grid

» xlabel('Variável Independente X')

» ylabel('Variável Dependente')

» title('Curvas seno e coseno')

» text(2.5,0.7,'sin(x)')

Já o comando gtext faz o seu cursor virar em forma de cruz, para que você coloque o

argumento da função no gráfico. Ex.:

» gtext('cos(x)')

Apostila Matlab - 22

Computação para Engenharia

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Variável Independente X

V

a

r

i

á

v

e

l

D

e

p

e

n

d

e

n

t

e

Curvas seno e coseno

sin(x)

cos(x)

O comando axis manipula o gráfico, como o eixo de coordenadas e a escala. A tabela abaixo

há uma descrição do comando:

Comando Descrição

axis([xmin xmax ymin ymax]) Indica o máximo e o mínimo valores usados para os eixos. Se

escreve na forma de vetor.

axis auto

axis ('auto')

Retorna a escala normal, com xmin=min(x), xmax=max(x),

etc.

axis(axis) Faz com que a escala seja feita nos correntes limites, só que a

função hold será ligada, e os subsequentes plots usarão o

limite dessa primeira.

axis xy

axis ('xy')

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.

axis square

axis ('square')

Faz com que o corrente plot seja feito de modo que a figura

seja um quadrado.

axis equal

axis ('equal')

Faz com que as escalas sejam iguais para os eixos.

axis normal

axis ('normal')

Desliga quando axis for square e/ou equal.

axis off

axis ('off')

Tira os eixos da figura. Também os labels, mas deixa o título e

os feitos pelos comandos text e gtext

axis on

axis ('on')

Retorna os eixos, juntamente com os labels e o grid.

Note: Se você quiser usar, no comando axis, mais de um argumento, usa-se os argumentos

separados por vírgulas, dentro dos parênteses. Ex.:

» axis('square','equal')

6.2 Outros comandos

loglog é semelhante ao plot, porém seus eixos estão em escalas logarítmicas.

semilogx é semelhante ao plot, porém seu eixo-x usa a escala logarítmica, enquanto o eixo-y usa

a escala linear.

semilogy é semelhante ao plot, porém seu eixo-y usa a escala logarítmica, enquanto o eixo-x usa

a escala linear.

Apostila Matlab - 23

Computação para Engenharia

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)')

Polar Plot of sen(2t)cos(2t)

0.1

0.2

0.3

0.4

0.5

30

210

60

240

90

270

120

300

150

330

180 0

Usa-se o comando bar e o comando stair para utilizar o gráfico através de colunas. Ex.:

» x=-2.9:0.2:2.9;

» y=exp(-x.*x);

» bar(x,y)

» title('Curva feita pela função BAR')

-5 0 50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1Curva feita pela função BAR

» stairs(x,y) » title('Curva feita pela função STAIR')

Apostila Matlab - 24

Computação para Engenharia

-3 -2 -1 0 1 2 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1Curva feita pela função STAIR

Apostila Matlab - 25

Computação para Engenharia

7. Arquivos de comandos

Você pode colocar uma série de comandos a serem executados no MATLAB criando um

arquivo. Este conterá a extensão (m). O termo M-file será usado para arquivos de comandos.

Para criar um arquivo, escolha New no menu File e selecione M-file. Abrirará 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 diretório corrente, emitindo um sinal se não achá-lo. A seguir,

alguns comandos que você necessitará para a manipulação desses arquivos:

Comando Descrição

what Retorna a lista de todos os M-files no diretório corrente.

dir Lista todos os arquivos do corrente diretório.

ls Semelhante ao dir

type test Mostra o conteúdo do arquivo test.m

delete test Apaga o arquivo test.m

cd path Entra no diretório definido em path

chdir path Semelhante ao cd path

cd Mostra o nome do diretório corrente

chdir Semelhante a cd

pwd Semelhante a cd

Apostila Matlab - 26

Computação para Engenharia

8. Texto

O MATLAB pode trabalhar com texto. Para determinar uma variável que contenha texto, deve

digitá-lo entre apóstrofes ('). Ex.:

» t=’Você conhece o MATLAB?'

Pode também pegar trechos das variáveis:

» u=t(6:12)

u =

conhece

Pegar de ordem inversa:

» u=t(12:-1:6)

u =

ecehnoc

Escrever em diferentes linhas:

» v=['Glória dos desportos nacional'

'Oh! Internacional'

'Que eu vivo a exaltar.']

v =

Glória dos desportos nacional

Oh! Internacional

Que eu vivo a exaltar.

Você também tem acesso aos valores ASCII das letras, através da função abs:

» s='ABCDEF'

s =

ABCDEF

» m=abs(s)

m =

65 66 67 68 69 70 71

» m=s+0

m =

65 66 67 68 69 70 71

Para voltar aos caracteres normais, usa-se a função 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

Apostila Matlab - 27

Computação para Engenharia

Finalmente, vamos converter em minúsculas os caracteres adicionando a diferença de ambos:

» n=s+'a'-'A'

n =

97 98 99 100 101 102 103

» setstr(n)

ans =

abcdef

Apostila Matlab - 28

Computação para Engenharia

9. Operações Relacionais e Lógicas

Como operações tradicionais na Matemática, o MATLAB suporta operações relacionais e

lógicas. Seus comandos, operadores e funções retornam valores Verdadeiro/Falso para as questões

propostas.

Para demonstrar esses valores, o MATLAB utiliza-se da seguinte notação: zero (0) para

retorno falso e diferente para retorno verdadeiro. Normalmente, quando a operação é puramente lógico,

ele retorna o valor 1. Se não, retorna o valor da variável.

9.1 Operadores Relacionais

Operadores relacionais do MATLAB para a comparação:

Operador Descrição

< menor que <= menor ou igual que > maior que >= maior ou igual que == igual que ~= diferente que

Para demostrar as operações relacionais, vamos utilizar de 2 arranjos. Note que é elemento-a-

elemento. Ex.:

» A=1:9,B=9-A

A =

1 2 3 4 5 6 7 8 9

B =

8 7 6 5 4 3 2 1 0

» tf=A>4 %Em quais posições os valores de A são maiores que 4?

tf =

0 0 0 0 1 1 1 1 1

» tf=A==B %Em quais as posições os valores de A são 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 5.0000 4.0000 3.0000 2.0000

Columns 8 through 9

1.0000 0.0000

Para B=0, soma-se o valor de eps, aproximadamente 2,2e-16 (ou 2 2 10 16, ). Isto é

importante para funções onde tem um ponto de descontinuidade da curva. Ex.:

» x=(-3:3)/3

x =

-1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000

» sin(x)./x

Apostila Matlab - 29

Computação para Engenharia

Warning : Divide by zero.

ans =

0.8475 0.9276 0.9816 NaN 0.9816 0.9276 0.8475

A função sin(x)/x é indefinida para o ponto x=0, pois sin(0)/0=0/0. O MATLAB retornará

NaN (não é número). 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 Lógicos:

Operador Descrição

& AND (e)

| OR (ou)

~ NOT (não)

No capítulo 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 1 1 1 1 1

Agora usando operadores lógicos:

» tf=~(A>4) % não maiores que 4.

tf =

1 1 1 1 0 0 0 0 0

» tf=(A>2)$(A<6) % Maiores que 2 e menores que 6.

tf =

0 0 1 1 1 0 0 0 0

Um exemplo para criar uma função descontínua:

» x=linspace(0,10,100); % criar os pontos.

» y=sin(x); % aplicar a função 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')

Apostila Matlab - 30

Computação para Engenharia

0 2 4 6 8 100

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

X

Z= f(x)

O sinal Descontínuo

O MATLAB tem outras funções relacionais e lógicas, algumas mencionadas no quadro

abaixo:

Função Descrição

xor(x,y) 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.

any(x) 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.

all(x) Retorna um se todos os elementos de um vetor x forem não-nulos. Retorna um

se todos os elementos da diagonal da matriz x forem diferentes de zero.

isnan(x) Retorna um se x contiver NaNs (Não-números).

isinf(x) Retorna um se x contiver Infs (Infinito).

finite(x) Retorna um se x contiver valores finitos.

A seguir, o quadro de preferências do MATLAB, com os elementos na ordem de prioridade,

ou seja, cresce de importância de cima para baixo:

Tabela de preferência de Operadores

^ .^ ' .'

* / \ .* ./ .\

+ - ~ +(unary) -(unary)

: > < >= <= == ~=

| &

Apostila Matlab - 31

Computação para Engenharia

10. Álgebra Linear e Matrizes

10.1 Funções Básicas

O Material desta seção assume que você já tenha algum conhecimento anterior em álgebra

linear. Na matemática, qualquer sistema linear de equações pode ser transformada numa operação de

matrizes. Ex.:

João comprou uma maçã, duas bananas, três pêras e pagou R$ 3,66. Maria comprou

quatro maças, cinco bananas e seis pêras e pagou R$ 8,04. José comprou sete maçãs,

oito bananas, nenhuma pêra e pagou R$ 3,51. Quanto custa cada fruta?

Para resolver o problema, determinaremos x1 para o preço das maças, x2 para bananas e x3

para pêras. Temos:

x x x1 2 32 3 3 66 ,

4 5 6 8 041 2 3x x x ,

7 8 0 3541 2 3x x x ,

Agora, transformada em matrizes, temos:

1 2 3

4 5 6

7 8 0

3 66

8 04

3 54

1

2

3

x

x

x

,

,

,

A x b

Para a multiplicação de matrizes, usa-se o operador *. Estão a solução 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 soluções, verificamos se o determinante da matriz A é diferente de zero:

» det(A)

ans =

27

Então a solução será x A b 1, ou seja:

» x=inv(A)*b

x =

0.2500

0.2200

0.9900

Apostila Matlab - 32

Computação para Engenharia

A função inv faz a matriz inversa A 1, mas tem uma outra forma:

» x=A\b

x =

0.2500

0.2200

0.9900

Quando as equações são homogêneas, isto é, iguais a zero, usa-se a notação x=pinv(A)*b. A

solução baseia-se no pseudo-inversão, que calcula as possibilidades de outras soluções além da nula.

10.2 Outras Funções:

A.' é a transposta da matriz A. A transposta conjugada da matriz A é escrita A'.

d=eig(A) retorna autovalores associados da matriz quadrática A.

[V,D]=eig(A) retorna autovetores na matriz V e autovalores na diagonal da matriz D.

Nota: [a,b] retorna duas variáveis a e b da função.

[L,U]=lu(A) retorna a fatoração LU da matriz quadrática A.

[Q,R]=qr(A) retorna a fatoração 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 número condicional da matriz A.

norm(A) retorna a norma da matriz A. 1=normal, 2-normal, F-normal, e -normal são

suportados.

poly(A) escreve o polinômio característico associado a matriz A.

Apostila Matlab - 33

Computação para Engenharia

11. Manipulação de Matrizes

No MATLAB, pode-se fazer a manipulação das matrizes usando as posições 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 % Elemento nulo na terceira linha, terceira coluna.

A =

1 2 3

4 5 6

7 8 0

Quando um elemento está fora das dimensões da matriz, cria-se colunas iguais a zero. Ex.:

» A(2,6)=1

A =

1 2 3 0 0 0

4 5 6 0 0 1

7 8 9 0 0 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

» 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

2

3

4

5

6

7

8

9

Apostila Matlab - 34

Computação para Engenharia

» A(:,2)=[] % remover segunda coluna.

A =

1 3

4 6

7 9

11.1 Outras Funções

[l,c]=size(A) retorna o número de linhas para l e número de colunas para c.

flippud(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-horário.

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 números rândomicos de zero até um.

eye(m,n) cria uma matriz identidade m por n.

Apostila Matlab - 35

Computação para Engenharia

12. Estruturas de comandos

Estruturas de comandos Descrição Exemplos

for x = arranjo

comandos

end

As repetições dos

comandos serão

feitas desde a

primeira coluna

do arranjo

(matriz ou

seqüência) até a

última.

» 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

while expressao

comandos

end

As repetições dos

comandos serão

feitas enquanto a

expressão for

verdadeira ou

não nula.

» num=0;EPS=1;

» while (1+EPS)>1

EPS=EPS/2;

num=num+1;

end

» num

num =

53

» EPS=2*EPS

EPS =

2.2204e-16

if expressao

comandos

end

A simples

estrutura if-end

executa os

comandos

enquanto a

expressão for

verdadeira ou

não nula

» a=10;cost=a*25

cost =

250

»if a>5 %20% de desconto

cost=(1-20/100)*cost;

end

» cost

cost =

200

if expressao

comandos se expressao verdad.

else

comandos se expressao falso

end

A estrutura If-

else-end dividida

em duas partes.

A primeira parte

será executada se

a expressão for

verdadeira ou

não nua. A

segunda parte se

a expressão for

falsa ou nula.

» a=10;b=a-1;

» if a>b

a=b;

else

a=b+1;

end

» a,b

a =

9

b =

9

if expressao

comandos se expressao verdad.

elseif expressao1

comandos se expressao1 verdad.

elseif expressao2

comandos se expressao2 verdad.

A estrutura geral

do If-else-end.

Executa os

comandos

associados as

expressões, se

» a=10;b=a-1;c=a+1;

» if a>b

a=b;

elseif a<c

a=b+1;

else

Apostila Matlab - 36

Computação para Engenharia

Estruturas de comandos Descrição Exemplos

.

.

.

else

comandos se expressao falso

end

elas são

verdadeiras.

c=a;

end

» a,b,c

a =

10

b =

9

c =

11

break termina a

execução das

repetições for e

while.

» 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

Apostila Matlab - 37

Computação para Engenharia

13. Funções para arquivos M-File

13.1 Funções Básicas

Muitas das funções do MATLAB são , na verdade, arquivos M-files. Você poderá criar seus

arquivos utilizando de um editor de texto que grave no formato ASCII, com extensão M. Para você ter

uma idéia de como fazer um, utilizaremos a função 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 função será

executada.

Existe uma variável, chamada nargin, que serve para indicar os parâmetros que não são feitos

pelos usuários. Confuso? A função 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

% between x1 and x2.

%

% See also LOGSPACE and :.

% Copyright (c) 1989 by the MathWorks, Inc.

if nargin == 2

n = 100;

end

y = [d1+(0:n-2)*(d2-d1)/(n-1) d2];

Se não existe valor para n, por exemplo, x=linspace(0,pi), linspace executará seus

comandos com n igual a 100.

Apostila Matlab - 38

Computação para Engenharia

14. Análise de Dados

14.1 Funções Básicas

Por convenção, a entrada de dados é feita através de matrizes, orientado a colunas. Por

exemplo, vamos verificar a temperatura em três cidades durante 31 dias. Executando o M-file contém a

variável temps, criado por você num editor de texto:

» temps

temps =

12 8 18

15 9 22

12 5 19

14 8 23

12 6 22

11 9 19

15 9 15

8 10 20

19 7 18

12 7 18

14 10 19

11 8 17

9 7 23

8 8 19

15 8 18

8 9 20

10 7 17

12 7 22

9 8 19

12 8 21

12 8 20

10 9 17

13 12 18

9 10 20

10 6 22

14 7 21

12 5 22

13 7 18

15 10 23

13 11 24

12 12 22

A variável temps contém as temperaturas mais altas do dia. Cada coluna representa uma

cidade. Para visualizar os dados, vamos desenhá-los:

» d=1:31; % número de dias num mês.

» plot(d,temps)

» xlabel('Dias do mês'),ylabel('Celcius')

» title('As altas temperaturas de três cidades')

Apostila Matlab - 39

Computação para Engenharia

A função mean dá a média das, nesse caso, das temperaturas das cidades. Ex.:

» avg_temp=mean(temps)

avg_temp =

11.9677 8.2258 19.8710

Note que ela fez por colunas, e não o total. Se você estiver interessado no total, aplique a

função de novo. Ex.:

» avg_avg=mean(avg_temp)

avg_avg =

13.3548

Para saber o máximo valor das temperaturas, usa-se a função max. Ex.:

» max_temp=max(temps)

max_temp =

19 12 24

Para saber a posição dos valores máximos, é fácil. Basta acrescentar uma variável à resposta.

Ex.:

» [max_temp,x]=max(temps)

max_temp =

19 12 24

x =

9 23 30

O mesmo e aplica para os valores mínimos, só que a função é min. Ex.:

Apostila Matlab - 40

Computação para Engenharia

» min_temp=min(temps)

min_temp =

8 5 15

» [min_temp,n]=min(temps)

min_temp =

8 5 15

n =

8 3 7

Agora, para saber o desvio padrão, usa-se a função std. Ex.:

» s_dev=std(temps)

s_dev =

2.5098 1.7646 2.2322

A função diff nos dá a variação 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 funções:

Funções Estatísticas Descrição

corrcoef(x) Coeficientes correlatos.

cov(x) Matrix covariante.

cumprod(x) Produto cumulativo das colunas.

cumsum(x) Soma acumulativa das colunas.

Apostila Matlab - 41

Computação para Engenharia

Funções Estatísticas Descrição

diff(x) Diferença entre elementos.

hist(x) Gráfico de historiogramas.

mean(x) Média dos valores das colunas.

median(x) Mediana dos valores das colunas.

prod(x) produto dos elementos nas colunas.

rand(x) Distribuição uniforme de números randômicos.

randn(x) Distribuição normal de números randômicos.

sort(x) Colocação nas colunas em ordem crescente

std(x) Desvio padrão das colunas.

sum(x) Soma dos elementos de cada coluna.

Apostila Matlab - 42

Computação para Engenharia

15. Polinômios

15.1 Raízes

Para se saber as raízes de um polinômio, isto é, achar a solução quando o polinômio for igual a

zero, é preciso colocar os coeficientes do polinômio em forma de vetor. Por exemplo, o polinômio

x x x4 312 25 116 , para o MATLAB, é assim:

» p=[1 -12 0 25 116]

p =

1 -12 0 25 116

Note que o coeficiente zero do termo x2 foi incluído. Sem ele, o MATLAB entenderia como

um polinômio de 3º grau, e não de 4º grau, como é a nossa. Agora, para saber as raízes, basta usar a

função roots. Ex.:

» r=roots(p)

r =

11.7473

2.7028

-1.2251 + 1.4672i

-1.2251 - 1.4672i

Agora, vamos fazer o inverso. Nós temos as raízes e queremos saber o polinômio que a gerou.

Para isso usamos a função poly. Ex.:

» pp=poly(r)

pp =

1.0e+002 *

Columns 1 through 4

0.0100 -0.1200 -0.0000 0.2500

Column 5

1.1600 + 0.0000i

» pp=real(pp) % Suprimir a parte imaginária

pp =

1.0000 -12.0000 0.0000 25.0000 116.0000

Como o MATLAB trabalhou com números complexos e métodos numéricos, é normal que o

resultado da parte imaginária seja fruto do erro desses métodos. Basta simplificar, suprimindo a parte

imaginária, para se ter os coeficientes para a função real.

15.2 Multiplicação

Para a multiplicação de polinômios, o MATLAB utiliza a função conv (Convolução de dois

arranjos). Considere o produto de dois polinômios a x x x x 3 22 3 4 e

b x x x x 3 24 9 16:

» a=[1 2 3 4]; b=[1 4 9 16];

» c=conv(a,b)

c =

Apostila Matlab - 43

Computação para Engenharia

1 6 20 50 75 84 64

O resultado é c x x x x x x x 6 5 4 3 26 20 50 75 84 64. Para multiplicar mais

de dois polinômios, repete o uso de conv.

15.3 Adição

Para somar dois ou mais polinômios, pode-se fazer uma simples adição de arranjos, ou seja, a

soma de a x e b x é:

» d=a+b

d =

2 6 12 20

O resultado é d x x x x 2 6 12 203 2.

15.4 Divisão

No MATLAB, a divisão de polinômios é feita através da função deconv. Ex.:

» [q,r]=deconv(c,b) % c/b

q =

1 2 3 4

r =

0 0 0 0 0 0 0

O resultado de b dividir c é um polinômio quociente “q” e resto em “r”.

15.5 Derivada

Para a derivação de um polinômio, o MATLAB tem a função 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 Gráfico da função

Para se desenhar a função, precisa-se, primeiramente criar um arranjo de pontos e escrever a

função em forma de vetor:

» x=linspace(-1,3);p=[1 4 -7 -10];

A função polyval retorna os pontos da função:

» y=polyval(p,x);

» plot(x,y),title('y(x)=x^3+4x^2-7x-10'),xlabel('x'),ylabel('y(x)')

Apostila Matlab - 44

Computação para Engenharia

-1 -0.5 0 0.5 1 1.5 2 2.5 3-15

-10

-5

0

5

10

15

20

25

30

35y(x)=x^3+4x^2-7x-10

x

y(x)

Apostila Matlab - 45

Computação para Engenharia

16. Ajustamento de curva e Interpolação

Em numerosas áreas, precisa-se do uso de uma equação para se resolver um problema. O que

fazer se nós só estivermos com os dados na mão? Nesse caso, o uso do ajustamento e interpolação

poderá nos facilitar a essa resolução.

16.1 Ajustamento de curvas

No MATLAB, a função polyfit pode resolver quando você tem os dados e as que

transformar em polinômios. A ilustração abaixo nos permite ver o uso dessa função. 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 polinômio 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 polinômio de grau 2. Ex.:

» n=2;

» p=polyfit(x,y,n)

p =

-9.8108 20.1293 -0.0317

O resultado do nosso ajustamento é: 98108 201293 003172. . .x x . Vamos agora

verificar se o ajustamento está certo:

» 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

quadrática')

0 0.2 0.4 0.6 0.8 1-2

0

2

4

6

8

10

12

x

y

Ajustagem para uma curva quadrática

16.2 Interpolação Unidimensional

Para ilustrar uma interpolação unidimensional, Vamos considerar esse exemplo:

Apostila Matlab - 46

Computação para Engenharia

Fazendo parte de um projeto científico, Lisa coletou as informações sobre as

temperaturas durante um dia, num período 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')

0 2 4 6 8 10 125

10

15

20

25

30

35Temperaturas

Hora

G

r

a

u

s

C

e

l

c

i

u

s

Para estimar a temperatura numa determinada hora, usamos a função 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

Apostila Matlab - 47

Computação para Engenharia

Para se ter uma precisão 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

25.3820

A Interpolação 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 gráficos.

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')

0 2 4 6 8 10 125

10

15

20

25

30

35Temperaturas

Hora

G

r

a

u

s

C

e

l

c

i

u

s

Apostila Matlab - 48

Computação para Engenharia

17. Análise Numérica

17.1 Plotagem

Para você plotar uma função, pode-se usar a função, escrita na forma de texto, e depois utilizar

a função fplot. A ilustração abaixo vai indicar como se faz isso:

» f='2*exp(-x).*sin(x)';

» fplot(f,[0 8]) % Função f no intervalo de 0 a 8

» title(f),xlabel('x')

0 1 2 3 4 5 6 7 8-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.72*exp(-x).*sin(x)

x

17.2 Minimização e Maximização

Para saber um pouco mais sobre isso, vamos utilizar a função passada. Note que o valor

máximo está perto de xmá x 0 7, e o valor mínimo está perto de xmin 4. Analiticamente, esses

pontos estão em xmá x 4 785. e xmin 5 4 393 . . Escrevendo um arquivo M-file num

editor de texto conveniente, temos:

% ex_fmin.m

fn='2*exp(-x)*sin(x)'; % Função por min

xmin=fmin(fn,2,5) % No intervalo de 2 a 5

emin=5*pi/4-min % Erro

x=xmin; % Definir x para avaliar fn

ymin=eval(fn) % avaliar xmin

fx='-2*exp(-x)*sin(x)'; % Função por max : note o sinal

xmax=fmin(fx,0,3) % No intervalo de 0 a 3

emax=pi/4-xmax % Erro

x=xmax; % define x para avaliar fn

ymax=eval(fn) % avaliar xmax

Executando este M-file, teremos:

» ex_fmin

xmin =

3.9270

Apostila Matlab - 49

Computação para Engenharia

emin =

1.4523e-06

ymin =

-0.0279

xmax =

0.7854

emax =

-1.3781e-05

ymax =

0.6448

Percebe-se, pelo gráfico, que esses valores condizem com a realidade.

17.3 Determinação do Zero

Determinaremos o zero da função

y

x x

1

3 0 01

1

9 0 046

2 2. .

que, pelo

gráfico abaixo, deve estarem torno de x=1.2

Para o MATLAB determinar o zero dessa função, escolhemos a função do MATLAB,

chamada fzero. A ilustração abaixo descreve o uso dessa função:

» xzero=fzero(f,1.2) % Ver o zero perto de 1,2

xzero =

1.2995

17.4 Integração

Determinaremos a área da função

y

x x

1

3 0 01

1

9 0 046

2 2. .

no

intervalo e -1 a 2. Existem duas formas de se fazer isso: A aproximação trapezoidal, representado pela

função trapz, em quadrados, representados pelas funções 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 iria dar diferente. No primeiro os intervalos eram maiores que no segundo,

portanto mais sujeito a erros.

» area=quad(‘y’,-1.2) % Área entre -1 e 2

area =

26.3450

» area=quad8(‘y’,-1,2)

area =

26.3450

Apostila Matlab - 50

Computação para Engenharia

17.5 Diferenciação

Vamos utilizar o exemplo da curva de ajustamento para a utilização do ajustamento de curva.

» 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)

p =

-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

quadrática')

0 0.2 0.4 0.6 0.8 1-2

0

2

4

6

8

10

12

x

y

Ajustagem para uma curva quadrática

Para nós ficarmos sabendo da equação da derivada, utiliza-se a função polyder. Ex.:

» pd=polyder(p)

pd =

-19.6217 20.1293

A derivada de f x x x 9 8108 20 1293 0 03172, , , é

df x

dxx

( ), , 19 9217 20 1293. Nosso próximo passo é plotar o gráfico:

» z=polyval(pd,xi);

» plot(xi,z)

» xlabel(‘X’),ylabel(‘dy/dx’)

» title(‘Derivada do Ajustamento da curva polinomial’)

Apostila Matlab - 51

Computação para Engenharia

0 0.2 0.4 0.6 0.8 10

5

10

15

20

25

X

dy /dx

Deriv ada do Ajustamento da curv a poly nomial

Agora, se você quiser saber a derivada ponto a ponto, usa-se um artifício com a função diff.

Ex.:

» dy=diff(y)./diff(x);

» xd=x(1:length(x)-1);

» plot(xd,dy)

» title(‘Aproximação da derivada usando a função DIFF’)

» ylabel(‘dy/dx’),xlabel(‘X’)

0 0.2 0.4 0.6 0.8 1-5

0

5

10

15

20

25

30Aproximação da derivada usando a função DIFF

dy/dx

X

17.6 Equações Diferenciais

Para resolver uma equação diferencial, vamos nos utilizar do seguinte exemplo:

d x

dtx

dx

dtx

2

2

21 0

Fazendo a resolução diferencial, dividindo ela em duas variáveis:

Apostila Matlab - 52

Computação para Engenharia

y x e ydx

dt1 2

portanto,

dy

dty

dy

dty y

1

2

2

1

2

11

Para resolver esse sistema, as funções ode23 e ode45 são usadas. Você terá que escrever a

função 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 equação diferencial, a solução é:

» [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(‘Solução Van der Pol para mu=2’)

0 5 10 15 20 25 30-4

-3

-2

-1

0

1

2

3

4

Tempo, segundos

Y(1)

e

Y(2)

Solução Van der Pol para mu=2

A sintaxe do ode23 e ode45 é a mesma. Ex.:

[t,x]=ode23(‘xprime’,t0,tf,x0)

Apostila Matlab - 53

Computação para Engenharia

onde “xprime” é a função, “t0” tempo inicial, “tf” tempo final e “x0” é condição inicial.

Apostila Matlab - 54

Computação para Engenharia

18. Referência a Sinais e Sistemas

18.1 Função BODE

Objetivo Plotar a resposta em freqüência bode.

Comandos [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)

Descrição O bode retira a resposta em freqüência, magnitude e fase, de um sistema de tempo contínuo

LTI. Bode plots são usados para análise das propriedades do sistema, incluindo ganho

marginal, fase marginal, ganho D.C, largura de faixa de banda, rejeição a perturbação e

estabilidade. Se não houver os argumentos de saída ([mag,phase,w]), ele desenha os

resultados.

Bode(a,b,c,d) produz a série de bode plots, uma para cada entrada do sistema

contínuo Estado-Espaço:

x Ax Bu

y Cx Du

A série de freqüências é automaticamente determinada.

Bode(a,b,c,d,iu) produz bode plots para a entrada simples iu para todas as saídas do

sistema para a série de freqüências 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 função de transferência

G s num s den s( ) ( ) ( ) onde num e den contém os coeficientes dos polinômios das

potências descendentes de s.

Bode(a,b,c,d,iu,w) ou bode(num,den,w) usa um suprimento de freqüências no

vetor w. O vetor w especifica as freqüências em radianos/sec em que a resposta bode será

calculada. A função logspace cria vetores gerais de freqüências para dados espaçados

logaritmicamente iguais em freqüências.

Se houver argumentos de saída:

[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 freqüenciais de um sistema nas matrizes mag, phase e w. Não será

desenhado na tela. As matrizes mag e phase contém as respostas de magnitude e fase de

um sistema com valores freqüências w. mag e phase contém nas colunas as saídas 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 mag 20 10*log ( ) .

Exemplo Plote as respostas (magnitude e fase)da função de transferência cuja expressão é:

Apostila Matlab - 55

Computação para Engenharia

G ss

s s( )

1

22

» num=[1 1];den=[1 1 2];

» bode(num,den)

» title(‘Bode plot’)

10-1

100

101

-30

-60

-90

-120

-150

0

Frequency (rad/sec)

P

h

a

s

e

d

e

g

10-1

100

101-20

-10

0

10

Frequency (rad/sec)

G

a

i

n

dB

Bode plot

Procure logspace, dbode, nyquist

Referências [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 Função NYQUIST

Objetivo Plotar a resposta em freqüências Nyquist

Comandos [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)

Descrição nyquist calcula a resposta Nyquist em freqüências de um sistema de tempo contínuo LTI.

Nyquist plots são usados para a análise das propriedades do sistema, incluindo ganho

marginal, fase marginal e estabilidade.

nyquist determina a estabilidade de um sistema. Fazendo o Nyquist plot da função de

transferência “open-loop” G s( ) , e a função de transferência “close-loop”:

G sG s

G scl ( )( )

( )

1

é estável se o Nyquist plot cercar o ponto 1 0j exatamente no tempo P na direção anti-

horária, onde P é um número de pólos instáveis “open-loop”.

nyquist(a,b,c,d) produz a série de Nyquist plots, um para cada saída e entrada

combinada de um sistema contínuo estado-espaço:

x Ax Bu

y Cx Du

A série de freqüências é automaticamente determinada.

Nyquist(a,b,c,d,iu) produz Nyquist plots para a entrada simples iu para todas as

saídas do sistema para a série de freqüências determinadas automaticamente. O escalar iu é

indexado as entradas de um sistema e especificada qual entrada será usada na resposta

Apostila Matlab - 56

Computação para Engenharia

Nyquist.

Nyquist(num,den) desenha o nyquist plots de uma função de transferência

G s num s den s( ) ( ) ( ) onde num e den contém os coeficientes dos polinômios das

potências descendentes de s.

Nyquist(a,b,c,d,iu,w) ou Nyquist(num,den,w) usa um suprimento de

freqüências no vetor w. O vetor w especifica as freqüências em radianos/sec em que a

resposta Nyquist será calculada. A função logspace cria vetores gerais de freqüências

para dados espaçados logaritmicamente iguais em freqüências.

Se houver argumentos de saída:

[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. Não será

desenhado na tela. As matrizes re e im contém as partes real e imaginária da resposta de

freqüências de um sistema com valores freqüências w. re e im contém nas colunas as

saídas para cada elemento no w:

Exemplo Plote a resposta Nyquist do sistema:

H ss s

s s( )

2 5 1

2 1

2

2

» num=[2 5 1];den=[1 2 3];

» nyquist(num,den)

» title('Nyquist Plot')

0 0.5 1 1.5 2 2.5 3 3.5 4-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Real Axis

Imag

Axis

Nyquist Plot

Procure dnyquist, bode, logspace

Referências [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.3 Função RLOCUS

Objetivo Localizar as raízes.

Comando r=rlocus(num,den)

r=rlocus(num,den,k)

r=rlocus(a,b,c,d)

Apostila Matlab - 57

Computação para Engenharia

r=rlocus(a,b,c,d,k)

Descrição rlocus calcula a localização de raízes de um sistema SISO. É usado para estudo para o

estudo dos efeitos da variação do ganho o sistema de localização de pólos, providenciando

informações indiretas sobre o tempo e respostas de freqüências. A função de transferência

“close-loop”, dados a função de transferência g s( ) e o compensador k f s* ( ) , é:

h sg s

k g s f s

g s

q s( )

( )

* ( ) * ( )

( )

( )

1

Quando não possui argumentos de saída, a função rlocus plota o resultado na tela.

rlocus serve para sistemas contínuos ou discretos no tempo.

rlocus(num,den)plota a localização das raízes para

g s knum s

den s( )

( )

( ) 1

e o vetor ganho k é automaticamente determinada. Vetores num e den especifica os

coeficientes dos numeradores e denominadores em função de potências de s ou z:

num s

den s

num s num s num nn

den s den s den nd

nn nn

nd nd

( )

( )

( ) ( ) ( )

( ) ( ) ( )

1 2

1 2

1 2

1 2

rlocus(a,b,c,d) plota a localização das raízes de tempo contínuo ou discreto num

sistema estado-espaço 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 contém o ganho para as raízes “closed-loop” são computadas.

Quando possui argumentos de saída:

[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 localizações das raízes complexas. Cada linha

de uma matriz corresponde a um ganho do vetor k. Pode-se plotar usando o comando

plot(r,’x’).

Exemplo Plote a localização das raízes do sistema:

H ss s

s s( )

2 5 1

2 3

2

2

» num=[2 5 1];

» den=[1 2 3];

» rlocus(num,den);

» title('Root Locus')

Apostila Matlab - 58

Computação para Engenharia

-2 -1 0 1 2

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5

Real Axis

Imag

Axis

Root Locus

Procure place, lqr

Apostila Matlab - 59

Computação para Engenharia

19. Tabela de Referências

Principais Categorias de Funções MATLAB

color Controle de cores e luminosidade.

datafun Análise de dados e funções da transformação de Fourier.

demos Demonstrações e exemplos.

elfun Funções de matemática elementar.

elmat Manipulação de matrizes e matriz elementares.

funfun Função Função - Métodos Numéricos não-lineares.

general Comandos gerais.

graphics Comandos gerais de gráficos.

iofun Funções de baixo nível de arquivos I/O.

lang Construção de linguagem e depuração.

matfun Funções matriciais - Álgebra linear.

ops Operadores e caracteres especiais.

plotxy Gráficos 2D.

plotxyz Gráficos 3D.

polyfun Funções polinomiais e interpolares.

sparfun Funções de matriz esparsa.

specfun Funções especiais da Matemática.

specmat Matrizes especiais.

sounds Funções de processamento de som.

strfun Funções envolvendo caracteres.

19.1 Comandos Gerais

Controle de Comandos e Funções

demo Executa demos.

expo Executa programa de demonstração MATLAB EXPO

help Documentação on-line.

info Informação sobre MATLAB e The MathWorks.

lasterr Última mensagem de erro gerada.

lookfor Procura palavra-chave entre os itens de ajuda.

path Controle de procura de caminhos do MATLAB.

subscribe Torna aprovado um usuário MATLAB no MathWorks.

type Mostra o conteúdo de um arquivo M-File.

ver Versão do MATLAB e ToolBox corrente.

version Número de versão do MATLAB corrente.

what Lista arquivos *.M, *.MAT e *.MEX.

whatsnew Mostra arquivos LEIA-ME para MATLAB e ToolBox

which Arquivos e funções locais.

Controle de Variáveis e Estação de Trabalho

clear Limpa variáveis e funções da memória.

disp Mostra matrizes ou textos.

length Comprimento do vetor.

load Recupera variáveis do disco.

pack Incorpora memória da estação de trabalho.

save Salva variáveis da estação de trabalho para o disco.

size Tamanho de matrizes.

who Lista variáveis correntes.

whos Lista variáveis correntes em longos formatos.

Trabalhando com Arquivos e Ambiente Operacional

cd Muda o diretório de trabalho corrente.

cedit Coloca parâmetros em comandos editados(somente UNIX).

delete Apaga arquivos.

diary Salva sessão de textos de MATLAB.

dir Lista o diretório.

getenv Obtém o valor de ambiente.

hostid Número de identificação do servidor anfitrião MATLAB.

ls Lista o diretório.

matlabroot Diretório raiz da instalação MATLAB.

pwd Mostra o corrente diretório de trabalho.

tempdir Nome do sistema do diretório temporário.

tempname Único nome para arquivo temporário.

terminal Obtém o tipo de terminal gráfico.

unix Executa comando do sistema operacional; retornando o resultado.

! Executa comando do sistema operacional.

Controle de Janelas do Windows

clc Limpa janela de comando.

echo Repete comandos para dentro de arquivos de texto.

Apostila Matlab - 60

Computação para Engenharia

Controle de Janelas do Windows

format Formato de saída do número.

home Envia o cursor para a base, casa

more Controle da listagem de informações em janelas de comando.

Iniciando e Saindo do MATLAB

matlabrc Executa arquivos *.M.

quit Fecha o MATLAB.

startup Executa arquivos *.M quando MATLAB é invocado.

19.2 Operadores e Caracteres Especiais

Operadores e Caracteres Especiais

+ Adição.

- Subtração.

Multiplicação matricial.

.* Multiplicação de vetorial.

Potência matricial.

.^ Potência vetorial.

kron Produto de tensor Kronecker.

\ Corte ou divisão à esquerda.

/ Corte ou divisão à direita.

./ Divisão vetorial.

: Dois pontos.

( ) Parênteses.

[ ] Colchetes.

. Ponto Decimal.

. . Diretório raiz.

. . . Continuação.

, Vírgula.

; Ponto-e-vírgula.

% Comentário, observação.

! Ponto de exclamação.

Transposição.

.’ Transposição Vetorial.

= Indicação.

== Igualdade.

< > Operadores relacionais.

& E lógico.

| OU lógico.

~ NÃO lógico.

xor EXCLUSIVO OU lógico.

Funções Lógicas

all Verdadeiro se todos elementos do vetor forem verdadeiros.

any Verdadeiro se algum elemento do vetor for verdadeiro.

exist Verifica se existe variáveis ou funções.

find Encontra índices dos elementos não nulos.

finite Verdadeiro para elementos finitos.

isempty Verdadeiro para matrizes vazias.

ishold Verdadeiro se hold estiver ligado.

isieee Verdadeiro para IEEE pontos flutuantes aritméticos.

isinf Verdadeiro para elementos infinitos.

isletter Verdadeiro para caracteres alfabéticos.

isnan Verdadeiro para um não número.

isreal Verdadeiro se todos elementos da matriz forem reais.

issparse Verdadeiro para matrizes esparsas.

isstr Verdadeiro para texto.

19.3 Construção de Linguagem e Depuração

MATLAB como uma Linguagem de Programação

eval Executa funções em formato texto no MATLAB.

feval Executa funções especificadas nas variáveis texto.

function Adiciona novas funções.

global Define variáveis globais.

nargchk Número de validade de argumentos colocados.

Controle de Fluxo

break Execução terminal de um Loop.

else Usado com if.

elseif Usado com if.

end Termina com o campo de ação de comandos for, while e if.

Apostila Matlab - 61

Computação para Engenharia

Controle de Fluxo

error Mostra mensagem e aborta funções.

for Repete declarações num especificado número de vezes.

if Executa declarações condicionais.

return Retorna para funções invocadas.

while Repete declarações num indefinido número de vezes.

Entrada Interativa

input Prompt para entrada de usuário.

keyboard Declara o teclado como se fosse um arquivo texto.

menu Menu geral de escolhas para entrada do usuário.

pause Espera pela resposta do usuário.

Depuração

dbclear Remove ponto de parada.

dbcont Execução resumida.

dbdown Muda o contexto local da estação de trabalho.

dbquit Sai do modo debug.

dbstack Lista quem chamou quem.

dbstatus Lista todos pontos de parada.

dbstep Executa uma ou mais linhas.

dbstop Coloca um ponto de parada.

dbtype Lista arquivo *.M com número de linhas.

dbup Muda o contexto local da estação de trabalho.

19.4 Manipulação de Matrizes

19.4.1 Matriz Elementar

Matrizes Elementares

eye Matriz Identidade.

gallery Teste de matrizes - condição matricial e autovalores.

linspace Vetor linearmente esparsado.

logspace Vetor logaritmicamente esparsado.

meshgrid Matrizes X e Y para plotes 3-D.

ones Matriz de elementos unitários.

rand Distribui uniformemente números ao acaso.

randn Distribui normalmente números ao acaso.

zeros Matriz de elementos nulos.

: Vetor regularmente esparsado.

Variáveis e Constantes Especiais

ans Mais recente resposta.

computer Escrita computacional.

eps Relativa precisão no ponto-flutuante.

flops Operações enumeradas de ponto flutuante.

i,j Unidade imaginária.

inf Infinito.

NaN Não é número.

nargin Número de entradas de argumentos da função.

nargout Número de saídas de argumentos da função.

pi 3.1415926535897 ...

realmax Maior número de ponto flutuante.

realmin Menor número de ponto flutuante.

Data e Hora

clock Relógio.

cputime Tempo decorrido em unidades de CPU.

date Calendário.

etime Função do tempo decorrido.

tic, toc Funções de tempo decorrido.

Manipulação Matricial

diag Cria ou extrai diagonais.

fliplr Vira matriz para direita/esquerda.

flipud Vira matriz para cima/baixo.

isreal Verdadeiro para matriz contendo somente elementos reais.

reshape Muda tamanho.

rot90 Rotaciona a matriz em 90 graus.

tril Extrai a parte inferior triangular.

triu Extrai a parte superior triangular.

: Índice para dentro da matriz, rearranja matriz.

Apostila Matlab - 62

Computação para Engenharia

19.4.2 Matrizes Especiais

Matrizes Especiais

compan Matriz usada em cálculo de polinômios.

hadamard Matriz Hadamard.

hankel Matriz Hankel.

hilb Matriz Hilbert.

invhilb Matriz inversa de Hilbert.

magic Matriz quadrada cujas as somas das linhas e colunas são iguais.

pascal Matriz Pascal.

rosser Problema clássico de teste de simetria dos autovalores.

toeplitz Matriz Toeplitz.

vander Matriz Vandermonde.

wilkinson Autovalores obtidos para a matriz de Wilkinson

19.5 Funções Matemáticas

19.5.1 Funções de Matemática Elementar

Funções de Matemática Elementar

abs Valor absoluto.

acos Inversa do coseno.

acosh Inversa do coseno hiperbólico.

acot Inversa da cotangente.

acoth Inversa da cotangente hiperbólica.

acsc Inversa da cosecante.

acsch Inversa da cosecante hiperbólica.

angle Ângulo de fase.

asec Inversa da secante.

asech Inversa da secante hiperbólica

asin Inversa do seno.

asinh Inversa do seno hiperbólico.

atan Inversa da tangente.

atanh2 Inversa da tangente no quarto quadrante.

atanh Inversa da tangente hiperbólica.

ceil Inteiro próximo a mais infinito.

conj Conjugado de um número complexo.

cos Coseno.

cosh Coseno hiperbólico.

cot Cotangente.

coth Cotangente hiperbólica.

csc Cosecante.

csch Cosecante hiperbólico.

exp Exponencial.

fix Inteiro próximo a 0.

floor Inteiro próximo a .

gcd Grande divisor comum.

imag Parte imaginária de um número complexo.

lcm Menor múltiplo comum.

log Logaritmo natural.

log10 Logaritmo comum.

real Parte real de um número complexo.

rem Resto da divisão.

round Inteiro mais próximo.

sec Secante.

sech Secante hiperbólica.

sign retorna o sinal de um número. Ex.: sign(1.2)=1, sign(-23.4)=-1e sign(0)=0

sin Seno.

sinh Seno hiperbólico.

sqrt Raiz quadrada.

tan Tangente.

tanh Tangente hiperbólica.

19.5.2 Funções Especializadas da Matemática

Funções de Matemática Especializada

bessel Funções Bessel.

besseli Funções Bessel modificada de primeiro tipo.

besselj Funções Bessel de primeiro tipo.

besselk Funções Bessel modificada de segundo tipo.

bessely Funções Bessel de segundo tipo.

beta Funções beta.

betainc Funções beta incompleta.

betaln Logaritmo da função beta.

ellipj Funções elípticas de Jacobian.

ellipke Integral elíptica completa.

erf Função de erro.

erfc Função de erro complementar.

Apostila Matlab - 63

Computação para Engenharia

Funções de Matemática Especializada

erfcx Escala complementar da função de erro.

erfinv Função inversa de erro.

expint Integral exponencial.

gamma Função gama.

gammainc Função gama incompleta.

gammaln Função logarítmica de gama.

legendre Funções associadas Legendre.

log2 Separação de números de ponto flutuante.

pow2 Escala de números de ponto flutuante.

rat Aproximação racional.

rats Saída racional.

19.6 Funções Matriciais - Álgebra Numérica Linear

Análise Matricial

cond Número da condição matricial.

det Determinante.

etree Árvore eliminatória de uma matriz.

norm Matriz ou vetor normal.

null Espaço nulo.

orth Ortogonalização.

rcond Estimação condicional recíproca LINPACK.

rank Número de linhas ou colunas linearmente independentes.

rref Reduzir linhas da forma ECHELON.

subspace Ângulo entre dois sub-espaços.

trace Soma dos elementos diagonais.

Equações Lineares

chol Fatorização CHOLESKY.

inv Matriz inversa.

lscov Últimos quadrados na presença de covariance.

lu Fatores de eliminações Gausianas.

nnls Matrizes quadradas não negativas.

pinv Pseudo-inversa.

qr Decomposição ortogonal-triangular

\ and / Solução de equação linear

Autovalores e Valores Singulares

balance Escala diagonal para melhorar precisão de autovalores.

cdf2rdf Forma da diagonal complexa para real forma de bloco diagonal.

eig Autovalores e autovetores.

hess Forma Hessenberg.

poly Polinômio característico.

qz Autovalores gerais.

rsf2csf Forma de diagonal de bloco para forma de diagonal complexa.

schur Decomposição Schur.

svd Decomposição de valor singular.

Funções Matriciais

exp. Matriz exponencial.

funm Avaliação geral da função matricial.

logm Matriz logarítmica.

sqrtm Matriz de raízes quadradas.

Funções de Baixo Nível

qrdelete Apaga colunas de fatorização QR.

qrinsert Insere colunas para dentro da fatorização QR.

19.7 Análise de Dados e as Funções da Transformada de Fourier

Operações Básicas

cumprod Produto cumulativo de elementos.

cumsum Soma acumulativa de elementos.

max Maior componente.

mean Média ou valor significativo.

median Valor médio.

min Menor componente.

prod Produto de elementos.

sort Organiza em ordem ascendente.

std Desvio padrão.

sum Soma de elementos.

trapz Integração numérica usando método trapezoidal.

Apostila Matlab - 64

Computação para Engenharia

Diferenças Finitas

del2 Ponto cinco discreto Laplaciano.

diff Função diferencial e derivada aproximada.

gradient Gradiente aproximado.

Correlação

corrcoef Coeficientes correlacionados.

cov Matriz covariante.

Filtro e Convolução

conv Convolução e multiplicação polinomial.

conv2 Convolução Bidimensional.

deconv Deconvolução e divisão polinomial.

filter Filtro digital unidimensional.

filter2 Filtro digital bidimensional.

Transformada de Fourier

abs Magnitude.

angle Ângulo de fase.

cplxpair Organiza números para dentro de um par conjugado complexo.

fft Discreta transformada de Fourier.

fft2 Discreta transformada de Fourier bidimensional.

fftshift Muda a freqüência zero para centro do espectro.

ifft Inversa discreta da transformada de Fourier.

ifft2 Inverso bidimensional da discreta transformada de Fourier.

nextpow2 Próxima força maior de 2.

unwrap Remove o ângulo de fase saltando através de limites de 360°

Funções Vetoriais

cross Produto de vetores.

dot Produto de ponto vetorial.

19.8 Funções Polinomiais e Interpolares

Polinômios

conv Multiplicação polinomial.

deconv Divisão polinomial.

poly Construção polinomial com raízes especificas.

polyder Derivada polinomial.

polyeig Solução polinomial para problemas de autovalores.

polyfit Ajuste polinomial para dados.

polyval Cálculo do grau polinomial.

polyvalm Cálculo do grau polinomial com argumentos matriciais.

residue Expansão de fração parcial (resíduos).

roots Encontra raízes polinomiais.

Interpolação de Dados

griddata Rede de dados.

interp1 Interpolação unidimensional.

interp2 Interpolação bidimensional.

interpft Interpolação unidimensional usando método FFT.

19.9 Função - Função

Função - Função - Métodos Numéricos não lineares

fmin Função minimizada de uma variável.

fmins Função minimizada de várias variáveis.

fplot Funções de plotagem.

fzero Encontra zero da função de uma variável.

ode23 Resolve equações diferenciais pelo método de baixa ordem.

ode 45 Resolve equações diferenciais pelo método de alta ordem.

quad Avaliação numérica da integral pelo método de baixa ordem.

quad8 Avaliação numérica da integral pelo método de alta ordem.

19.10 Funções Matriciais Esparsadas

Matrizes Elementares Esparsadas

spdiags Matriz esparsada formada por diagonais.

speye Matriz identidade esparsada.

sprandn Matriz esparsada casual.

sprandsym Matriz esparsada simetricamente casual.

Apostila Matlab - 65

Computação para Engenharia

Tudo para Conversão Esparsada

find Encontra índices de entradas não nulas.

full Converte matriz esparsa em matriz completa.

sparse Cria matriz esparsa de não nulos e índices.

spconvert Converte para formato externo de matriz esparsa.

Trabalhando com Entradas Não nulas de Matrizes Esparsas

issparse Verdadeiro se matriz é esparsa.

nnz Número de entradas não nulas.

nonzeros Entradas não nulas.

nzmax Soma de distribuição armazenada para entradas.

spalloc Destina memória para entradas não nulas.

spfun Aplica função para entradas não nulas.

spones Substitui entradas não nulas por um.

Visualizando Matrizes Esparsadas

gplot Plota gráfico, como em "teoria gráfica".

spy Visualiza estrutura esparsada.

Reordenando Algoritmos

colmmd Mínima extensão da coluna.

colperm Ordena colunas baseadas em contador não nulo.

dmperm Decomposição Dulmage-Mendelsohn.

randperm Permutação aleatória de vetores.

symmmd Mínima extensão simétrica.

symrcm Ordenando a reversa de Cuthill-McKee.

Norma, Número Condicional e Linha

condest Estimativa 1 - condição de norma.

normest Estimativa 2 - norma.

sprank Linha estrutural.

Miscelânea

spaugment Sistema ampliado da última forma quadrática.

spparms Estabelece parâmetros para rotinas de matrizes esparsadas.

symbfact Análise de fatorização simbólica.

19.11 Gráficos Bidimensionais

Gráficos Elementares X-Y

fill Desenha polígonos bidimensionais preenchidos.

loglog Plota em escala logarítmica.

plot Plota em escala linear.

semilogx Plota em escala linear, somente com o eixo x logaritmizado.

semilogy Plota em escala linear, somente com o eixo y logaritmizado.

Gráficos Especiais X-Y

bar Plota em barras gráficas.

comet Plota em comet animado.

compass Plota em compass.

errorbar Plota em erros de barra.

feather Plota em Feather.

fplot Plota funções.

hist Plota em historiogramas.

polar Plota em coordenadas polares.

rose Plota em ângulos historiogrâmicos.

stairs Plota em Stairstep.

stem Plota em Stem de seqüências discretas de dados.

Anotações Gráficas

grid Rede de linhas.

gtext Lugar do texto com o mouse.

legend Adiciona legenda para plotar.

text Anotação de texto.

title Título do gráfico.

xlabel Classificação do eixo X.

ylabel Classificação do eixo Y.

Conversão de Sistemas de Coordenadas

cart2pol Coordenadas cartesianas para coordenadas polares.

Apostila Matlab - 66

Computação para Engenharia

Conversão de Sistemas de Coordenadas

pol2cart Coordenadas polares para coordenadas cartesianas.

Miscelânea

zoom Zoom de aproximação (in) e afastamento (out).

19.12 Gráficos Tridimensionais

Comandos de Linha e Área Preenchida

fill3 Desenha polígonos 3-D preenchidos em espaço 3-D.

plot3 Plota linhas e pontos em espaço 3-D.

Contorno e outras Plotagens Bidimensionais de dados Tridimensionais

clabel Classifica a elevação do plot de contorno.

comet3 Plot de comet animado.

contour Plot de contorno.

contour3 Plot de contorno tridimensional.

contourc Cálculo do plot de contorno (usado pelo contorno).

image Mostra imagem.

imagesc Dados em escala e mostra como imagem.

pcolor Plota um tabuleiro de damas.

quiver Plot estremecido.

slice Plot de um pedaço volumétrico.

Plotagem de Superfície e Malha

mesh Malha da superfície em 3-D.

meshc Combinação de plot de malha/contorno.

meshz Malha 3-D com plano zero.

slice Visualização de plot volumétrico.

surf Superfície 3-D sombreada.

surfc Combinação de plot de superfície/malha.

surfl Superfície 3-D sombreada com luminosidade.

waterfall Plota superfícies. Semelhante ao comando mesh.

Aparência Gráfica

axis Escala e aparência de eixo.

caxis Pseudocores de eixo escalar.

colormap Tabela de cores.

hidden Retirada da linha de malha oculta .

shading Sombreamento de cores.

view Especificação do ponto de vista de um gráfico 3-D.

viewmtx Visualização de matrizes transformadas.

Anotação Gráfica

grid Rede de linhas.

legend Adiciona legenda no plot.

text Anotação.

title Título do gráfico.

xlabel Classificação do eixo X.

ylabel Classificação do eixo Y.

zlabel Classificação do eixo Z para plots 3-D.

Objetos 3-D

cylinder Cilindro comum.

sphere Esfera comum.

Conversão de Sistemas de Coordenadas

cart2sph Coordenadas cartesianas para polar.

sph2cart Coordenadas polares para cartesianas.

19.13 Funções Gráficas

Criação e Controle de Janelas

capture Captura tela de uma figura atual (somente UNIX).

clf Limpa figura atual.

close Fecha figura.

figure Cria figura (janela gráfica).

gcf Dá mobilidade a figura atual.

graymon Determina as propriedades padrão da figura para monitores monocromáticos.

Apostila Matlab - 67

Computação para Engenharia

Criação e Controle de Janelas

newplot Determina os eixos corretos e a figura para novos gráficos.

refresh Redesenha a atual figura da janela.

whitebg Altera figura para cores de fundo.

Criação e Controle de Eixos

axes Cria eixos em posições arbitrárias.

axis Controla escala e aparência de eixos.

caxis Controla pseudocores de escala de eixos.

cla Limpa eixos atuais.

gca Torna eixo manuseável.

hold Controla o gráfico atual.

ishold Verdadeiro se o controle estiver ligado.

subplot Cria eixos em várias posições.

Objetos Gráficos Manuseáveis

axes Cria eixos.

figure Cria janela de figura.

image Cria imagem.

line Cria linha.

patch Cria mancha.

surface Cria superfície.

text Cria texto.

uicontrol Cria controle de interface do usuário.

uimenu Cria menu de interface do usuário.

Operações Gráficas Manuseáveis

delete Deleta objeto.

drawnow Começa eventos gráficos pendentes.

findobj Encontra objetos com propriedades específicas.

gco Torna um objeto manuseável.

get Dá as propriedades de um objeto.

reset Refaz as propriedades de um objeto.

rotate Rotaciona um objeto.

set Faz as propriedades do objeto.

Caixas de Diálogos

uigetfile Recupera nome do arquivo para abrir uma caixa de diálogo.

uiputfile Recupera nome do arquivo para escrever numa caixa de diálogo.

Impressão e Armazenagem

orient Mostra orientações do papel.

print Imprime gráficos ou salva-os em arquivos.

printopt Configuração local da impressora.

Filmes e Animações

getframe Mostra estrutura do filme.

movie Roda as estruturas do filme gravado.

moviein Inicializa a memória da estrutura do filme.

Miscelâneas

ginput Entrada do gráfico pelo mouse.

ishold Retorna ao estado conservado.

rbbox Caixa de borracha para região selecionada.

waitforbuttonpress Espera pelo pressionamento de uma tecla sobre a figura.

19.14 Controle de Cores e Funções de Luminosidade

Controle de Cores

caxis Pseudocores da escala de eixos.

colormap Tabela de consulta de cores.

shading Modo de sombreamento de cores.

Mapeamento de Cores

bone Escala cinza com uma matiz azul.

contrast Acentuação de contraste em escala cinza.

cool Sombra de cyan e magenta.

copper Matiz linear usando tonalidades cooper.

flag Alternando vermelho, branco, azul e preto.

Apostila Matlab - 68

Computação para Engenharia

Mapeamento de Cores

gray Escala de cinza linear.

hsv Valor de saturação de tonalidade.

hot Preto-vermelho-amarelo-branco.

jet Variação do HSV. (sem wrap)

pink Pasteuriza sombras de rosa.

prism Prisma de cores.

white Tudo em branco monocromático.

Funções relacionadas com Mapeamento de Cores

brighten Brilho ou escuridão.

colorbar Mostra mapeamento de cores como escala de cores.

hsv2rgb Conversão de HSV para RGB.

rgb2hsv Conversão de RGB para HSV.

rgbplot Plota o mapeamento de cores.

spinmap Gira o mapeamento de cores.

Luminosidade

diffuse Reflexo difuso.

specular Reflexo refletido.

surfl Superfícies 3-D sombreadas com luminosidade.

surfnorm Superfícies normais.

19.15 Funções Sonoras

Funções Gerais de Som

saxis Som em eixos escalares.

sound Converte vetor para som.

SPARCstation - Funções Sonoras Específicas

auread Lê arquivos de som .au

auwrite Escreve arquivos de som .au

lin2mu Conversão de linear para mu-law.

mu2lin Conversão de mu-law para linear.

Funções de Som .wav

wavread Carrega MS-Windows 3.1 .wav no formato de arquivo de som.

wavwrite Salva MS-Windows 3.1 .wav no formato de arquivo de som.

19.16 Funções de Texto

Gerais

abs Converte texto para valores numéricos.

blanks Cria texto de vazios.

deblank Remove arrastando espaços brancos e nulos de textos.

eval Executa frases com expressão MATLAB.

findstr Encontra uma letra em um texto.

isstr Verdadeiro para texto.

setstr Converte valores numéricos para texto.

str2mat De texto matricial para letras individuais.

string Sobre caracteres texto no MATLAB.

strrep Procura e substitui texto.

strtok Primeiro toma como texto.

Comparação Frasal

isletter Verdadeiro para caracter alfabético.

lower Converte texto para uma caixa menor.

strcmp Compara textos.

upper Converte texto para uma caixa maior.

Conversão de Texto para Número

int2str Converte inteiro para texto.

num2str Converte número para texto.

sprintf Converte número para texto sob um controle formatado.

sscanf Converte texto para número sob um controle formatado.

str2num Converte texto para número.

Conversão de Hexadecimal para Número

dec2hex Converte inteiro decimal para texto hexadecimal.

Apostila Matlab - 69

Computação para Engenharia

Conversão de Hexadecimal para Número

hex2dec Converte texto hexadecimal para inteiro decimal.

hex2num Converte texto hexadecimal para IEEE número de ponto flutuante.

19.17 Funções de Arquivos I/O de Baixo Nível

Abrindo e Fechando Arquivo

fclose Fecha arquivo.

fopen Abre arquivo.

I/O Desformatada

fread Lê dado binário de arquivo.

fwrite Escreve dado binário para arquivo.

I/O Formatada

fgetl Lê linha de arquivo, descarta novas linhas de caracteres.

fgets Lê linha de arquivo, permanece novas linhas de caracteres.

fprintf Escreve dado formatado para arquivo.

fscanf Lê dado formatado para arquivo.

Posição em Arquivos

feof Teste para fim de linha.

ferror Pergunta a situação do erro de arquivo I/O.

frewind Refaz arquivo.

fseek Mostra o indicador da posição do arquivo.

ftell Determina o indicador da posição do arquivo.

Conversão de Texto

sprintf Escreve dados formatados para letras.

sscanf Lê letras sob um controle formatado.

Arquivos Especiais de I/O

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

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

uigetfile Recupera nome de arquivo para abrir caixa de diálogo.

uiputfile Recupera nome de arquivo para escrever numa caixa de diálogo.

wk1read Lê um arquivo Lotus 1-2-3 .wk1

wk1write Escreve um arquivo Lotus 1-2-3 .wk1

20. Tabela de Referência a Matemática Simbólica.

Cálculo

diff Diferencial ou Derivada.

int Integral.

cacobian Matriz Jacobian

taylor Espanção em série de Taylor.

Álgebra Linear

charpoly Polinômio característico simbólico.

colspace Básico para espaço em colunas.

determ Determinante da matriz simbólica.

eigensys Autovalores e autovetores simbólicos.

inverse Matriz inversa Simbólica.

jordan Forma canônica Jordan.

linsolve Solução para equações lineares simultâneas.

nullspace Base para nullspace.

singvals Valores matriciais simbólicos e vetores singulares.

svdvpa Valor singular de precisão variável.

transpose Matriz transposta simbólica.

Simplificações

allvalues Achar todos os valores para a expressão RootOF.

collect Acumular.

expand Expandir.

factor Fator.

simple Buscar para a forma “shortest”.

simplify Simplificar.

symsum Série de soma simbólica.

Apostila Matlab - 70

Computação para Engenharia

Solução para Equações

compose Composição funcional.

dsolve Solução simbólica para equações diferenciais.

finverse Inversão funcional.

solve Solução simbólica para equações algébricas.

Precisão variável aritmética

digits Tornar a variável exata.

vpa Precisão de aritmética variável.

Operação com Expressões Simbólicas e Matrizes

latex Representação LaTeX para saídas simbólicas.

horner Representação polinomial Nested.

numden Numerador e denominador.

numeric Converte forma numérica em matriz simbólica.

poly2sym Polinômio simbólico para vetor coeficiente.

pretty Imprime numa forma bonita a expressão simbólica.

subs Substituto da sub-expressão.

sym Cria ou modifica matriz simbólica.

sym2poly Converte matriz simbólica em forma numérica.

symadd Adiciona expressões simbólicas.

symdiv Divide expressões simbólicas.

symmul Multiplica expressões simbólicas.

symop Operações simbólicas.

sympow Potência de expressões simbólicas.

symrat Aproximação simbólica racional.

symsize Tamanho de uma matriz simbólica.

symsub Subtrai expressões simbólicas.

symvar Determina variáveis simbólicas.

Aplicações Pedagógicas e Gráficas

ezplot Fácil para usar a função plotter.

funtool Função calculadora.

rsums Soma Riemann

Transformações e Transformadas Inversas

fourier Transformada integral de Fourier.

invfourier Inversa de transformada integral de Fourier.

invlaplace Inversa da transformada de Laplace.

invztrans Inversa da transformada z.

laplace Transformada de Laplace.

ztrans Transformada de z.

21. Referência a Sistemas e Sinais

Construção de um Modelo

append Anexar sistemas dinâmicos.

cloop Fechar “loops” do sistema.

feedback Conectar sistemas “Feedback”.

rmodel Gerar um modelo contínuo randômico.

series Conecção de sistemas em série.

ssselect Selecionar subsistemas para uma sistema grande.

Conversão de Modelos

c2d Conversão de contínua para discreta.

c2dm Conversão de contínua para discreta usando método.

ss2tf Conversão de estado-espaço para função de transferência

ss2zp Conversão de estado-espaço para zero-pólos.

tf2ss Conversão de função de transferência para estado-espaço.

tf2zp Conversão de função de transferência para zero-pólos.

zp2tf Conversão de zero-pólos para função de transferência.

zp2ss Conversão de zero-pólos para estado-espaço.

Realização de Modelos

canon Conversão de sistemas para forma canônica.

Apostila Matlab - 71

Computação para Engenharia

Propriedades de Modelos

ctrb Matriz Controlabilidade.

damp Fatores “damping” e freqüências naturais.

ddamp Fatores discretos “damping” e freqüências naturais.

dsort Classe de autovalores discretos por magnitude.

esort Classe de autovalores contínuos por parte real.

obsv Matriz Observabilidade

tzero Transmissão zero.

Resposta em Tempo

dimpulse Resposta a função impulso discreto unitário.

dlsim Simulação discreta para entradas arbitrárias.

dstep Resposta a função degrau discreto.

impulse Resposta a função impulso.

lsim Simulação contínua para entradas arbitrárias.

step Resposta a função degrau.

Resposta em Freqüências

bode Plota bode.

freqs Transformada de Laplace.

freqz Transformada de z.

nyquist Plota nyquist.

Localização de Raízes

rlocus Localiza lugares das raízes.

Seleção de Ganho

acker Lugar dos pólos SISO.

lqe Projeto estimativo linearmente quadrático.

lqr Projeto regulador linearmente quadrático.

place Lugar dos pólos.

Geração de ondas

sinc Função sinc ou sin x x( )

Análise/Implementação de Filtros

freqs Resposta de freqüências em transformadas de Laplace.

freqz Resposta de freqüências em transformadas de z.

grpdelay Grupo atrasado.

zplane Plota zero-pólo discreto.

Transformação de Sistemas Lineares

residuez Expansão em frações parciais.

sos2ss Conversão de sessões de segunda ordem para estado-espaço.

sos2tf Conversão de sessões de segunda ordem para função de transferência.

sos2zp Conversão de sessões de segunda ordem para zero-pólo.

ss2sos Conversão de estado-espaço para sessões de segunda ordem.

ss2tf Conversão de estado-espaço para função de transferência.

ss2zp Conversão de estado-espaço para zero-pólo.

tf2ss Conversão de função de transferência para estado-espaço.

tf2zp Conversão de função de transferência para zero-pólo.

zp2sos Conversão de zero-pólo para sessões de segunda ordem.

zp2ss Conversão de zero-pólo para estado-espaço.

zp2tf Conversão de zero-pólo para função de transferência.

Projeto de Filtro IIR - Clássico e Direto

butter Projeto de filtro ButterWorth.

cheby1 Projeto de filtro Chebyshev tipo I.

cheby2 Projeto de filtro Chebyshev tipo II.

ellip Projeto de filtro elíptico.

yulewalk Projeto de filtro Yule-Walker

Projeto de filtro FIR

remez Projeto de filtro FIR Parks-McClellan.

Apostila Matlab - 72

Computação para Engenharia

Processo Estatístico de Sinal

psd Espectro de potência estimado.

Janelas

boxcar Janela retangular.

hamming Janela “hamming”.

hanning Janela “hanning”.

kaiser Janela “kaiser”.

triang Janela triangular.

Operações Especializadas

specgram Espectograma.

Projeto Protótipo Analógico

buttap Filtro protótipo Butterworth.

cheb1ap Filtro protótipo Chebyshev (passband ripple) tipo I.

cheb2ap Filtro protótipo Chebyshev (passband ripple) tipo II.

ellipap Filtro protótipo elíptico.

Translação de Freqüências

lp2bp Transformação lowpass para bandpass.

lp2bs Transformação lowpass para bandstop.

lp2hp Transformação lowpass para highpass.

lp2lp Transformação lowpass para lowpass.

Discretização de Filtros

bilinear Transformação bilinear.

impinvar Método impulso invariante para conversão de filtro A/D.

Outros

detrend Remover direção linear.

polystab Polinômio estabilizador.

strips Plota strip.