Buscar

Apostila Octave

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Fabrizio Leonardi
Luiz Vasco Puglia
São Paulo
2016
Sumário
1 Objetivos 6
2 Introdução 8
2.1 Considerações Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Variáveis e Declarações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Área de Trabalho - Informações . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.3 lookfor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.4 Salvando e Saindo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.5 Números e Expressões Aritméticas . . . . . . . . . . . . . . . . . . . . . . 14
2.3.6 Formato de Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.7 Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Operações Matriciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.1 Transposta de uma Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 Adicionando e Subtraindo Matrizes . . . . . . . . . . . . . . . . . . . . . . 16
2.4.3 Multiplicação de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.4 Divisão de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.5 Funções Elementares e Transcendentais . . . . . . . . . . . . . . . . . . . . 18
2.5 Operações de Vetores ou Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.1 Somando e Subtraindo Arrays . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.2 Multiplicando e Dividindo Arrays . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.3 Usando Potenciação com Arrays . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.4 Operadores Relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.5 Operadores Lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.6 Funções Matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Manipulação Matricial e Vetorial . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.1 Gerando Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.2 Indexando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6.3 Usando Vetores de 0 e 1 na Indexação . . . . . . . . . . . . . . . . . . . . 24
2
SUMÁRIO SUMÁRIO
2.6.4 Matrizes Vazias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.5 Matrizes Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.6 Construindo Matrizes a partir de Matrizes . . . . . . . . . . . . . . . . . . 26
2.7 Análise de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.1 Convenção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.2 Ajuste de Curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8 Funções Matriciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.1 Autovalores e Autovetores . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.2 Norma, Posto e Condicionamento . . . . . . . . . . . . . . . . . . . . . . . 29
2.9 Polinômios e Processamento de Sinais . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9.1 Representação de Polinômios . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9.2 Processamento de Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9.3 Filtragem de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.10 Funções de Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.10.1 Integração Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.10.2 Equações Não Lineares e Funções de Otimização . . . . . . . . . . . . . . . 33
2.10.3 Equações Diferenciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.11 Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.11.1 Gráficos 2-D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.11.2 Funções Gráficas Elementares . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.11.3 Criando um Gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.11.4 Estilos de Linhas, Marcadores e Cores . . . . . . . . . . . . . . . . . . . . 36
2.11.5 Adicionando Linhas num Gráfico Existente . . . . . . . . . . . . . . . . . . 37
2.11.6 Dados Imaginários e Complexos . . . . . . . . . . . . . . . . . . . . . . . . 37
2.11.7 Exibindo Gráficos de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.11.8 Importando Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.11.9 Funções Gráficas Especializadas em 2-D . . . . . . . . . . . . . . . . . . . 40
2.11.10Gráfico de Funções Matemáticas . . . . . . . . . . . . . . . . . . . . . . . . 40
2.11.11Gráficos 3-D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.12 Controles de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.12.1 FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12.2 WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.12.3 IF e BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.13 Arquivo M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.13.1 Arquivos Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.13.2 Arquivos de Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.13.3 Criando um Help para Seus Arquivos Pessoais . . . . . . . . . . . . . . . . 47
2.13.4 Informações Úteis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
F L / L V P 3
SUMÁRIO SUMÁRIO
2.13.5 INPUT e PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.13.6 Variáveis Globais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.13.7 Variáveis Alfanuméricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.13.8 Função EVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.14 Manipulação de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.14.1 Transferência de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.14.2 Importando Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.14.3 Exportando dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.15 Depuração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3 Toolbox de Matemática Simbólica 53
3.1 Variáveis Simbólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.1 Matriz de variáveis simbólicas . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.2 Simplificações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.3 Substituições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.4 Diferenciação Simbólica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.5 Integração Simbólica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.6 Solução de Equações Algébricas . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1.7 Gráficos de Funções Simbólicas . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1.8 Solução de Equações Diferenciais . . . . . . . . . . . . . . . . . . . . . . . 59
4 Transformada de Laplace 62
4.0.1 Transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1 Sistema de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.1 Função de Transferência . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.2Zero-Polo-Ganho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.1.3 Espaço de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.1.4 Tempo Discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.1.5 Dados do Objeto LTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.6 Conversão de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2 Operações com Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.1 Malha de Avanço . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.2 Blocos em Cascata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.3 Inversão de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.4 Soma de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.5 Derivação de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.6 Malha de Realimentação Unitária . . . . . . . . . . . . . . . . . . . . . . . 72
4.3 Resposta Temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.3.1 Resposta em Frequência . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
F L / L V P 4
4.3.2 Resposta Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.3.3 Redução de Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3.4 Lugar Geométrico das Raízes . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.5 Interfaces Gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Capítulo 1
Objetivos
• O objetivo destas notas de aulas é o aprendizado básico dos software MatLab e Octave, com
foco no curso de Controle Automático e Servomecanismo.
• Para estudos mais detalhados do MatLab, uma versão acadêmica é comercializada pelo link,
www. mathworks . com/academia/ student_vers ion
• O software Octave é uma opção free, que apresenta recursos semelhantes ao MatLab e pode
ser obtido em
www. gnu . org / so f tware / octave
atualmente na versão 4.0.1, que foi utilizada neste tutorial. Um cuidado especial deve ser
observado para instalação do aplicativo Octave. Pacotes básicos acompanham a instalação
padrão do aplicativo, mas o pacote "symbolic" utilizado neste tutorial deve ser instalado
posteriormente, conforme segue:
– No endereço da internet
www.github.com/cbm755/octsympy/releases/tag/v2.3.0
faça um download do pacote
www.github.com/cbm755/octsympy/releases/tag/v2.3.0
– Na Janela de Comando do Octave (ver figura 2.2), indicar o caminho onde o arquivo
"symbolic-win-py-bundle-2.3.0.zip" esta localizado, sem a necessidade de ser descom-
pactado, porem um descompactador deve estar instalado em seu computador.
– introduza o comando de instalação do pacote
>>pkg install symbolic-win-py-bundle-2.3.0.zip
– ao final da instalação, o comando
>>pkg load symbolic
permite que o pacote seja carregado para utilização.
6
CAPÍTULO 1. OBJETIVOS
• Agradecimentos especiais aos Professores José Barbosa Junior, Paulo Álvaro Maya, Heraldo
Silveira Barbuy e tantos outros que direta ou indiretamente contribuíram com o conteúdo
destas notas.
Indicação de diferenças entre MATLAB e OCTAVE
• Os comandos entre estes dois aplicativos são muito semelhantes, quando diferenças existirem,
serão destacadas no texto, como apresentado aqui.
F L / L V P 7
Capítulo 2
Introdução
Ambos aplicativos, criados com objetivo de processamento matemático, de alto desempenho. O
MatLab é o precursor da ferramenta, inicialmente criada para facilitar operações matriciais de
grandes dimensões e posteriormente expandida para diversas áreas de processamento matemático,
na forma de "Toolboxes" (MatLab) ou "Packages" (Octave). As principais diferenças entre estes,
é que o MatLab só é disponibilizado em versões comerciais pagas e com potencial de soluções
bastante amplos, enquanto o Octave é um aplicativo gratuito e obviamente com algumas limitações
quando comparado com o MatLab.
2.1 Considerações Iniciais
Ambos aplicativos permitem inserção de dados através de tela de entrada Command Window no
MatLab da figura 2.1 ou Janela de Comando da figura 2.2 do Octave
Figura 2.1: Tela do MatLab Figura 2.2: Tela do Octave
Nos dois casos, estes aplicativos trabalham essencialmente com um tipo de objeto: Matriz
retangular numérica (real ou complexa). Em algumas situações existe significado especial agre-
gado à matrizes de dimensão 1 (escalares) e matrizes com uma só linha ou coluna (vetores). A
8
CAPÍTULO 2. INTRODUÇÃO 2.1. CONSIDERAÇÕES INICIAIS
linguagem de ambos não usa declaração preliminar ou dimensionamento de variáveis. Isso é feito
de forma automática.
Iniciar a utilização dos aplicativos
• No MatLab, as instruções que seguem, podem ser inseridas diretamente na janela "Command
Window".
• No Octave ao iniciar o aplicativo deve-se em primeiro lugar carregar os pacotes necessá-
rios, através dos comandos abaixo, para utilização dos pacotes de controle e representações
simbólicas respectivamente.
>>pkg load con t r o l
>>pkg load symbol ic
Matrizes podem ser adicionadas no ambiente de várias formas, contudo a forma mais simples para
matrizes pequenas é entrando com a lista dos elementos, seguindo a seguinte convenção, para
ambos aplicativos:
• Separe os elementos com espaços ou vírgulas.
• Delimite os elementos com colchetes [ ].
• Use ; (ponto-e-vírgula) para indicar o final da linha.
Exemplo 1
>> A=[1 2 3 ; 4 5 6 ; 7 8 9 ]
A =
1 2 3
4 5 6
7 8 9
Exemplo 2
Elementos de uma matr iz podem se r qua i squer exp r e s s õ e s
>> x=[1.3 sq r t (3 ) (1+2+3)⇤4/5]
x =
�1.3000 1 .7321 4 .8000
F L / L V P 9
2.2. VARIÁVEIS E DECLARAÇÕES CAPÍTULO 2. INTRODUÇÃO
Exemplo 3
Elementos i n d i v i d u a i s podem se r r e f e r e n c i a d o s pe lo seu
í nd i c e ( l inha , coluna ) .
>> x(5)=abs (x ( 1 ) )
x =
�1.3000 1 .7321 4 .8000 0 1 .3000
Ao atribuir um valor numérico à x(5), automaticamente x(4) é criado com valor nulo.
Exemplo 4
Você pode c on s t r u i r matr i ze s maiores usando matr i ze s menores como
seus e lementos . Por exemplo , vamos ad i c i ona r uma l i nha à matr iz A:
>>r =[10 11 1 2 ] ;
>> A=[A; r ]
A =
1 2 3
4 5 6
7 8 9
10 11 12
Exemplo 5
Extra i r sub matr i ze s de uma matr iz maior usando " :" ( do i s pontos ) .
>> A=A( 1 : 3 , : )
A =
1 2 3
4 5 6
7 8 9
Remove as três primeiras linhas e todas as colunas da matriz A e coloca o resultado em A.
2.2 Variáveis e Declarações
As declarações nestes aplicativos são efetuadas na forma:
>> variável = expressão
ou simplesmente,
>> expressão
F L / L V P 10
CAPÍTULO 2. INTRODUÇÃO 2.2. VARIÁVEIS E DECLARAÇÕES
Quando o nome da variável é omitido, o nome ans é usado como variável padrão.
Uma definição normalmente termina com ENTER. Se o último carácter é um ponto-e-vírgula, ele
suprime a apresentação no vídeo, embora faça a atribuição da mesma forma. Isto é especialmente
importante nas situações que o resultado é muito grande, tal como uma matriz de 10 linhas e 10
colunas.
Exemplo 6
A in s t ru ção syms x y n e c e s s á r i a a e s t e exemplo s e rá d i s cu t i d a mais
à f r en t e , mas não esqueça de ca r r ega r o symbol ic no OCTAVE
>> pkg load symbol ic
>> syms x y
>> H=4⇤x⇤x⇤x�12⇤y�45
H =
4⇤x^3 � 12⇤y � 45
>> pre t ty (H)
3
4 x � 12 y � 45
ou sem declaração do nome da variável
>> 4⇤x⇤x⇤x�12⇤y�45
ans =
4⇤x^3 � 12⇤y � 45
>> pre t ty (4⇤x⇤x⇤x�12⇤y�45)
3
4 x � 12 y � 45
Quando uma expressão é muito grande e não cabe em uma linha, use (...) para continuar a defi-
nição na linha seguinte
Exemplo 7
>> s=1�1/2+1/3�1/4+1/5�1/6+1/7 . . .
�1/8+1/9�1/10+1/11�1/12;
>>
devido ao " ;" o r e su l t ado não é apresentado .
F L / L V P 11
2.3. ÁREA DE TRABALHO - INFORMAÇÕES CAPÍTULO 2. INTRODUÇÃO
Se s o l i c i t a d o s , vem :
>> s
s =
0.6532
Você pode nomear uma variável ou nome de função com uma letra seguida de qualquer quantidade
de letras ou underline. O sistema diferencia letras maiúsculas de minúsculas e usa somenteos
primeiros 19 caracteres do nome.
As variáveis são "case sensitive", isto é, a variável A é diferente da variável a. Letras minúsculas
são usadas em todos os comandos de MATLAB/OCTAVE.
2.3 Área de Trabalho - Informações
Para listar as variáveis ativas use o comando "who". Para obter mais informações sobre as variáveis
como: nome, tamanho, número de elementos, etc., use o comando "whos".
Exemplo 8
>> who
Your v a r i a b l e s are :
H ans s x y
>> whos
Name S i z e Bytes Class At t r ibute s
H 1x1 112 sym
ans 1x1 112 sym
s 1x1 8 double
x 1x1 112 sym
y 1x1 112 sym
2.3.1 Clear
Para limpar a tela do "Command Window", utilize o comando
>> c l c
Para limpar as variáveis da memória utilize o comando utilize o comando
>> c l e a r a l l
F L / L V P 12
CAPÍTULO 2. INTRODUÇÃO 2.3. ÁREA DE TRABALHO - INFORMAÇÕES
O comando "clear" : Apaga todas as variáveis; "clear a b c" só apaga as variáveis explicitadas ( a,
b, c, neste caso); "clear" é muito útil em programas para evitar erros em repetições do programa
com dimensões diferentes das matrizes.
2.3.2 Help
O comando help produz informações resumidas sobre funções específicas ou sobre tópicos . Para
listar um grupo de funções ou uma função, digite help seguido do nome do grupo de fun-
ções.
Exemplo 9
>> help c l c
c l c � Clear Command Window
This MATLAB func t i on c l e a r s a l l input and output
from the Command Window disp lay , g i v i ng you
a c l ean sc r e en .
c l c
Reference page f o r c l c
See a l s o c l ea r , c l f , c l o s e , home
Obs:. Em OCTAVE "help comando" (por exemplo, "help format") produz uma instrução muito
resumida. Um pouco mais pode-se obter com "help -i comando", que apresenta o ponto do manual
onde está explicado o comando.
2.3.3 lookfor
Para localizar palavras-chaves em todos os arquivos, use o comando lookfor.
Exemplo 10
>> look f o r i nv e r s e
i f f t � Inve r s e d i s c r e t e Four i e r trans form .
i f f t 2 � Two�dimens iona l i n v e r s e d i s c r e t e
Four i e r trans form .
i f f t n � N�dimens iona l i n v e r s e d i s c r e t e
Four i e r trans form .
i f f t s h i f t � Inve r s e FFT s h i f t .
acos � Inve r s e cos ine , r e s u l t in rad ians .
acosd � Inve r s e cos ine , r e s u l t in degree s .
F L / L V P 13
2.3. ÁREA DE TRABALHO - INFORMAÇÕES CAPÍTULO 2. INTRODUÇÃO
acosh � Inve r s e hype rbo l i c c o s i n e .
acot � Inve r s e cotangent , r e s u l t in radian .
2.3.4 Salvando e Saindo
Para sair do aplicativo digite exit. Encerrando uma seção, apaga-se todas as variáveis da área de
trabalho (workspace). Se for necessário, salve suas variáveis digitando como segue:
Diferenças em Salvar Variáveis
• MATLAB - Digite save, este comando salvará todas as variáveis em um arquivo chamado
matlab.mat. Para recuperar as variáveis use o comando load. Você também pode salvar
somente algumas variáveis e usar o nome de um arquivo qualquer.
>> save x y z
• OCTAVE - Digite save nome, este comando salvará todas as variáveis em um arquivo, com
o nome especificado, aqui o OCTAVE é difere do MATLAB. Para recuperar as variáveis use
o comando load nome. Você também pode salvar somente algumas variáveis e usar o nome
de um arquivo qualquer.
>> save A x y z
2.3.5 Números e Expressões Aritméticas
Ambos os aplicativos utilizam notação convencional com potencia de dez, ou unidade complexa
como sulfixo:
1 .760217 e�11
�4.534 i
A prioridade de operações matemáticas seguem a sequência apresentada.
^ potenciação
\ divisão à esquerda
/ divisão à direita
⇤ multiplicação
� subtração
F L / L V P 14
CAPÍTULO 2. INTRODUÇÃO 2.3. ÁREA DE TRABALHO - INFORMAÇÕES
+ adição
Algumas funções internas retornam valores especiais. A função "pi" retorna o valor de ⇡ , a
função "inf" retorna 1 , etc. Funções matemáticas elementares normalmente encontradas em
calculadores científicas são encontradas nestes aplicativos. Essas funções incluem, por exemplo:
abs, sqrt, log, sin. Se uma operação resultar em infinito isso não implica em erro, simplesmente
aquela variável terá o valor infinito. O mesmo ocorre para operações inválidas como
1
1 ou
0
0
.
O resultado é NaN ("Not a Number")
2.3.6 Formato de Saída
Para alterar a formatação do número a ser apresentado na tela, utilize o comando format.
Pequenas diferenças entre as formas de apresentação podem ser obtidas em Help Format
• MATLAB = format short
• OCTAVE =format short G exercem a mesma função
Exemplo 11 >> w=[1/3 15/4 1 .2345 e �6] ;
>> format shor t
w =
0.3333 3 .7500 0 .0000
>> format shor t e
w =
3.3333 e�01 3 .7500 e+00 1.2345 e�06
>> format long
w =
0.333333333333333 3.750000000000000 0.000001234500000
>> format long e
w =
3.333333333333333 e�01 3.750000000000000 e+00
1.234500000000000 e�06
2.3.7 Funções
Grande parte do poder destes processadores matemáticos, vem do enorme conjunto de funções.
O conjunto de funções aplicadas a uma área específica é denominado toolbox ou package. Cada
usuário pode criar suas próprias funções que se comportam como se fossem funções internas.
F L / L V P 15
2.4. OPERAÇÕES MATRICIAIS CAPÍTULO 2. INTRODUÇÃO
As seções adiante discutem cada uma das diferentes categorias de funções analíticas. É possível
combinar funções de várias formas.
>> x = sq r t ( l og ( z ) )
Algumas funções usam dois ou mais argumentos, e cada argumento pode ser uma expressão.
>> angulo = atan2 (y ,3⇤ x )
Existem funções que retornam dois ou mais valores. Nestes casos, os valores de saída devem estar
entre colchetes [ ] e separados por vírgula.
>> [ V, D ] = e i g ( A )
A função eig calcula os autovetores e os autovalores de A, respectivamente.
2.4 Operações Matriciais
2.4.1 Transposta de uma Matriz
O carácter ’ (apostrofe) denota a transposta de uma matriz. Se z for complexo, z0 é o transposto
conjugado complexo de z
Exemplo 12
>> a=[1 2 ;3 4 ]
a =
1 2
3 4
>> b=a ’
b =
1 3
2 4
2.4.2 Adicionando e Subtraindo Matrizes
Os símbolos + e - denotam adição e subtração de matrizes. Portanto, a operação é definida se as
matrizes têm a mesma dimensão
F L / L V P 16
CAPÍTULO 2. INTRODUÇÃO 2.4. OPERAÇÕES MATRICIAIS
Exemplo 13
>> c=a+b
c =
2 5
5 8
A adição e subtração são definidas também para o caso que um dos operandos é um esca-
lar
Exemplo 14
>> d=c�2
d =
0 3
3 6
2.4.3 Multiplicação de Matrizes
O símbolo * denota multiplicação de matrizes e é válida sempre que dimensões internas dos dois
operandos forem iguais.
Exemplo 15
>> e=a⇤b
e =
5 11
11 25
Naturalmente, um escalar (matriz de dimensão 1) pode multiplicar ou ser multiplicado por qual-
quer matriz.
Exemplo 16
>> f=2⇤e
f =
10 22
22 50
F L / L V P 17
2.5. OPERAÇÕES DE VETORES OU ARRAY CAPÍTULO 2. INTRODUÇÃO
2.4.4 Divisão de Matrizes
Dois símbolos são utilizados para divisão de matrizes: / e cujos significados são:
X = A\ B é solução do sistema A*X = B
X = B\A é solução do sistema X*A = B
2.4.5 Funções Elementares e Transcendentais
Consideram-se expressões como "exp(A)" e "sqrt(A)" como operação sobre cada um dos elemen-
tos de um vetor (linha ou coluna). Existem funções para calculo de funções transcendentais de
matrizes, quando essas são quadradas
"expm" exponencial de uma matriz
"logm" logaritmo de uma matriz
"sqrtm" raiz quadrada de uma matriz
Outras funções elementares sobre matrizes incluem:
"poly" polinômio característico
"det" determinante
"trace" traço
2.5 Operações de Vetores ou Array
Refere-se às operações com vetores ou array as operações aritméticas realizadas elemento a ele-
mento ao invés da operação matricial algébrica usual definida pelos símbolos\ ⇤ ^ e ’. Para
indicar que a operação é elemento-a-elemento usa-se um ponto (.) antes do símbolo da operação.
2.5.1 Somando e Subtraindo Arrays
Para a adição e subtração, as operações de arrays e as de matrizes são as mesmas. Neste caso +
e - podem ser usados sem o ponto.
2.5.2 Multiplicando e Dividindo Arrays
O símbolo .* denota multiplicação elemento-a-elemento. Se A e B têm mesma dimensão, en-
tão A.*B resulta num array cujos elementos são o produto dos elementos individuaisde A e de
B.
F L / L V P 18
CAPÍTULO 2. INTRODUÇÃO 2.5. OPERAÇÕES DE VETORES OU ARRAY
Exemplo 17
>> x=[1 2 3 ] ; y=[4 5 6 ] ;
>> z=x .⇤ y
z =
4 10 18
A expressão A./B e A.\B resulta no quociente de cada elemento.
Exemplo 18
>> z=x .\ y
z =
4.0000 2 .5000 2 .0000
>> z=x . / y
z =
0.2500 0 .4000 0 .5000
2.5.3 Usando Potenciação com Arrays
O símbolo .^ denota potenciação elemento-a-elemento.
Exemplo 19
>> z=x .^y
z =
1 32 729
2.5.4 Operadores Relacionais
Para se comparar matrizes de dimensões idênticas, existem operadores relacionais:
< menor
<= menor ou igual
> maior
>= maior ou igual
== igual
⇠ = diferente
F L / L V P 19
2.5. OPERAÇÕES DE VETORES OU ARRAY CAPÍTULO 2. INTRODUÇÃO
O processador compara os pares de elementos correspondentes. O resultado é uma matriz de
"uns"e "zeros", onde "um"representa "verdadeiro"e "zero"representa "falso"
Exemplo 20
>> a=[1 2 ;3 4 ] ; b=[1 4 ;2 3 ] ;
>> a~=b
ans =
0 1
1 1
Exemplo 21
Pode�se obter os e lementos da matr iz A, que sejam d i v i s í v e i s por 3
>> A=[9 1 3 ;3 5 7 ;4 5 9 ] ;
>> G=rem(A, 3 ) ;
>> p=(G==0)
p =
1 0 1
1 0 0
0 0 1
A função rem(A,3) retorna a matriz dos restos da divisão por 3. Cada um dos elementos de G
informa se a operação relacional é falsa (0) ou verdadeira (1).
A função find é muito usada em conjunto com operadores relacionais. O exemplo abaixo ilustra
como localizar todos os elementos de Y que são maiores que 3 e substituí-los por 10.
Exemplo 22 >> y=[1 2 3 4 5 6 7 8 9 ] ;
>> i=f i nd (y >3.0) ;
>> y( i )=10⇤ ones ( s i z e ( i ) )
y =
1 2 3 10 10 10 10 10 10
2.5.5 Operadores Lógicos
Os operadores &, |, e ⇠ são os operadores lógicos "e", "ou"e "não"respectivamente. As funções
"any" e "all" são muito utilizadas em conjunto com operadores lógicos. A função any(x) retorna
"1"se qualquer elemento de x for não nulo e retorna "0"caso contrário. A função all(x) retorna
F L / L V P 20
CAPÍTULO 2. INTRODUÇÃO 2.6. MANIPULAÇÃO MATRICIAL E VETORIAL
"1"somente se todos os elementos de x são não nulos. Essas funções são particularmente úteis na
declaração de um comando if.
Exemplo 23
i f a l l (A < 0 . 5 )
faça alguma co i s a
end
2.5.6 Funções Matemáticas
Um conjunto de funções matemáticas elementares são aplicáveis elemento-a-elemento.
Exemplo 24
>> A=[�1 2 �3;4 �5 6 ] ;
>> B=abs (A)
B =
1 2 3
4 5 6
2.6 Manipulação Matricial e Vetorial
A capacidade de indexação do processador matemático permite manipulação de linhas e colunas,
elementos individuais e submatrizes de matrizes. Os vetores são o ponto central da indexação e
eles são gerados com o uso de ":"(dois pontos).
2.6.1 Gerando Vetores
A declaração abaixo ilustra a criação de um vetor usando (:) dois pontos:
Exemplo 25
>> x=1:5
x =
1 2 3 4 5
Você pode também criar o vetor com incrementos diferentes da unidade. No exemplo a seguir o
passo é de ⇡/4.
F L / L V P 21
2.6. MANIPULAÇÃO MATRICIAL E VETORIAL CAPÍTULO 2. INTRODUÇÃO
Exemplo 26
>> y=0: p i /4 : p i
y =
0 0.7854 1 .5708 2 .3562 3 .1416
Exemplo 27
>> z=6:�1:1
z =
6 5 4 3 2 1
A uso de (:) permite a criação rápida de tabelas como ilustrado a seguir
Exemplo 28
>> x =( 0 : 0 . 2 : 3 ) ’ ;
>> y=exp(�x ) . ⇤ s i n (x ) ;
>> [ x y ]
ans =
0 0
0.2000 0 .1627
0 .4000 0 .2610
0 .6000 0 .3099
0 .8000 0 .3223
1 .0000 0 .3096
1 .2000 0 .2807
1 .4000 0 .2430
1 .6000 0 .2018
1 .8000 0 .1610
2 .0000 0 .1231
2 .2000 0 .0896
2 .4000 0 .0613
2 .6000 0 .0383
2 .8000 0 .0204
3 .0000 0 .0070
Existem outras funções para a geração de vetores tal como logspace que gera um vetor espaçado
logaritmicamente
F L / L V P 22
CAPÍTULO 2. INTRODUÇÃO 2.6. MANIPULAÇÃO MATRICIAL E VETORIAL
Exemplo 29
>> w=logspace (�1 ,1 ,5)
w =
0.1000 0 .3162 1 .0000 3 .1623 10.0000
2.6.2 Indexando
Elementos individuais de matrizes podem ser referenciados inserindo seus índices de linha e coluna
entre parênteses. Se uma expressão for usada como índice, o índice é aproximado paro o inteiro
mais próximo.
Exemplo 30
>> A=[1 2 3 ;4 5 6 ;7 8 9 ] ;
>> A(3 ,3)=A(1 ,3)+A(3 , 1 )
A =
1 2 3
4 5 6
7 8 10
O uso de ":"dois pontos, podemos indexar todas as linhas ou colunas ou uma parte:
Exemplo 31
>> A( : , 1 )
ans =
1
4
7
>> A( 2 : 3 , 1 : 2 )
ans =
4 5
7 8
É possível fazer referência explícita a algumas linhas ou colunas. Colocam-se os números das
linhas e colunas dentro de colchetes
F L / L V P 23
2.6. MANIPULAÇÃO MATRICIAL E VETORIAL CAPÍTULO 2. INTRODUÇÃO
Exemplo 32
>> A( [ 1 3 ] , [ 1 3 ] )
ans =
1 3
7 10
Um outro uso para os dois pontos (:) é no empilhamento das colunas de uma matriz qualquer.
No caso de vetores, obteremos sempre o vetor coluna
Exemplo 33
>> A=[1 2 ;3 4 ;5 6 ] ;
>> B=A( : )
B =
1
3
5
2
4
6
2.6.3 Usando Vetores de 0 e 1 na Indexação
Você pode usar vetores de "uns", usualmente criados a partir de operadores relacionais no refe-
renciamento de submatrizes.
Suponha que A é uma matriz de dimensão m-por-n e L um vetor linha de "zeros"e "uns"de
dimensão m, então
Exemplo 34
>> L=[1 1 1 ] ;
>> A(L , : )
ans =
1 2
1 2
1 2
F L / L V P 24
CAPÍTULO 2. INTRODUÇÃO 2.6. MANIPULAÇÃO MATRICIAL E VETORIAL
especifica as linhas de A cujos elementos de L são não nulos. Ou seja, os uns de L apontam para
as linhas de A. O exemplo a seguir mostra como extrair de X as linhas cuja terceira coluna é maior
ou igual a 100.
Exemplo 35
>> L = X( : , 3 ) > 100 ;
>> Y = X(L , : ) ;
2.6.4 Matrizes Vazias
A declaração
>> X=[ ]
atribui a matriz de dimensão zero-por-zero à X, sendo possível usar a variável X em cálculos.
Criar a matriz X vazia é diferente do que apagar a variável X com o comando clear X. Com o uso
de matrizes vazias é possível remover linhas e colunas de uma matriz, como mostra o exemplo a
seguir que apaga as colunas 2 e 4 da matriz A:
>> A( : , [ 2 4 ] ) = [ ]
2.6.5 Matrizes Especiais
Existe uma coleção de funções que geram matrizes que são normalmente encontradas nos proble-
mas de álgebra linear e processamento de sinais.
compan gera a matriz a partir do polinômio caraterístico
diag matriz diagonal
pascal constrói o triângulo de Pascal
zeros matriz de "zeros"
ones matriz de "uns"
eye matriz identidade
logspace vetores espaçados logaritmicamente
linspace vetores espaçados linearmente
rand elementos randômicos uniformemente distribuído
randn elementos randômicos normalmente distribuídos
etc ...
F L / L V P 25
2.7. ANÁLISE DE DADOS CAPÍTULO 2. INTRODUÇÃO
2.6.6 Construindo Matrizes a partir de Matrizes
É possível formar matrizes maiores a partir de matrizes menores, envolvendo as matrizes menores
entre colchetes. Por exemplo, se A é uma matriz quadrada,
Exemplo 36
>> A=[1 2 ;3 4 ]
A =
1 2
3 4
>> C = [A A’ ; ones ( s i z e (A) ) A.^2 ]
C =
1 2 1 3
3 4 2 4
1 1 1 4
1 1 9 16
cria a matriz C com o dobro do tamanho de A. Note que na construção de matrizes usando
matrizes, as dimensões das matrizes menores devem ser compatíveis ou então aparecerá uma
mensagem de erro.
2.7 Análise de Dados
Esta seção apresenta uma introdução à análise de dados. Técnicas mais poderosas estão disponíveis
usando funções de álgebra linear e funções de processamento de sinais na seção ?? (polinômios e
processamento de sinais).
2.7.1 Convenção
Por convenção, as diferentes variáveis em um conjunto de dados são colocadas em colunas, per-
mitindo observação vertical dos dados através das linhas. Portanto, um conjunto de dados de 50
amostras de 13 variáveis é armazenado numa matriz de dimensão 50-por-13.
O conjunto de dados armazenados na matriz "count" será usado para ilustrar o uso de algumas
funções
Exemplo 37 >> count = [
11 57 291
43 178 1011
F L / L V P 26
CAPÍTULO 2. INTRODUÇÃO 2.7. ANÁLISE DE DADOS
38 163 1095
61 420 2407
12 59 287 ]
Para esse exemplo temos 5 observações para 3 variáveis. Isso pode ser obtido como segue
Exemplo 38
>> cont =[11 57 291 ;43 178 1011;38 163 1095;61 420 2407;12 59 287 ]
cont =
11 57 291
43 178 1011
38 163 1095
61 420 2407
12 59 287
>> [ n , p]= s i z e ( cont )
n =
5
p =
3
Um grupo de funções (abaixo) confere a capacidade de análise de dados básica
max máximo valor
min mínimovalor
mean valor médio
median mediana
std desvio padrão
sort ordenação
sum soma dos elementos
prod produtos de elementos
cumsum soma cumulativa dos elementos
cumprod produto cumulativo dos elementos
diff aproximação numérica da derivada
corrcoef coeficientes de correlação
cov m atriz de covariância
var variância
Para argumentos vetoriais não faz diferença se o vetor é linha ou coluna. Para arrays as funções
são orientadas por colunas.
F L / L V P 27
2.8. FUNÇÕES MATRICIAIS CAPÍTULO 2. INTRODUÇÃO
Exemplo 39
>> mx=max( cont )
mx =
61 420 2407
>> mu=mean( cont )
mu =
1 .0 e+03 ⇤
0 .0330 0 .1754 1 .0182
>> sigma=std ( cont )
sigma =
21.4126 147.9503 865.7639
2.7.2 Ajuste de Curvas
Uma das alternativas possíveis para encontrarmos os coeficientes de p(x) a partir de dados tabelados
é através da função polyfit, onde n é o grau do polinômio.
p(x) = c1x
d
+ c2x
d�1
+ · · ·+ c
n
A sintaxe usada é a seguinte, onde x é a abscissa, p o valor da função para cada x(i) e n o grau do
polinômio.
>> c=p o l y f i t (x , p , n)
2.8 Funções Matriciais
2.8.1 Autovalores e Autovetores
Se A é uma matriz n-por-n, os n números � que satisfazem a equação Ax = �x, são os autovalores
de A. Eles são encontrados usando
>> e i g (A)
Se o comando for usado com dois parâmetros de saída, obteremos os autovalores em D e os
autovetores em X
>> [X,D]= e i g (A)
F L / L V P 28
CAPÍTULO 2. INTRODUÇÃO 2.9. POLINÔMIOS E PROCESSAMENTO DE SINAIS
2.8.2 Norma, Posto e Condicionamento
As funções que calculam a norma, posto e número de condicionamento de uma matriz são:
cond número de condicionamento usando norma-2
norm norma-1, norma-2, norma-F e norma-1
rank posto da matriz
rcond estimativa do condicionamento
2.9 Polinômios e Processamento de Sinais
Ambos processadores possuem funções para manipulação polinomial e para o processamento digital
de sinais. Essas funções operam primordialmente com vetores.
2.9.1 Representação de Polinômios
Polinômios são representa como vetores linha contendo os coeficientes ordenados em ordem de-
crescente dos expoentes. Por exemplo, o polinômio característico de
Exemplo 40
>> A=[1 2 3 ;4 5 6 ;7 8 0 ]
A =
1 2 3
4 5 6
7 8 0
>> p=poly (A)
p =
1.0000 �6.0000 �72.0000 �27.0000
Esta é a representação do polinômio s3� 6s2� 72s� 27 . As raízes dessa equação são
Exemplo 41
>> r=roo t s (p)
r =
12.1229
�5.7345
�0.3884
Essas raízes são os mesmos que os autovalores da matriz A. Pode-se reconstruir o polinômio
original com a função poly
F L / L V P 29
2.9. POLINÔMIOS E PROCESSAMENTO DE SINAIS CAPÍTULO 2. INTRODUÇÃO
Exemplo 42
>> p2=poly ( r )
p2 =
1.0000 �6.0000 �72.0000 �27.0000
Considere os polinômios a(s) = s2 + 2s + 3 e b(s) = 4s2 + 5s + 6. O produto dos polinômios é a
convolução dos seus coeficientes
Exemplo 43
>> a=[1 2 3 ] ; b=[4 5 6 ] ;
>> c=conv (a , b)
c =
4 13 28 27 18
Você pode utilizar a convolução inversa para dividir dois polinômios, e no caso do exemplo, obter
b novamente.
Exemplo 44
>> [ q , r ]=deconv ( c , a )
q =
4 5 6
r =
0 0 0 0 0
A lista de funções de polinômios inclui:
poly polinômio característico
roots raízes de um polinômio
polyval cálculo do valor numérico do polinômio
polyvalm cálculo do polinômio de matrizes
conv multiplicação (convolução)
deconv divisão (deconvolução)
residue expansão em frações parciais
polyder derivada do polinômio
polyfit ajuste polinomial de curva
F L / L V P 30
CAPÍTULO 2. INTRODUÇÃO 2.10. FUNÇÕES DE FUNÇÕES
2.9.2 Processamento de Sinais
Vetores são usados, por exemplo, para armazenar sinais de dados amostrados, ou sequências,
para o processamento dos sinais. Para sistemas com múltiplas entradas, cada linha da matriz
corresponde a uma amostra. O MATLAB básico contém as funções a seguir, enquanto que o
Signal Processing Toolbox contém muitas funções adicionais.
abs magnitude complexa
angle angulo de fase
conv convolução
deconv deconvolução
fft transformada rápida de Fourier
ifft transformada rápida inversa de Fourier
fftshift alterna quadrantes de matrizes
fft2 FFT de duas dimensões
ifft2 FFT inversa de duas dimensões
fftshift rearranja os resultados da FFT
conv2 convolução de duas dimensões
2.9.3 Filtragem de Dados
A função,
>> y=f i l t e r (b , a , x )
filtra os dados do vetor x com o filtro descrito pelos vetores a e b, criando o dado y filtrado
A estrutura do filtro é dada a seguir pela sua função de transferência de tempo discreta
H(z) =
Y(z)
X(z)
=
b(1) + b(2)z
�1
+ · · ·+ b(nb)z�(nb�1)
1 + a(2)z�1 + · · ·+ a(na)z�(na�1)
2.10 Funções de Funções
Quando as operações de calculo, não são feitas sobre matrizes numéricas, mas com funções mate-
máticas, ela passam a receber o nome de funções de funções (funfun), e incluem:
Integração numérica
Equações não lineares e otimização
F L / L V P 31
2.10. FUNÇÕES DE FUNÇÕES CAPÍTULO 2. INTRODUÇÃO
Solução de equações diferenciais
etc
Para o uso das funções de funções, é usual representar as funfun através de arquivos-M (M-files).
f(x) =
1
(x� 0, 3)2 + 0, 01
+
1
(x� 0, 9)2 + 0, 04
� 6
foi codificada num arquivo com extensão .m, por exemplo chamado humps.m, cuja listagem é
mostrada a seguir:
Exemplo 45
% l i s tagem do arquivo humps .m
func t i on y = humps(x )
y = 1 . / ( ( x� .3) .^2 + . 0 1 ) +1./((x� .9) .^2 + . 0 4 ) � 6 ;
end
O gráfico dessa função é obtido como segue
>> x = �1 : . 01 : 2 ;
>> p lo t (x , humps(x ) )
O resultado é visto na figura 2.3
Figura 2.3: humps(x)
F L / L V P 32
CAPÍTULO 2. INTRODUÇÃO 2.10. FUNÇÕES DE FUNÇÕES
2.10.1 Integração Numérica
Uma função, tal como humps , pode ser integrada numericamente pelo processo chamado de
quadratura que é uma funfun denomindada quad.
Exemplo 46 >> q = quad (@humps , 0 , 1 )
q =
29.8583
Note que o primeiro argumento da função quad é o nome de uma função. Isso mostra porque
essa função é chamada função de função (é uma função que opera com outras funções). Os outros
dois argumentos são os limites de integração.
2.10.2 Equações Não Lineares e Funções de Otimização
Estes aplicativos permitem algumas funções para a manipulação de equações não lineares e para
otimizações.
fminsearch minimo de uma função multivariável
fzero zero de uma função de uma variável
Continuando com o exemplo definido pela função humps.m, a localização do mínimo da função na
região de 0.5 a 1 é calculada com fminsearch :
Exemplo 47
>> xm = fminsearch ( ’ humps ’ , 0 . 5 , 1)
xm =
0.6370
e o seu valor no mínimo é
>> y = humps(xm)
y =
11.2528
A localização do zero da função que está próximo de x = 0 e de x = 1 é,
>> xz1 = f z e r o ( ’ humps ’ , 0 )
xz1 =
�0.1316
>> xz2 = f z e r o ( ’ humps ’ , 1 )
xz2 =
F L / L V P 33
2.11. GRÁFICOS CAPÍTULO 2. INTRODUÇÃO
1 .2995
No Optimization Toolbox há inúmeras outras funções como,
ffgoalattain otimização de metasl
fmincon minimização com restrições
fminsearch minimização sem restrições
fsolve solução de equações algébricas não lineares
fzero busca de zeros
fminimax solução do problema minimax
linprog programação linear
quadprog programação quadrática
2.10.3 Equações Diferenciais
Duas das funções disponíveis para a solução de equações diferenciais ordinárias são:
ode23 método Runge-Kutta de ordem baixa
ode45 método Runge-Kutta de ordem média
Considere a equação diferencial de segunda
ordem conhecida como equação de Van der Pol.
ẍ+
�
x2 + 1
�
ẋ+ x = 0
Esta equação pode ser escrita como um sistema de equações diferenciais de primeira ordem
ẋ1 = x1 (1� x2)� x2
ẋ2 = x1
O primeiro passo para simular este sistema é criar um arquivo que contem este sistema de equações
diferenciais. Chamaremos este arquivo de vdpol.m
Para a solução numérica de equações diferenciais recomenda-se também o SIMULINK que é uma
extensão gráfica do MATLAB para a simulação de equações diferenciais, porem opção não dispo-
nível no OCTAVE.
• Opção ao Simulink é o aplicativo SciLab
2.11 Gráficos
O sistema gráfico de ambos aplicativos, oferecem uma variedade de técnicas sofisticadas para
representar e visualizar dados. São funções gráficas em 2-D e 3-D.
F L / L VP 34
CAPÍTULO 2. INTRODUÇÃO 2.11. GRÁFICOS
2.11.1 Gráficos 2-D
Uma variedade de funções para a visualização de dados em duas dimensões (2?D), estão disponí-
veis.
2.11.2 Funções Gráficas Elementares
A lista abaixo sumariza as funções gráficas básicas. Elas diferem apenas na escala dos eixos.
Cada entrada pode ser um vetor ou uma matriz e as escalas são ajustadas automaticamente para
acomodar os dados de entrada.
plot gráfico de vetores ou de colunas de matrizes
loglog escala logarítmica nos dois eixos
semilogx escala logarítmica no eixo x e linear em y
semilogy escala logarítmica no eixo y e linear em x
title adiciona um título ao gráfico
xlabel adiciona um nome ao eixo x
ylabel adiciona um nome ao eixo y
text mostra um texto na posição especificada
gtext coloca o texto no gráfico usando o mouse
grid coloca linhas de grid
2.11.3 Criando um Gráfico
Se y é um vetor, plot(y) produz um gráfico linear dos elementos de y em função do indexador de
y. Se você especificar dois vetores como argumentos, plot(x,y) produz um gráfico de y versus x.
F L / L V P 35
2.11. GRÁFICOS CAPÍTULO 2. INTRODUÇÃO
Você pode também especificar vários conjuntos de dados e definir o estilo da linha e sua cor para
cada conjunto de dados, tudo isso num mesmo comando:
>> 0 : p i /100:2⇤ pi ;
>> x = s in ( t ) ;
>> y1 = s in ( t + 0 . 2 5 ) ;
>> y2 = s in ( t + 0 . 5 ) ;
>> p lo t (x , y1 , ’ r � ’ ,x , y2 , ’ g��’)
>> t i t l e ( ’ Defasagem ’ )
>> x l ab e l ( ’ x=s i n ( t ) ’ )
>> y l ab e l ( ’ y=s i n ( t +) ’)
A inserção de label se faz de forma diferentes no MATLAB e no OCTAVE.
• No MATLAB o comando xlabel(’x=sin(t)’) é colocado entre apostrofes 0
• no OCTAVE a mesma função é colocada ente aspas ” xlabel("x=sin(t)")
2.11.4 Estilos de Linhas, Marcadores e Cores
Tal como se mostrou no exemplo anterior, você pode passar um caractere como um argumento
à função plot para especificar um dos vários estilos de linha, símbolos e cores. Na declaração
plot(X,Y,S), S é uma string de 1, 2 ou 3 caracteres (delimitados por apóstrofes) com as funções
definidas pela tabela a seguir. Se você não especificar uma cor, ele usa as cores da tabela auto-
maticamente.
F L / L V P 36
CAPÍTULO 2. INTRODUÇÃO 2.11. GRÁFICOS
Símbolo Cor Símbolo Linha
y amarela . ponto
m magenta o circulo
c ciano x marca x
r vermelho + marca +
g verde * marca *
b azul - solida
w branca : pontilhada
k preta -. traço-ponto
– tracejada
s quadrado
d diamante
_ triângulo (p/ baixo)
^ triângulo (p/ cima)
< triângulo (p/ esquerda)
> triângulo (p/ direita)
P pentagrama
h hexagrama
2.11.5 Adicionando Linhas num Gráfico Existente
Você pode adicionar outras curvas em um gráfico que já foi construído usando o comando hold.
Quando você seleciona hold on, o MATLAB não remove as linhas atuais, ao invés disso ele
adiciona as linhas atuais ao gráfico atual.
O que ele pode fazer é mudar a escala dos eixos automaticamente se os novos dados não se
acomodarem dentro da escala anterior.
2.11.6 Dados Imaginários e Complexos
Quando os argumentos da função plot são complexos, isto é, eles têm parte imaginária diferente de
zero, a parte imaginária é ignorada exceto quando plot é usado com um único argumento. Nesta
situação, o comando é um comando gráfico resumido da parte real versus a parte imaginária. Por-
tanto, plot(z), quando z é um vetor ou matriz complexa, é equivalente à, plot(real(z),imag(z)).
Para ilustrar isso, o exemplo a seguir usa a distribuição dos autovalores de uma matriz 20-por-20
randômica:
>> p lo t ( e i g ( randn (20 , 2 0 ) ) , ’ x ’ )
F L / L V P 37
2.11. GRÁFICOS CAPÍTULO 2. INTRODUÇÃO
2.11.7 Exibindo Gráficos de Matrizes
A função plot pode ter um único argumento, como plot(Y). Ela desenha uma curva para cada
coluna de Y. O eixo x é formado pelo índice de cada linha. Se X e Y são matrizes, plot(X,Y)
exibe o gráfico das colunas de X versus colunas de Y.
F L / L V P 38
CAPÍTULO 2. INTRODUÇÃO 2.11. GRÁFICOS
2.11.8 Importando Dados
Você pode importar e exibir o gráfico de dados gerados fora do ambiente. Suponha você tenha
um arquivo chamado dados.dat contento valores de duas funções e da variável independente:
2 . 3 1 .0 1 .0
3 .1 1 .9 2 .0
4 .5 2 .2 3 .0
5 .6 2 .6 4 .0
4 .8 3 .5 5 .0
4 .7 4 .7 6 .0
4 .4 5 .3 7 .0
4 .0 6 .0 8 .0
4 .2 7 .1 9 .0
O comando load dados.dat produz uma matriz chamada dados, 9-por-3. A seguir, mostra-se como
renomear cada uma das variáveis e como exibir o gráfico de cada função separadamente.
>> load dados . dat
>> F1 = dados ( : , 1 ) ;
>> F2 = dados ( : , 2 ) ;
>> X = dados ( : , 3 ) ;
>> subplot (211) , p l o t (X, F1)
>> subplot (212) , p l o t (X, F2)
F L / L V P 39
2.11. GRÁFICOS CAPÍTULO 2. INTRODUÇÃO
2.11.9 Funções Gráficas Especializadas em 2-D
Os processadores incluem uma variedade de funções especializadas, conforme descrito resumida-
mente a seguir.
bar gráfico de barras
compass gráfico de ângulos com setas
errorbar gráfico de barras de erros
feather gráfico de ângulos
fplot calcula e exibe o gráfico de uma função
hist cria um histograma
polar gráfico em coordenadas polares
quiver cria um gráfico de um gradiente
rose histograma em ângulo
stairs gráfico similar ao de barras sem linhas internas
fill desenha um polígono e preenche o interior
2.11.10 Gráfico de Funções Matemáticas
Você pode exibir o gráfico de uma função,y = f(x) . A solução pela força bruta é calcular a
função para algumas centenas de pontos no intervalo de interesse. Por exemplo, a função a seguir
oscila com frequência tendendo para infinito quando x = 0, 5 . No exemplo, a função é exibida
no intervalo [0,1]. Neste caso, a função fplot é mais efetiva para obtermos a representação gráfica
da função, pois ela escolhe automaticamente uma quantidade maior de pontos na faixa que é
necessário maior resolução gráfica. Para usar a função fplot, primeiro crie um arquivo que conterá
F L / L V P 40
CAPÍTULO 2. INTRODUÇÃO 2.12. CONTROLES DE FLUXO
a função a ser exibida por meio de um gráfico, por exemplo com o nome fofx.m
f unc t i on y = f o f x (x )
y = cos ( tan ( p i ⇤x ) ) ;
end
Agora basta passar o nome da função como argumento de fplot.
>> fp l o t ( ’ f o fx ’ , [ 0 1 ] , 25 ,20 ,10)
2.11.11 Gráficos 3-D
Uma variedade de funções para a visualização de dados em 3?D, é oferecida. Contudo, não faremos
um detalhamento, visto que o assunto é longo e pouco interessante para os nossos objetivos.
2.12 Controles de Fluxo
Declarações para controle de fluxo tal como aqueles encontrados na maioria das linguagens de
computador, são encontradas nestes aplicativos. O controle de fluxo torna o MATLAB mais do
que uma calculadora científica, permitindo que seja usado como uma linguagem de programação
de alto nível completa.
F L / L V P 41
2.12. CONTROLES DE FLUXO CAPÍTULO 2. INTRODUÇÃO
2.12.1 FOR
Versões própria dos loops DO ou FOR são disponíveis. Com isso é possível repetir um grupo de
declarações por um número predeterminado de vezes.
>> f o r i = 1 : n , x ( i ) = 0 , end
impõe o valor "0"para todos os primeiros n elementos de x. Se n é menor que "1", a construção
ainda é permitida, mas as declarações internas ao loop não são executadas. Se x não existe ou
tem menos elementos que x, então espaços adicionais são alocados automaticamente.
Você pode criar loops dentro de loops e pode fazer as declarações diretamente no prompt do
MATLAB ou do OCTAVE, embora o uso de um M-file seja recomendado nestes casos.
>> f o r i = 1 : 1 :m
>> fo r j = 1 : 1 : n
>> A( i , j ) = 1/( i+j �1);
>> end
>> end
>> A
A expressão do for é usualmente do tipo m : i : n, onde m é o valor inicial, n o final e i o
incremento, sendo que esse pode ser negativo.
F L / L V P 42
CAPÍTULO 2. INTRODUÇÃO 2.12. CONTROLES DE FLUXO
2.12.2 WHILE
Tal como o for, a declaração while também é para realizar um grupo de declarações um certo
número de vezes. A diferença básica é que no while, o controle do loop é feito por uma condição
lógica. Para ilustrar, vamos resolver um problema: Qual é o primeiro inteiro n para o qual n!
(fatorial de n) é um númerode 100 dígitos ?
>> n = 1 ;
>> whi le prod ( 1 : n) < 1 . e100 , n = n+1; end
>> n
A função prod realiza os produtos dos elementos do argumento. Logo, prod(1:n) é o fatorial de
n.
2.12.3 IF e BREAK
Os exemplos a seguir ilustram a utilização da declaração if. O primeiro exemplo mostra como um
cálculo pode ser dividido em três casos dependendo do sinal e da paridade de n.
>> i f n < 0
>> A = �1;
>> e l s e i f rem(n , 2 ) == 0
>> A = 0
>> e l s e
>> A = 1
>> end
O segundo exemplo envolve um problema não resolvido da teoria dos números:
Exemplo 48
Pegue um número i n t e i r o . Se e l e f o r par , d iv ida por do i s ; se f o r
impar , mu l t i p l i que e l e por 3 e some 1 . Repita e s s e proce s so até que
o i n t e i r o s e j a i g ua l a um. O problema é saber se e x i s t e algum
i n t e i r o para o qual o proce s so nunca termina .
Este programa ilustra as declarações while e if. Também é mostrado o uso da função input que
interrompe a execução para a entrada de dados e da declaração break que permite interromper
um loop.
F L / L V P 43
2.13. ARQUIVO M CAPÍTULO 2. INTRODUÇÃO
Exemplo 49
% Problema c l á s s i c o "3n+1" da t e o r i a dos números
whi l e 1
n = input ( ’ Entre com n [ negat ivo aborta ] = ’ ) ;
i f n <= 0 , break , end
whi le n > 1
i f rem(n , 2 ) == 0
n = n/2
e l s e
n = 3⇤n+1
end
end
end
2.13 Arquivo M
A maneira mais simples de se usar estes processadores é no modo de comando. Quando você entra
com uma linha de comando, ele processa e imediatamente mostra o resultado. Estes processadores
também podem executar uma sequência de comandos que está armazenada num arquivo. Os
arquivos que contém declarações são chamados M-files porque usam a extensão ?.m?. Por exemplo,
o arquivo bessel.m contém declarações para o cálculo de funções Bessel.
Um M-file consiste de uma sequência de declarações, podendo incluir referencias a outros M-files.
Um M-file pode chamar ele próprio de forma recursiva. Você pode criar um M-file usando um
editor de texto tal como o Bloco de Notas do Windows, ou outro qualquer. Dois tipos usuais de
M-files são: lotes (scripts) e funções (functions). Arquivos scripts automatizam uma sequência
de comandos. Arquivos de função permitem criar novas funções às existentes. Ambos, scripts e
funções são arquivos texto tipo ASCII.
2.13.1 Arquivos Scripts
O exemplo a seguir ilustra como calcular os primeiros 16 números de Fibonacci usando um ar-
quivo script. Suponha que o nome do arquivo seja fibno.m. Digitando fibno (sem a extensão) no
prompt, faz com os comandos contidos no arquivo sejam executados. Note que depois da execução
do programa as variáveis f e i permanecem na área de trabalho (workspace). Verifique isso com
who. Isso acontece porque os scripts operam globalmente com dados no workspace. Os demos
fornecidos junto ao aplicativo, são bons exemplos de como usar scripts para realizar tarefas mais
F L / L V P 44
CAPÍTULO 2. INTRODUÇÃO 2.13. ARQUIVO M
complexas.
Exemplo 50
% M� f i l e ( s c r i p t ) para c a l c u l a r números de Fibonacc i
menores de 1000
f = [ 1 1 ] ; i = 1 ;
whi l e f ( i ) + f ( i +1) < 1000
f ( i +2) = f ( i ) + f ( i +1);
i = i + 1 ;
end
p lo t ( f )
2.13.2 Arquivos de Funções
Um M-file que contém a palavra function no início da primeira linha é um arquivo de função. Uma
função difere de um script no fato de que argumentos podem ser passados; variáveis definidas e
manipuladas no arquivo são locais à função e não operam globalmente no workspace. A função
listada a seguir tem o nome media1.m.
Exemplo 51
f unc t i on y = media1 (x )
% ca l c u l o da média
% soma / m
% i n i c i o do programa
[m, n ] = s i z e ( x ) ;
i f m == 1
m = n ;
end
y = sum(x ) / m; end
Por exemplo, se z é um vetor de inteiros de 1 a 99, sua média pode ser calculada como se-
gue:
Exemplo 52
>> z = 1 : 9 9 ;
>> media1 ( z )
F L / L V P 45
2.13. ARQUIVO M CAPÍTULO 2. INTRODUÇÃO
ans =
50
A seguir, descreve-se alguns detalhes de mean.m:
• A primeira linha declara o nome da função, os argumentos de entrada e os de saída. Sem
esta linha, o arquivo é um script ao invés de função;
• O símbolo % indica que o resto da linha é um comentário e deve ser ignorado;
• As primeiras linhas documentam um M-file e são mostradas quando pedimos help media1 ;
• As variáveis m, n e y são locais à função e não existem no workspace depois que do término da
função. (Caso a variável já existisse antes da chamada de media1, ela continuaria existindo
depois e inalterada);
• Não foi necessário colocar os inteiros de 1 a 99 numa variável chamada x. De fato, nós
usamos media1 com uma variável chamada z. O vetor z foi passado ou copiado dentro da
função onde ela tornou-se uma variável local chamada x.
Você pode criar uma função um pouco mais complexa que media1, chamada stat, que tam-
bém calcula o desvio padrão. Neste exemplo ilustramos o uso de múltiplos argumentos de
saída.
Exemplo 53
f unc t i on [ mean , stdev ] = s t a t ( x )
[m, n ] = s i z e ( x ) ;
f m == 1
m = n ;
end
mean = sum(x ) / m;
stdev = sq r t (sum(x .^2)/m � mean . ^ 2 ) ;
end
Uma função que calcula o posto de uma matriz usa múltiplos argumentos de entrada: No caso
geral teríamos múltiplos argumentos de entrada e de saída.
Exemplo 54
f unc t i on r = rank (x , t o l )
% rank ( posto em Português ) da matr iz
s = svd (x ) ;
F L / L V P 46
CAPÍTULO 2. INTRODUÇÃO 2.13. ARQUIVO M
i f ( narg in == 1)
t o l = max( s i z e ( x ) ) ⇤ s (1 ) ⇤ eps ;
end
r = sum( s > t o l ) ;
end
Este exemplo também mostra o uso da variável permanente nargin para encontrar o número de
argumentos de entrada. A variável nargout, embora não usada neste exemplo, contém o número
de argumentos de saída.
2.13.3 Criando um Help para Seus Arquivos Pessoais
Você pode criar um help online para os seus M-files pessoais entrando o texto em uma ou mais
linhas de comentário, começando sempre pela segunda linha do arquivo. Por exemplo, o arquivo
da função angle,
Exemplo 55
f unc t i on p = angle (h)
% ANGLE Phase ang le .
% ANGLE(H) r e tu rn s the phase angles , in radians ,
o f a matrix with complex e lements .
% Class support f o r input X:
% f l o a t : double , s i n g l e
% See a l s o ABS, UNWRAP.
% Copyright 1984�2010 The MathWorks , Inc .
% $Revis ion : 5 . 7 . 4 . 2 $ $Date : 2010/04/21 21 : 31 : 19 $
p = atan2 ( imag (h ) , r e a l (h ) ) ;
têm 8 linhas contíguas de comentário a partir da segunda linha. Quando digitamos help angle,
todo esse bloco é mostrado. O mecanismo de help ignora linhas de comentário que aparecem mais
a frente, depois de uma declaração ou mesmo uma linha em branco
2.13.4 Informações Úteis
Quando você chama uma função pela primeira vez, o processador compila a função e a coloca
na memória. Ela estará então disponível para os usos subsequentes sem a necessidade de ser
compilada. Permanecerá na memória até o final da seção ou até que você fique com pouca
F L / L V P 47
2.13. ARQUIVO M CAPÍTULO 2. INTRODUÇÃO
memória, acarretando na sua eliminação automática. O comando what mostra uma listagem dos
M-files no diretório atual do disco. O comando type lista os M-files. De uma maneira geral,
quando você digita um nome de algo no processado, por exemplo, whoopie, o interpretador do
processador executa os seguintes passos:
1. Procura por whoopie como variável;
2. Verifica se whoopie é uma função interna;
3. Procura um o arquivo whoopie.m no diretório atual;
4. Procura um o arquivo whoopie.m nos diretórios especificados pelo path.
2.13.5 INPUT e PAUSE
A função input permite obter dados do usuário.
Exemplo 56
n = input ( ’ Entre com o va lo r de n = ’ )
interrompe a execução, mostra a frase na tela, espera, e então atribui o valor ou expressão digitada
para a variável n.
O comando pause interrompe a execução até que o usuário pressiona uma tecla qualquer. pause(n)
interrompe por n segundos antes de continuar.
2.13.6 Variáveis Globais
Cada função possui suas próprias variáveis locais que são separadas daquelas de outras funções
e daquelas que estão no workspace. Contudo,se você declarar uma variável como global, todas
as funções e o workspace vão enxergar a mesma variável. Para diferenciar das demais variáveis,
costuma-se identificar uma variável global declarando-a com um nome longo e em letras maiúscu-
las, embora isso não seja uma imposição.
Suponha que você queira estudar o comportamento dos coeficientes ↵ e � no problema do modelo
predador-vítima de Latka-Volterra.
@
@t
(y1) = y1 � ↵y2y1
@
@t
(y2) = �y1 + �y2y1
Crie o arquivo lotka.m:
F L / L V P 48
CAPÍTULO 2. INTRODUÇÃO 2.13. ARQUIVO M
Exemplo 57
f unc t i on yp = lo tka ( t , y )
% modelo Votka�Voltera
g l oba l ALFA BETA
yp = [ y (1 ) � ALFA⇤y (1)⇤y ( 2 ) ; �y (2 ) + BETA⇤y (1)⇤y ( 2 ) ] ;
end
Interativamente, entre como as seguintes declarações:
Exemplo 58
>> g loba l ALFA BETA
>> ALFA = 0 . 0 1 ;
>> BETA = 0 . 0 2 ;
>> [ t , y ] = ode23 ( ’ lotka ’ , [ 0 10 ] , [ 1 ; 1 ] ) ;
>> p lo t ( t , y )
Uma vez que ALFA e BETA são globais você pode alterá-las interativamente e novas soluções
podem ser obtidas sem ter que editar nenhum arquivo e sem passar os valores como argumentos.
2.13.7 Variáveis Alfanuméricas
Variáveis do tipo texto são introduzidas no sistema envolvendo o texto com quotas simples (após-
trofos).
Exemplo 59
>> s = ’Ola ’
s =
Ola
O texto é armazenado num vetor, um caracter por elemento. Desejando concatenar textos, use
colchetes:
Exemplo 60
>> s = [ s , ’ Pessoal ’ ]
s =
F L / L V P 49
2.14. MANIPULAÇÃO DE ARQUIVOS CAPÍTULO 2. INTRODUÇÃO
Ola Pessoa l
Valores numéricos são convertidos em variáveis do tipo texto via sprintf, num2str e int2str.
Exemplo 61
>> c = 23 ;
>>t i t l e ( [ ’A temperatura é ’ , num2str ( c ) , ’ graus C ’ ] )
2.13.8 Função EVAL
A função eval é usada com variáveis do tipo texto para implementar recursos de macros de texto.
A função eval(t) força que o texto contido na variável t seja "resolvido". O exemplo a seguir mostra
como usar o comando load para carregar 10 arquivos sequencialmente numerados: dados1.mat,
dados2.mat, ...
Exemplo 62
>> fname = ’ dados ’ ;
>> f o r i = 1 :10
>> eva l ( [ ’ load ’ , fname , i n t 2 s t r ( i ) ] )
>> end
A função eval é especialmente útil na passagem de argumentos de funções cujo parâmetro é um
nome de outra função. Um exemplo típico é o função fplot que passa como argumento o nome
da função a ser exibida:
Exemplo 63
>> fp l o t ( ’ s in ’ , [ 0 10 ] )
2.14 Manipulação de Arquivos
Os comandos load e save recuperam e armazenam dados do workspace em disco.
Os comandos dir, type, delete e cd servem à manipulação de arquivos. Para a maioria desses
comandos devemos especificar o path, wildcards e o drive de destino como normalmente se faz no
DOS.
O comando type difere do comando type usual de uma forma importante. Se nenhuma extensão é
F L / L V P 50
CAPÍTULO 2. INTRODUÇÃO 2.14. MANIPULAÇÃO DE ARQUIVOS
especificada, considera-se a extensão ".m" como default. Portanto, esse comando é normalmente
usado para obtermos uma rápida listagem de um M-file na teta do computador.
O comando diary cria um diário (log) da sua seção na forma de um arquivo ASCII. Todos os
comandos e resultados, exceto gráficos, são automaticamente acrescentados ao arquivo de diário.
2.14.1 Transferência de Dados
Você pode introduzir dados de outros programas. Similarmente, você pode exportar dados para
outros programas. Também é possível usar o formato usa para armazenar dados: MAT-files.
2.14.2 Importando Dados
O melhor método de importar dados depende de quantos dados existem, qual o seu formato, etc.
A seguir, listamos algumas opções:
• Entre com os dados como uma lista explícita dos elementos. Se o número de elementos for
pequeno (10-15 elementos) é mais simples digitar os dados explicitamente usando colchetes.
• Crie um M-file e escreva os dados de forma explícita usando um editor de texto.
• Carregue os dados de um arquivo ASCII.
• Escreva um programa em C para converter seus dados no formato dos MAT-files e então use
o comando load.
• Importe os dados do Excel.
2.14.3 Exportando dados
Para exportar dados também existem várias opções, das quais algumas são listadas a seguir:
• Para matrizes pequenas use o comando diary para criar uma arquivo de diário e então liste
as variáveis neste arquivo. Você pode, mais tarde, usar um editor de texto para manipular
os dados.
• Salve os dados num formato ASCII usando o comando save com a opção -ascii.
F L / L V P 51
2.15. DEPURAÇÃO CAPÍTULO 2. INTRODUÇÃO
Exemplo 64
>> A = rand ( 4 , 3 ) ;
>> save temp . dat A �a s c i i
cria um arquivo ASCII chamado temp.dat
• Salve os dados como MAT-files usando o comando save e então escreva um programa em C
ou FORTRAN para reformatar os dados conforme necessário para a aplicação.
• Exporte os dados para o Excel.
2.15 Depuração
Embora o MATLAB seja uma linguagem menos complexa que outras linguagens de programação,
ele tem sua sintaxe própria e você pode precisar corrigir alguns erros. O MATLAB encontra
erros de sintaxe durante a fase de compilação e esses erros, em geral, são simples de corrigir.
O MATLAB também encontra erros na fase de execução do programa; esses erros tendem a ser
mais difíceis de solucionar por causa do workspace local às funções ser perdido quando um erro
interrompe a execução. Quando isto ocorre, retornamos ao workspace base do MATLAB. Se você
usou ponto-e-vírgula para suprimir os resultados intermediários da tela, não terá como saber onde
o erro ocorreu.
Para mostrar os resultados intermediários, você pode usar um dos métodos a seguir:
• Remova os ponto e vírgula de interesse;
• Use a declaração keyboard para permitir que o workspace seja examinado no ponto da
declaração;
• Torne a primeira linha da função uma linha de comentário de tal forma que a função possa
ser executada como um script, fazendo com que os resultados intermediários sejam acessíveis
no workspace base;
• Use o depurador.
F L / L V P 52
Capítulo 3
Toolbox de Matemática Simbólica
Com o Toolbox de processamento simbólico é possível resolver e manipular expressões matemáti-
cas simbólicas resolvendo analiticamente, por exemplo, diferenciações, integrações, simplificações,
transformadas, solução de equações etc.
Para Inicialização
• O MATLAB se apresenta com o pacote simbólico instalado e pronto para uso.
• No OCTAVE é necessário carregar o pacote symbolic, através do comando:
>> pkg load symbol ic
3.1 Variáveis Simbólicas
Para declarar, por exemplo, as variáveis x e y como objetos simbólicos use o comando syms:
>> syms x y
Depois de criados os objetos simbólicos, se podem realizar cálculos matemáticos tais como:
>> z = x + x + y
z =
2⇤x + y
3.1.1 Matriz de variáveis simbólicas
Depois de declarar as variáveis simbólicas elas podem fazer parte da definição de uma ma-
triz.
Exemplo 65
>> syms a b c d e f g h i
>> A = [ a b c ; d e f ; g h i ]
53
3.1. VARIÁVEIS SIMBÓLICAS CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA
A =
[ a , b , c ]
[ d , e , f ]
[ g , h , i ]
Note que não é necessário declarar explicitamente a matriz A como um objeto simbólico. Agora
podemos operar simbolicamente com a matriz A
Exemplo 66
>> determinante = det (A)
determinante =
a⇤e⇤ i � a⇤ f ⇤h � b⇤d⇤ i + b⇤ f ⇤g + c⇤d⇤h � c⇤e⇤g
>> B = A + A
B =
[ 2⇤a , 2⇤b , 2⇤ c ]
[ 2⇤d , 2⇤e , 2⇤ f ]
[ 2⇤g , 2⇤h , 2⇤ i ]
3.1.2 Simplificações
Existem algumas funções que alteram a forma de uma função simbólica. Os exemplos a se-
guir ilustram alguns desses comandos: pretty, collect, expand, horner, factor, simplify.
Exemplo 67
>> syms x
>> f = x^3 � 6⇤x^2 + 11⇤x � 6 ;
>> pre t ty ( f ) % v i s u a l i z a ç ã o e l e gan t e
3 2
x � 6 x + 11 x ? 6
>> syms x
>> f = (x�1)⇤(x�2)⇤(x�3);
>> c o l l e c t ( f ) % agrega potênc i a s i g u a i s
x^3 � 6⇤x^2 + 11⇤x ? 6
>> syms a x y
F L / L V P 54
CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA 3.1. VARIÁVEIS SIMBÓLICAS
>> f = a⇤(x + y ) ;
>> expand ( f ) % d i s t r i b u t i v a
a⇤x + a⇤y
>> syms x
>> f = x^3 � 6⇤x^2 + 11⇤x � 6 ;
>> horner ( f ) % forma aninhada
x⇤(x⇤(x � 6) + 11) � 6
>> syms x
>> f = x^3 �6⇤x^2 + 11⇤x � 6 ;
>> f a c t o r ( f ) % f a t o r de menor ordem
(x � 3)⇤ ( x � 1)⇤ ( x � 2)
>> syms x y
>> f = exp (x ) ⇤ exp (y ) ;
>> s imp l i f y ( f ) % s imp l i f i c a ç ã o
exp (x + y)
3.1.3 Substituições
Use o comando subs para realizar substituições diversas.
Exemplo 68
>> syms x
>> f = 2⇤x^2 � 3⇤x + 1 ;
>> subs ( f , {x} , {1/3} ) % x 1/3
ans =
2/9
>> syms x y
>> f = x + y ;
>> subs ( f , {x , y} , {2 ,�3} ) % x 2 , y �3
ans =
�1
>> syms x y m
F L / L V P 55
3.1. VARIÁVEIS SIMBÓLICAS CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA
>> f = x + y ;
>> subs ( f , {x , y} , {2 , m} ) % x 2 , y m
ans =
m+2
3.1.4 Diferenciação Simbólica
Use o comando diff para realizar diferenciações.
Exemplo 69
>> syms x
>> f = s i n (x )^2 ;
>> d i f f ( f )
ans =
2⇤ cos ( x )⇤ s i n (x )
>> syms x y
>> f = s i n (x)^2 + cos (y )^2 ;
d i f f ( f , y ) % der ivada p a r c i a l de f em r e l a ç ão a y
ans =
�2⇤cos ( y )⇤ s i n (y )
3.1.5 Integração Simbólica
Use o comando int para realizar integrações simbólicas.
Exemplo 70
>> syms x y
>> f = x^2 + y^2;
>> in t ( f , y ) % i n t e g r a l i n d e f i n i d a de f em re l a ç ão a y
ans =
x^2⇤y + y^3/3
>> syms x y
>> f = x^2 + y^2;
>> in t ( f , y , 3 , 5) % i n t e g r a l d e f i n i d a desde 3 até 5
F L / L V P 56
CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA 3.1. VARIÁVEIS SIMBÓLICAS
ans =
2⇤x^2 + 98/3
3.1.6 Solução de Equações Algébricas
Use o comando solve para determinar a solução de equações ou sistemas de equações. Veja alguns
exemplos a seguir e note que ao definir a equação utiliza-se o sinal (==). Caso o sinal (==) seja
omitido, o lado direito da equação é suposto nulo.
Exemplo 71
>> syms x
>> f = ( x^2 + 5⇤x == �6 ) ;
>> so l v e ( f )
ans =
�3
�2
>> syms x
>> f = ( x^2 + 5⇤x � 6 ) ;
>> so l v e ( f )
ans =
�3
�2
Nas equações com múltiplas variáveis simbólicas, pode-se especificar para qual variável a equação
deve ser resolvida. No exemplo a seguir a função depende de x e y e sua solução é determinada
em relação a y.
Exemplo 72
>> syms x y
>> so l v e (6⇤x^2 � 6⇤x^2⇤y + x⇤y^2 � x⇤y + y^3 � y^2 == 0 ,y )
ans =
1
2⇤x
�3⇤x
F L / L V P 57
3.1. VARIÁVEIS SIMBÓLICAS CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA
A seguir mostra-se uma forma possível de representar e resolver um sistema de duas equações e
duas incógnitas.
Exemplo 73
>> syms x1 x2
>> f1 = ( x1⇤x2 + x2 == 3 ) ;
>> f2 = ( x1 � x2 == 1 ) ;
>> [ xx1 , xx2 ] = so l v e ( f1 , f2 , x1 , x2 )
xx1 = xx2 =
2 1
�2 �3
A verificação da exatidão da solução pode ser feita com o comando subs, atribuindo os valores
numéricos das soluções encontradas nas funções
Exemplo 74
>> subs ( f1 , {x1 , x2 } , { xx1 (1 ) , xx2 (1 ) } )
>> subs ( f2 , {x1 , x2 } , { xx1 (2 ) , xx2 (2 ) } )
ans = ans =
3 == 3 1== 1
3.1.7 Gráficos de Funções Simbólicas
O comando ezplot é uma das formas mais imediatas para se exibir o gráfico de uma função
explícita ou mesmo implícita.
Exemplo 75
>> syms x
>> ezp l o t ( x^3 � 6⇤x^2 + 11⇤x � 6)
>> t i t l e ( ’ Função Exp l í c i t a : y = x^3 � 6⇤x^2 + 11⇤x � 6 ’ )
Exemplo 76
>> syms x y
>> ezp l o t ( ( x^2 + y^2)^4 == (x^2 � y^2)^2 , [�1 1 ] )
F L / L V P 58
CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA 3.1. VARIÁVEIS SIMBÓLICAS
>> t i t l e ( ’ Função Imp l í c i t a no i n t e r v a l o [ �1 ,1 ] ’
3.1.8 Solução de Equações Diferenciais
Para ilustrar como usar o comando dsolve, considere a equação diferencial ordinária de 1a ordem
com condição inicial .
@
@t
�
y(t)
�
= �y(t)
F L / L V P 59
3.1. VARIÁVEIS SIMBÓLICAS CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA
Exemplo 77
>> syms x ( t )
>> f ( t ) = ( d i f f ( x ) == �x ) ;
>> [ xx ] = dso lve ( f ( t ) , x (0 ) == �1)
xx =
�exp(�t )
Considere agora a equação diferencial ordinária de 2a ordem com condições iniciais y(0) = 1 e
y(0) = 0.
@2
@t2
�
y(t)
�
= cos (2t)� y(t)
Exemplo 78
>> syms y ( t )
>> Dy = d i f f ( y ) ;
>> y( t ) = dso lve ( d i f f (y , 2) = = cos (2⇤ t ) � y ,
y (0 ) = = 1 , Dy(0) = = 0 ) ;
>> y( t ) = s imp l i f y ( y ) ;
>> pre t ty ( y ( t ) )
/ t \ 4
8 s i n | ��� |
\ 2 /
1 � ����������������
3
Muitas vezes as equações diferenciais estão na forma de um sistema de equações. Para ilustrar
um caso desses considere o sistema a seguir com x1(0) = 1 e x2(0) = 0.
@
@t
(x1 (t)) = x2 (t)
@
@t
(x2 (t)) = �6x1 (t)� 5x2 (t)
F L / L V P 60
CAPÍTULO 3. TOOLBOX DE MATEMÁTICA SIMBÓLICA 3.1. VARIÁVEIS SIMBÓLICAS
Exemplo 79
>> syms x1 ( t ) x2 ( t )
>> f1 ( t ) = ( d i f f ( x1 ) = = x2 ) ;
>> f2 ( t ) = ( d i f f ( x2 ) = = �6⇤x1 �5⇤x2 ) ;
>> [ xx1 , xx2 ] = dso lve ( f 1 ( t ) , f 2 ( t ) ,
x1 (0 ) = = 1 , x2 (0 ) = = 0 )
xx1 =
( exp(�3⇤ t )⇤(18⇤ exp ( t ) � 12))/6
xx2 =
�exp(�3⇤ t )⇤ (6⇤ exp ( t ) � 6)
F L / L V P 61
Capítulo 4
Transformada de Laplace
Os comandos laplace e ilaplace determinam a transformada e anti-transformada de Laplace,
respectivamente.
Função dada Comandos MATLAB e OCTAVE
» syms s t
f(t) = 2e
�5t � 5e�2t » F=laplace(2*exp(-5*t)-5*exp(-2*t))
» F=collect(F)
F=
(�3 ⇤ s� 21)/(s2 + 7 ⇤ s+ 10)
» syms s t
f(t) = e
�t
cos (3t) » F = laplace( exp(-t)*cos(3*t)) 7
F=
(s+ 1)/((s+ 1)2 + 9)
» syms s t
F(s) =
s
s2 + 4s+ 5
» f = ilaplace()s/(s2 + 4 ⇤ s+ 5))
f=
exp(�2 ⇤ t) ⇤ (cos(t)� 2 ⇤ sin(t))
» syms s t
F(s) =
5
(s+ 1) (s+ 2)2
» f = ilaplace(5/((s+ 1) ⇤ (s+ 2)2))
f=
5 ⇤ exp(�t)� 5 ⇤ exp(�2 ⇤ t)� 5 ⇤ t ⇤ exp(�2 ⇤ t)
62
CAPÍTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE
4.0.1 Transformada Z
Os comandos ztrans e iztrans determinam a transformada Z e anti-transformada Z, respectiva-
mente.
Função dada Comandos MATLAB e OCTAVE
» syms k z
f(k) = sen(K) » f=sin(k);
» F=ztrans(f,k,z)
(z ⇤ sin(1))/(z2 � 2 ⇤ cos(1) ⇤ z + 1)
» syms z k
» F = z/((z + 0.2) ⇤ (z + 0.5) ⇤ (z � 1));
» f = iztrans(F, k);
» disp(’f(k)=’)
F(z) =
z
(z + 0, 2) (z + 0, 5) (z � 1) » pretty(f)
f(k)=
k k
20 (�1/2) 25 (�1/5)
������������ � ������������ + 5/9
9 9
4.1 Toolbox de Sistema de Controle
No Toolbox de Sistema de Controle, os modelos de sistemas Lineares e Invariantes no Tempo (LTI)
são representados por Objetos. Os objetos de modelos são estruturas de dados e atributos que
permitem a manipulação de sistemas LTI com entidades únicas. Os objetos de modelos podem
representar sistemas escalares, ou seja, de entrada e saída únicas (SISO) e sistemas vetoriais de
entradas e saída múltiplas (MIMO), tanto de tempo contínuo como de tempo discreto.
Os sistemas LTI podem ser especificados no espaço de estados (objeto SS), por meio e funções de
transferência (objeto TF) e modelos dados pelos seus zeros, polos e ganho (objeto ZPK).
4.1.1 Função de Transferência
Uma função de transferência SISO é caraterizada pelo seu numerador e denominador
F(s) =
s
s2 + 2s+ 10
F L / L V P 63
4.1. SISTEMA DE CONTROLE CAPÍTULO 4. TRANSFORMADA DE LAPLACE
é representada por um objeto TF que contém os coeficientes do polinômio do numerador e do
denominador:
Exemplo 80
>> numerador=[1 0 ] ;
>> denominador=[1 2 1 0 ] ;
>> F=t f ( numerador , denominador )
F =
s
��������������
s^2 + 2 s + 10
Continuous�time t r a n s f e r func t i on .
Matrizes de transferência (funções de transferência MIMO) são formadas por elementos que são
funções de transferência.
F(s) =
2
4
s
s2 + 2s+ 10
s� 1
s+ 1
3
5
=
"
F1(s)
F2(s)
#
Exemplo 81
>> F1 = t f ( [ 1 0 ] , [ 1 2 10 ] ) ;
>> F2 = t f ( [ 1 �1 ] , [ 1 1 ] ) ;
>> F = [ F1 ; F2 ]
F =
From input to output . . .
s
#1: ��������������
s^2 + 2 s + 10
s � 1
#2: �����
s + 1
Continuous�time t r a n s f e r func t i on .
Uma maneira talvez mais visual de definir uma função de transferência é definindo primeiro a
função ’s’. Por exemplo, veja como isso seria feito para o caso da função de transferência
F(s) =
s
s2 + 2s+ 10
F L / L V P 64
CAPÍTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE
Exemplo 82
>> S=t f ( ’ s ’ ) ;
>> F=S/(S^2+2⇤S+10)
F =
s
��������������
s^2 + 2 s + 10
Continuous�time t r a n s f e r func t i on .
4.1.2 Zero-Polo-Ganho
Um modelo SISO pode ser caraterizado pelosseus zeros, polos e ganho. Por exemplo, a função
de transferência
F(s) = 5
(s+ 1) (s+ 2)
(s+ 3) (s+ 4)
é representada por um objeto ZPK por meio dos valores de seus zeros, polos e ganho:
Exemplo 83
>> ze ro s=[�1 �2];
>> po lo s=[�3 �4];
>> ganho = [ 5 ] ;
>> F=zpk ( zeros , polos , ganho )
F =
5 ( s+1) ( s+2)
�������������
( s+3) ( s+4)
Continuous�time zero / po le / gain model .
4.1.3 Espaço de Estados
Um modelo SISO ou MIMO pode ser caraterizado pelas Matrizes A, B, C e D da representação
no espaço de estados.
@x
@t
= Ax+Bu
y = Cx+Du
F L / L V P 65
4.1. SISTEMA DE CONTROLE CAPÍTULO 4. TRANSFORMADA DE LAPLACE
em que
A =
"
0 1
�2 �3
#
B =
"
0 1
1 0
#
C =
"
1 1
0 3
#
D =
"
0 0
0 0
#
é representada por um objeto SS pelas matrizes A, B, C, D:
Exemplo 84
>> A = [ 0 1 ;�2 �3 ] ;
>> B = [ 0 1 ; 1 0 ] ;
>> C = [ 1 1 ; 0 3 ] ;
>> D = [ 0 0 ; 0 0 ] ;
>> s i s t = s s ( A,B,C,D )
s i s t =
a =
x1 x2
x1 0 1
x2 �2 �3
b =
u1 u2
x1 0 1
x2 1 0
c =
x1 x2
y1 1 1
y2 0 3
d =
u1 u2
y1 0 0
y2 0 0
Continuous�time state�space model .
F L / L V P 66
CAPÍTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE
4.1.4 Tempo Discreto
Para criar modelos LTI de tempo discreto, simplesmente adicione um parâmetro referente ao
tempo de amostragem T
s
(em segundos) aos objetos TF, ZPK, e SS:
Exemplo 85
s i s t = t f ( num, den , Ts )
s i s t = zpk ( z , p , k , Ts )
s i s t = s s (A, B,C,D, Ts )
O comando a seguir cria um função de transferência de tempo discreto com um período de amos-
tragem de 0,1 segundos:
Exemplo 86
>> G = t f ( [ 1 �1] , [ 1 �0.5 ] , 0 . 1 )
G =
z � 1
�������
z � 0 .5
Sample time : 0 . 1 seconds
Disc re te�time t r a n s f e r func t i on .
Uma maneira talvez mais visual de definir uma função de transferência de tempo discreto é
definindo primeiro a função ?z? e o período de amostragem. Por exemplo, veja como isso seria
feito para o caso da seguinte função de transferência para T
s
= 0, 1s
G(z) =
z � 1
z � 0, 5
.
Exemplo 87
>> Ts = 0 . 1 ;
>>Z = t f ( ’ z ’ , Ts ) ;
>>G = (Z � 1)/(Z � 0 . 5 )
G =
z � 1
�������
z � 0 .5
F L / L V P 67
4.1. SISTEMA DE CONTROLE CAPÍTULO 4. TRANSFORMADA DE LAPLACE
Sample time : 0 . 1 seconds
Disc re te�time t r a n s f e r func t i on .
4.1.5 Dados do Objeto LTI
As funções TF, ZPK, e SS colocam todos os dados modelo numa estrutura LTI. Para se extrair os
dados de um objeto LTI utilizam-se os seguintes comandos, onde T
s
é o período de amostragem.
Estas funções fazem uma conversão de modelos automática
[num, den, Ts] = tfdata(sist)
[z, p, k, Ts] = zpkdata(sist)
[A,B,C,D, Ts] = ssdata(sist)
O exemplo a seguir ilustra o uso desses comandos. Note que como o sistema é de tempo
contínuo, Ts retorna nulo indicando isso.
Exemplo 88
>> ze ro s=[�1 �2];
>> po lo s=[�3 �4];
>> ganho = [ 5 ] ;
>> F=zpk ( zeros , polos , ganho ) ;
>> [A, B, C, D, Ts]= ssdata (F)
A =
�3.0000 �2.0000
0 �4.0000
B =
2.8284
2 .8284
C =
�3.5355 �3.5355
D =
5
Ts =
0
4.1.6 Conversão de Modelos
Para converter um objeto para um tipo específico de modelo LTI use as próprias funções TF,
ZPK, e SS:
F L / L V P 68
CAPÍTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE
sist_novo = tf(sist)
sist_novo = zpk(sist)
sist_novo = ss(sist)
O exemplo a seguir mostra como converter de espaço de estados para zero-polo-ganho e função de
transferência.
Exemplo 89
>> s i s t = s s ( �2, 1 , 1 , 3 ) ;
>> zpk ( s i s t )
ans =
3 ( s +2.333)
�����������
( s+2)
Continuous�time zero / po le / gain model .
>> t f ( s i s t )
ans =
3 s + 7
�������
s + 2
Continuous�time t r a n s f e r func t i on .
Para a conversão do tempo contínuo para o tempo discreto utilizam-se as funções específicas c2d
e d2c, respectivamente. A sintaxe dos comandos é:
sysd = c2d(sysc, Ts) %Ts = periodo de amostragem (s)
sysc = d2c(sysd)
Na conversão presume-se o uso de um segurador de ordem zero (ZOH). Para usar um método de
conversão diferente, deve-se especificar o método num terceiro parâmetro de entrada:
sysd = c2d ( sysc, Ts, ’zoh’ ) % Segurador de ordem zero
sysd = c2d ( sysc, Ts, ’foh’ ) % Segurador de 1a ordem
sysd = c2d ( sysc, Ts, ?impulse? ) % Invariância ao impulso
sysd = c2d ( sysc, Ts, ’tustin’ ) % Aproximação de Tustin
sysd = c2d ( sysc, Ts, ’matched’ ) % Equivalência polo-zero
sysc = d2c ( sysd, ’zoh’ ) % Segurador de ordem zero
F L / L V P 69
4.2. OPERAÇÕES COM BLOCOS CAPÍTULO 4. TRANSFORMADA DE LAPLACE
sysc = d2c ( sysd, ’foh’ ) % Segurador de 1a ordem
sysc = d2c ( sysd, ’tustin’ ) % Aproximação de Tustin
sysc = d2c ( sysd, ’matched’ ) % Equivalência polo-zero
4.2 Operações com Blocos
Os objetos de modelos permitem as diversas operações aritméticas.
4.2.1 Malha de Avanço
>> s i s t = s i s t 1 + s i s t 2
4.2.2 Blocos em Cascata
>> s i s t = s i s t 1 ⇤ s i s t 2
F L / L V P 70
CAPÍTULO 4. TRANSFORMADA DE LAPLACE 4.2. OPERAÇÕES COM BLOCOS
4.2.3 Inversão de Blocos
>> s i s t 2=inv ( s i s t 1 )
4.2.4 Soma de Blocos
>> s i s t = [H1 H2 ]
4.2.5 Derivação de Blocos
>> s i s t = [H1
H2 ]
F L / L V P 71
4.2. OPERAÇÕES COM BLOCOS CAPÍTULO 4. TRANSFORMADA DE LAPLACE
4.2.6 Malha de Realimentação Unitária
A Função de Transferência de Malha Fechada (FTMF), pode ser obtida pelo comando
>> sys=feedback ( sys1 , sys2 , 1 )
para realimentação unitária e positiva, utilizar (-1),
>> sys=feedback ( sys1 ,�1)
Exemplo 90
>> num_G=[1 5 ] ;
>> den_G=poly ( [ 0 �3 �4]) ;
>> G=t f (num_G,den_G)
G =
s + 5
�����������������
s^3 + 7 s^2 + 12 s
Continuous�time t r a n s f e r func t i on .
>> num_H=2;
>> den_H=[1 2 0 ] ;
>> H=t f (num_H,den_H)
H =
2
������
s + 20
Continuous�time t r a n s f e r func t i on .
>> sys=feedback (G,H, 1 )
F L / L V P 72
CAPÍTULO 4. TRANSFORMADA DE LAPLACE 4.3. RESPOSTA TEMPORAL
sys =
s^2 + 25 s + 100
�����������������������������������
s^4 + 27 s^3 + 152 s^2 + 238 s � 10
Continuous�time t r a n s f e r func t i on .
4.3 Resposta Temporal
Existem várias funções que permitem investigar o comportamento temporal de sistemas LTI:
impulse Resposta à função impulso unitário
initial Resposta à condição inicial
gensig Resposta ao gerador de sinal
lsim Resposta a uma entrada arbitrária
step Resposta ao degrau unitário
As funções step, impulse e initial podem gerar automaticamente um horizonte temporal de
simulação. A sintaxe associada a essas três funções é:
s tep ( s i s t )
impulse ( s i s t )
i n i t i a l ( s i s t , x0 ) % x0 = vetor de cond içõe s i n i c i a i s
Exemplo 91
>> s i s t =[ t f ( 1 , [ 1 1 1 ] ) , t f ( 1 , [ 1 1 ] ) ]
>> step ( s i s t )
F L / L V P 73
4.3. RESPOSTA TEMPORAL CAPÍTULO 4. TRANSFORMADA DE LAPLACE
>> step ( s i s t , 10 ) % simula de 0 até 10 segundos
>> t = 0 : 0 . 1 : 10 % vetor temporal a cada 0 ,1 s
>> step ( s i s t , t ) % simula em função do t e s p e c i f i c a d o
>> t = 0 : 0 . 1 : 10
>> u = s in ( t ) % entrada p a r t i c u l a r
>> ls im ( s i s t , u , t ) % simula para a entrada e s p e c i f i c a d a
4.3.1 Resposta em Frequência
O quadro a seguir resume algumas das funções disponíveis para a análise em frequência de sistemas
LTI:
bode Diagrama de Bode
margin Margens de Ganho e de Fase
nyquist Diagrama de Nyquist
nichols Carta de Nichols
As funções podem gerar os valores das frequências para os quais a resposta será calculada. A
escolha da faixa desses valores é feita em função dos polos e zeros da função. Para impor uma
dada faixa particular de frequências num intervalo [wmin, wmax], use a seguinte sintaxe.
bode ( s i s t , {wmin ,wmax}) % Atenção às ’ chaves ’
F L / L V P 74
CAPÍTULO 4. TRANSFORMADA DE LAPLACE 4.3. RESPOSTA TEMPORAL
É possível também especificar um vetor particular de pontos com espaçamento logaritmo, por
exemplo, desde 10�1 até 10+1 e com 100 pontos:
>> w=logspace (�1 ,+1 ,100);
>> bode ( s i s t ,w)
4.3.2 Resposta Numérica
Para se obter os valores numéricas das respostas temporais e frequências deve-se usar as variáveis
de retornos das funções. Veja alguns exemplos de sintaxes a seguir:
[y,t] step(sist)
[ganho, fase,

Outros materiais