Tutorial do Octave
V0.1 - março-2015
Conteúdo
1. INTRODUÇÃO
2. INICIANDO O OCTAVE
3. OPERAÇÕES COM MATRIZES E VETORES
4. GRÁFICOS
5. ARQUIVOS SCRIPT
6. CONTROLE DE FLUXO
7. ABERTURA E VISUALIZAÇÃO DE IMAGENS
8. IMPORTAÇÃO / EXPORTAÇÃO DE DADOS
9. CRIAÇÃO E USO DE FUNÇÕES
REFERÊNCIAS
1. Introdução
1.1 O que é o Octave
O OCTAVE é um aplicativo que foi originalmente desenvolvido com o propósito didático, mais
especificamente para o projeto de reatores químicos e surgiu a partir da intenção de criar um aplicativo
no qual a programação fosse mais rápida do que nas demais linguagens. Deste modo, os alunos
poderiam dedicar mais tempo na análise e solução dos problemas de química, do que especificamente
na implementação.
O seu desenvolvimento começou por volta de 1988 e um de seus idealizadores foi John W. Eaton, além
de James B. Rawlings da Universidade de Wisconsin-Madison e John G. Ekerdt da Universidade do
Texas. Atualmente o desenvolvimento é feito por vários profissionais, de diferentes países, sendo a sua
distribuição feita de acordo com a licença GLP (GNU General Public License).
Onde encontrar:
● [Link]
● [Link]
Características básicas:
● Domínio público;
● Possui vários comandos que são semelhantes ao MATLAB® e SciLab®;
● São disponíveis versões para diferentes sistemas operacionais: Linux, Unix, Windows, Mac,
etc.
Última versão (estável): 4.2.1 (Lançada em Fevereiro/2017)
(Windows: [Link]
1.2. Ambiente de trabalho e comandos básicos do sistema
Interface gráfica do Octave versão 4.2.0
Além dessas versões, que podem ser instaladas e executadas no modo off-line, também é possível
executar o OCTAVE de modo online, a partir do endereço mostrado abaixo.
Fonte: [Link]
Octave online
[Link]
Alguns comandos do OCTAVE são básicos e semelhantes a outros usados em sistemas operacionais
como DOS, Unix, Linux, dentre outros. A tabela seguinte mostra alguns destes comandos, que podem se
acionados a partir do prompt do OCTAVE.
Alguns outros comandos: mkdir, rmdir, etc.
1.3. Pacotes / Bibliotecas adicionais do OCTAVE
O OCTAVE é um software que continua em constante desenvolvimento e após a instalação do aplicativo,
outros pacotes adicionais podem ser instalados. Para ter uma lista dos pacotes disponíveis para o
OCTAVE sugere-se a consulta da seguinte página [Link]
Antes de instalar qualquer pacote adicional, pode-se ativar o comando “pkg list” no prompt do OCTAVE
para ver todos os pacotes já instalados.
Para a instalação de um pacote qualquer, de nome package_file_name.[Link], basta ativar o seguinte
comando no prompt do OCTAVE:
pkg install package_file_name.[Link]
Uma vez que para o desenvolvimento deste tutorial são necessárias apenas algumas delas, sugere-se a
instalação apenas dos seguintes pacotes:
control
general
image
signal
2. Iniciando o Octave
2.1 Variáveis
O OCTAVE trabalha essencialmente com um tipo de variável: matriz, que pode conter números,
complexos ou não (um escalar é uma matriz 1 x 1) e textos. Em alguns casos, um tratamento especial é
dado a uma matriz 1 x 1 (escalar) ou a matrizes 1 x n ou n x 1 (vetores).
2.1.1. Entrando com valores
No OCTAVE não é necessário que sejam declaradas as variáveis e os respectivos tipos (inteiro, char,
double, etc,) para iniciá-las, como é feito em outras linguagens de programação (C/C++, dentre outras).
Ao atribuir valores numéricos (ou alfanuméricos) a uma variável, o programa aloca a memória
automaticamente.
A maneira mais fácil de entrar com uma pequena quantidade de valores é digitando diretamente os
dados:
● envolva os elementos com colchetes, [ ]; (Para matrizes e vetor)
● separe cada elemento com espaços ou vírgulas;
● use ponto-e-vírgula (;) para indicar fim da linha.
Por exemplo, para entrar com a matriz abaixo na memória do computador, e guardá-la na variável A:
Basta digitar:
» A=[1 2 3; 4 5 6; 7 8 9] ou » A=[1, 2, 3; 4, 5, 6; 7, 8, 9]
Resultado:
OBS: Para que o computador realize a operação e não mostre a saída, basta terminar a expressão com
ponto-e-vírgula (;). Isto é muito útil para evitar que o computador mostre resultados de cálculos
intermediários desnecessários, e para acelerar as operações.
2.1.2. Variáveis reservadas
Existem algumas variáveis que são intrínsecas ao OCTAVE, como por exemplo:
2.2. Expressões e comandos básicos
O OCTAVE, assim como o MATLAB, são linguagens de alto nível e interpretadas. Nestas linguagens o
sistema avalia as expressões digitadas, que são geralmente na forma:
variável = expressão
Os números reais são escritos em notação decimal e para criar números complexos basta escrever i (ou
j) depois da parte imaginária. Alguns exemplos de números permitidos são mostrados abaixo:
Todo cálculo é realizado com todas as casas decimais (eps), embora os números mostrados
ocultem algumas dessas casas. Para mudar o formato de saída dos números, pode-se usar o comando
format.
O formato “default”, chamado de formato short, mostra aproximadamente 5 dígitos significativos ou
usam notação científica. Exemplo:
>> x = [4/3 1.2345e-6]
é mostrada, para cada formato usado, da seguinte maneira:
O formato + é uma maneira compacta de mostrar matrizes de grandes dimensões. Os símbolos "+",
"-", e "espaço em branco" são mostrados, respectivamente para elementos positivos, elementos
negativos e zeros.
Podem-se construir expressões com os operadores aritméticos usuais:
O OCTAVE possui um conjunto de funções matemáticas elementares, com seno (sin), tangente
(tan), logaritmo (log10), etc. Por exemplo, para calcular o seno de 30 e guardar na variável x pode-se
escrever:
» x=sin(30)
x = -0.98803 (para format short)
Funções Elementares (colocadas em ordem alfabética)
Funções Elementares (continuação)
Algumas dessas operações podem ser aplicadas a vetores ou matrizes. Para a função std(x), por
exemplo, se o argumento x for um vetor o resultado será o desvio padrão desse vetor. Se x for uma
matriz, será calculado o desvio padrão para cada coluna dessa matriz. O mesmo ocorre com as funções
sum, max e mean, entre outras.
exercício
Usando os comandos vistos determine a média, desvio padrão, a soma dos
elementos, bem como os valores máximo e mínimo do vetor V abaixo:
>> V=[1 2 3 4 5 6 7 8 9]
2.2.1. Comandos
Ao sair do OCTAVE (através do comando quit ou exit) todas as variáveis do workspace são
perdidas, a menos que sejam salvas usando o comando save.
Como usar o comando save, bem como outros relacionados:
Um dos comandos mais úteis no OCTAVE, bem como em diversos aplicativos, é o help, que fornece
ajuda on-line sobre qualquer outro comando. Por exemplo, para obter ajuda sobre o comando who:
Outro comando útil: lookfor. Este comando procura e lista todas as funções do
OCTAVE que contém a palavra-chave especificada.
» lookfor mean
Resultado: mean, meansq e mean2.
2.2.2. Exercícios
1) Armazene no workspace os seguintes valores:
Utilize os comandos who e whos e observe as diferenças.
Ative o comando clear, e digite novamente o comando whos.
2) Armazene no workspace os seguintes valores:
3) Verifique o resultado das seguintes das seguintes operações:
Efetuar os cálculos (formato padrão), depois mudar para o formato long
Comandos: save, quit (ou exit), load, clear, whos.
4) Atribua as seguintes expressões às variáveis:
5) Salve as variáveis x, y, z em um arquivo chamado [Link].
6) Saia do OCTAVE, entre novamente e carregue as variáveis salvas
anteriormente.
7) Apague a variável z e verifique se ela foi realmente apagada.
3. Operação com matrizes e vetores
O OCTAVE permite a manipulação de linhas, colunas, elementos individuais e partes de matrizes.
3.1. Geração de vetores
A geração de uma seqüência de números pode ser feita utilizando:
gera um vetor linha contendo os números de 1 a 5 com incremento u
outros exemplos com incrementos diferentes de um
e Incrementos negativos também são possíveis.
Pode-se também gerar vetores usando a função linspace.
Sintaxe: linspace (inicio, fim, número de elementos)
Exemplo de uso:
3.2. Elementos das matrizes
Um elemento específico da matriz pode ser acessado especificando a linha e a
coluna do elemento desejado, fazendo A(linha, coluna).
Por exemplo, dada a matriz A
qual o resultado da seguinte operação?
>> A(3,3) = A(1,3) + A(3,1)
“Extração” de submatrizes de uma dada matriz
>> B = A(2:3,4) Armazena em B os elementos das linhas 2 e 3 da coluna 4.
C é uma submatriz 2x4, formada pelas linhas 2 e 3 e colunas 2 a 4 da matriz A.
>> D = triu(A) ← Extrai a triangular superior.
Geração de algumas matrizes especiais:
Exemplo 1: B uma matriz 10x10 unitária.
>> B = ones (10)
Exemplo 2: C uma matriz de dimensão 8x8 com elementos nulos.
>> C = zeros (8)
← Extrai a diagonal de uma dada
matriz.
3.3. Operações com matrizes
Operações matemáticas simples (adição, subtração, divisão e multiplicação)
envolvendo matrizes são semelhantes às operações com escalares.
Nas operações entre matrizes devem ser respeitadas as regras usuais da
matemática quanto ao número de linhas e colunas que duas matrizes devem ter
para serem somadas, multiplicadas, etc. No entanto existem operações
especiais. Sendo A=[a1 a2 a3] e B=[b1 b2 b3] duas matrizes, então:
Alguns comandos adicionais para a operação com matrizes:
3.4. Exercícios
4. Gráficos
A construção de gráficos no OCTAVE é bem simples e a maior parte dos
comandos é muito parecida com os usados pelo MATLAB, sendo possível a
geração de gráficos bidimensionais ou tridimensionais.
Existe no OCTAVE um grande conjunto de comandos que permite a construção
de gráficos.
Na versão atual do OCTAVE a saída gráfica é, por default, criada usando o
OpenGL e Qt. Caso as bibliotecas do OpenGL não estejam disponíveis o GnuPlot
é utilizado.
Caso o usuário queira modificar a interface de saída o comando graphics_toolkit (opção) pode ser usado.
As imagens abaixo mostram o mesmo gráfico gerado com as opções “gnuplot”e “fltk” respectivamente.
Para saber as opções disponíveis:
4.1. Comandos gráficos básicos (bidimensionais)
Se y é um vetor, plot(y) produz um gráfico linear dos elementos de y versus o
índice dos elementos de y.
Por exemplo, para plotar os números [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0.14], entre
com o vetor y e execute o comando plot, como mostrado:
Se t e y são vetores com dimensões iguais, o comando plot(t,y) produz um gráfico
bidimensional dos elementos de t versus os elementos de y, por exemplo
O OCTAVE pode também plotar múltiplas linhas em apenas um gráfico. Comando
plot com múltiplos argumentos. Exemplo:
4.2. Estilos de Linha e Símbolo
Os tipos de linhas, símbolos e cores usadas para mostrar os gráficos podem ser controlados. Seguem
alguns exemplos
Obs: subplot (ROWS, COLS, INDEX)
Outros tipos de linhas, pontos e cores também podem ser usados
4.3. Exercícios
Criar os seguintes gráficos:
Gráfico simples (plot)
Gráfico de barras (bar)
Sequência discreta (stem)
Escada (stairs)
resultado
Dado o vetor: y= [ 1 2 3 7
3 8 8 4 10 1 3 7 8 9 10 6]
construa o gráfico de
barras bem como o
histograma (hist(y,NBINS)
de frequências.
Verificar o resultado do uso dos seguintes comandos:
>> t=1:pi/10:6*pi;
>> y=(1-t).*sin(t);
>> comet(y)
>> y=exp(-0.25*t).*sin(t);
>> comet(y)
4.4. Geração de Gráficos Tridimensionais e Isolinhas
Estes são alguns comandos para gerar gráficos tridimensionais e contornos.
O comando mesh(x,y,z) cria uma perspectiva tridimensional plotando os
elementos da matriz z em relação ao plano definido pelas matrizes x e y. Exemplo
de uso:
>> t = -2:0.2:2;
>> [x, y] = meshgrid(t, t);
>> z = x.* exp(-x.^2 - y.^2);
>> mesh(x,y,z)
Verifique as seguintes opções:
>> surf(x, y, z)
>> colormap(gray);
Outros exemplos de superfícies (ainda usando a mesma função) no qual se
considera que a superfície é iluminada por uma fonte de luz, dando o efeito de
"sombreamento". Seguem algumas das alternativas:
>> colormap(bone)
>> surfl(x, y, z) , shading faceted
>> colormap(bone)
>> surfl(x, y, z) , shading flat
>> colormap(bone)
>> surfl(x, y, z) , shading interp
Curvas de nível
O comando contour(z,10) mostra a projeção da superfície definida (pela função z), no plano cartesiano
xy, com 10 iso-linhas. A figura seguinte mostra o resultado para a superfície anterior.
>> colormap("prism")
>> contour(z,10)
4.5. Anotações no Gráfico
O OCTAVE possui alguns comandos que permitem adicionar informações em um gráfico, como por
exemplo:
Exemplo
Exemplo do comando fplot para múltiplas funções
Outras possibilidade para a visualização de múltiplas funções:
5. Arquivos script (extensão .m)
Os comandos do OCTAVE são normalmente digitados na área de trabalho, onde cada linha de comando
é introduzida e imediatamente processada. O OCTAVE é também capaz de executar sequências de
comandos armazenadas em arquivos ASCII com extensão m. Estes arquivos podem ser criados por
alguns aplicativos como Notepad++, Notepad, Textpad, Sublime Text, etc.
Uma outra possibilidade para criar e editar estes arquivos é por meio do editor do próprio ambiente de
trabalho do OCTAVE. Como pode-se notar na próxima figura, tem-se na parte inferior da tela a aba
Editor. É sugerido que antes de criar o arquivo, com extensão “m”, que seja escolhido e definido o
diretório de trabalho, como indicado na próxima figura.
GUI do OCTAVE 4.2.0, na qual são destacados e Editor e o Diretório de trabalho.
Diretório de trabalho
Editor
Na sequência são apresentados alguns comandos e declarações especiais para
serem usados nos arquivos script, por exemplo:
Exemplo de arquivo Script
6. Controle de Fluxo
Referências