Apostila Matlab
-
Upload
cristiano260188 -
Category
Documents
-
view
550 -
download
4
Transcript of Apostila Matlab
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.