Introdução ao GNU Octave

Capa: Introdução ao GNU Octave

Softwares de simulação e análise numérica são essenciais para estudantes e profissionais das áreas de exatas, principalmente das Engenharias. Muitas vezes, é necessário resolver equações complicadas, processar um grande volume de dados, gerar gráficos e também programar scripts. Ferramentas como o GNU Octave facilitam essas tarefas, pois disponibilizam diversas funções para se trabalhar com aplicações específicas. Assim, é possível resolver problemas de Cálculo Numérico, Álgebra Linear, Probabilidade e Estatística, Sistemas de Controle, Processamento de Sinais e de muitos outros campos de estudo.

Sobre o GNU Octave

O GNU Octave é uma linguagem de alto nível voltada principalmente para a computação numérica. Ela fornece uma interface de linha de comando conveniente para resolver numericamente problemas lineares e não lineares. Além disso, é possível realizar outros experimentos numéricos utilizando uma linguagem que é muito similar a do MATLAB. Também é possível utilizar a plataforma para a execução de tarefas (jobs) em linguagem do tipo batch.

O GNU Octave possui diversas ferramentas para a resolução de vários tipos de problemas, dentre os quais podemos citar:

  • Álgebra linear (principalmente matrizes e vetores);
  • Equações não-lineares;
  • Integração e diferenciação de equações ordinárias;
  • Manipulação de polinômios;

Essa plataforma é extensível e customizável através de funções desenvolvidas pelo usuário na linguagem própria do Octave. Também é possível carregar módulos escritos em C++, C, Fortran e outras linguagens.

O GNU Octave é também um software livre. É possível redistribui-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU (GPL – General Public License). Além disso, é possível contribuir para a evolução da ferramenta construindo novas funções ou módulos complementares.

Instalando o GNU Octave

O Octave está disponível para Linux, Mac e Windows. Você pode se dirigir à página de Downloads do GNU Octave e seguir os procedimentos lá expostos para a instalação de acordo com o seu sistema operacional. Abaixo, estão listados alguns detalhes sobre a instalação em Linux e Windows.

-> Instalação no Linux Ubuntu

Para instalar o Octave no Ubuntu utilizando o gerenciador de repositórios apt-get, existem duas opções. A primeira opção é instalar a versão já disponibilizada no próprio apt-get. Na data atual, utilizando o Ubuntu 16.04 LTS, a versão disponível no repositório é a 4.0.0. Veja a seguir:

Para fazer a instalação do software, recomenda-se atualizar a lista do repositório antes de prosseguir com a instalação.

Mas há também a opção de instalar a versão mais atual e estável do Octave a partir de sua PPA (Personal Package Archives). Para isso, é necessário adicionar a PPA do GNU Octave à lista do gerenciador de repositórios. Depois, basta prosseguir com a atualização e instalação.

Para mim, no momento em que escrevo este artigo, a versão disponível na PPA é ligeiramente mais atual:

Então, fique à vontade para escolher a versão e o modo de instalação que melhor lhe atende. Ao executar o programa pela primeira vez, caso você tenha algum problema de permissão, corrija-o utilizando o comando chmod.

-> Instalação no Windows

Na página de downloads do GNU Octave, clique na aba Windows e depois no link lá indicado. Você será redirecionado para uma outra página que contém diversas versões do programa. Na data deste tutorial, a versão mais atual disponível é a 4.2.1. Baixe o arquivo .exe e instale-o da forma convencional, clicando em “Avançar”. Essa é a versão que utilizo atualmente para fazer os tutoriais disponíveis neste site e no meu Canal do YouTube.

-> Instalando e Removendo Pacotes Adicionais

É possível instalar pacotes de ferramentas adicionais através do Octave-Forge. Lá, você encontra uma série de pacotes com aplicações específicas, que estendem as funcionalidades do Octave. Para instalar, selecione um pacote, faça o download do arquivo (normalmente em formato tar.gz) e execute o seguinte comando no Octave:

Lembre-se que é necessário selecionar a pasta onde o arquivo tar.gz está através do gerenciador de arquivos. Se a instalação for finalizada com sucesso, nenhuma mensagem será escrita no prompt de comandos. Caso haja algum erro, o mesmo será reportado.

É possível também instalar vários pacotes de uma só vez colocando o nome dos pacotes separados por espaços após o comando pkg install. Assim teríamos:

Você pode verificar quais pacotes já estão instalados na sua versão do GNU Octave digitando o comando pkg list:

Para remover um pacote, utiliza-se o comando uninstall com o nome do pacote que deseja-se remover:

Se a remoção do pacote for efetuada com sucesso, nenhuma mensagem será escrita no prompt de comandos. Caso haja algum erro, o mesmo será reportado. E deve-se notar que o arquivo utilizado na instalação não é necessário para removê-lo, apenas o nome que consta no resultado do comando pkg list.

Para cada pacote, é possível consultar o Manual de Referência das Funções (Function Reference). Através do mesmo, é possível obter informações sobre a utilização de cada função que integra o pacote. Particularmente, recomendo a instalação do pacote symbolic que possibilita efetuar cálculos simbólicos no Octave.

GNU Octave vs MATLAB

O GNU Octave foi feito para ser compatível com o MATLAB. Para quem ainda não conhece, o MATLAB é, atualmente, a ferramenta de computação matemática mais famosa e difundida do mercado. Enquanto o Octave é um software livre, o MATLAB é um software pago; Ambas as plataformas possuem várias características em comum:

  • Matrizes como o principal tipo de dado;
  • Suporte embutido para números complexos;
  • Poderosas funções matemáticas embutidas e bibliotecas para estender as funcionalidades;
  • Os usuários podem criar funções próprias de acordo com suas necessidades.

Na prática, o Octave é em grande parte compatível com o MATLAB. Contudo, em alguns casos, o Octave permite sintaxes (frequentemente úteis) que o MATLAB não permite. Por esse motivo, programas escritos no Octave podem não ser executados com sucesso no MATLAB. Por exemplo, o Octave aceita tanto aspas simples como aspas duplas; já o MATLAB aceita somente aspas simples, o que geraria um erro de parsing (sintaxe).

Há também algumas limitações e diferenças com respeito aos pacotes adicionais de ambas as plataformas. A principal diferença é que não existe pacote equivalente no Octave para a toolbox Simulink do MATLAB. O Simulink é uma excelente ferramenta que permite a simulação, modelagem e análise de sistemas dinâmicos. Os sistemas analisados podem ser de diversos tipos, dentre eles sistemas mecânicos, hidráulicos, pneumáticos e elétricos. Assim, deve-se observar e levar em considerações tais limitações antes de optar por uma das plataformas.

Por fim, deve-se também levar em conta que, na indústria e na área acadêmica, o MATLAB é amplamente utilizado. Isso o torna um padrão e uma referência. Assim sendo, é de suma importância aprender a sua sintaxe e a sua utilização. O GNU Octave segue como uma alternativa gratuita e ainda assim de ótimo desempenho para aprendizado e também desenvolvimento.

Workspace do GNU Octave

O GNU Octave possui duas interfaces de trabalho: a GUI (Graphical User Interface) e a CLI (Command Line Interface). A primeira opção roda a plataforma em uma interface bem amigável. Esta interface deixa todas as ferramentas ao alcance visual do usuário e é mais cômoda para se trabalhar. Como mostra a figura 1, a GUI possui quatro regiões principais. A janela de comandos é o local onde os comandos são digitados e executados. O gerenciador de arquivos nos permite navegar pelas pastas do computador afim de encontrarmos arquivos para serem utilizados. O ambiente de trabalho mostra todas as variáveis criadas, o seu tipo, dimensão e valor. Por último, o histórico de comandos guarda os últimos comandos digitados pelo usuário. Há também, logo abaixo da janela de comandos, uma aba para o Editor. É através do Editor que criamos scripts para serem executados pelo Octave.

GNU Octave GUI Graphical User Interface Windows
Figura 1 – Interface Gráfica de Usuário do GNU Octave para Windows [Clique para ampliar].
 A segunda opção roda a plataforma através de uma janela de comandos onde não há interface gráfica. Nesta opção, todas as operações são realizadas através da linha de comandos como mostra a figura 2. Essa interface se torna útil quando a máquina host não possui nenhuma interface gráfica. No Linux, essa interface pode ser invocada do terminal através do comando octave-cli. Ao invés disso, se executarmos somente o comando octave, a GUI será executada.

GNU Octave CLI Command Line Interface Linux Ubuntu
Figura 2 – Interface de Linha de Comando do GNU Octave para Linux Ubuntu [Clique para ampliar].
No Windows também há a opção de utilizarmos a interface CLI, porém esta não é tão intuitiva quanto a GUI. Uma boa dica é utilizar bastante a CLI na fase de aprendizagem para se acostumar com  a sintaxe dos comandos. Depois, se possível, passe a utilizar a GUI e o desenvolvimento será muito mais eficiente.

Primeiros Comandos no GNU Octave

Vamos testar o GNU Octave realizando algumas operações básicas na janela de comandos. Para isso, abra o Octave (GUI) e realize os três exemplos mostrados a seguir.

-> Exemplo 1: Resolução Algébrica Simples

digite os seguintes comandos para um simples cálculo:

Os comandos acima criam uma variável a contendo o valor 17; uma variável b contendo o valor 3; e depois calcula uma expressão algébrica para armazenar o resultado na variável c.  Para se denotar expoentes, utiliza-se o acento circunflexo e para se denotar raiz quadrada, utiliza-se a função sqrt(). Como não foi colocado ponto e vírgula no final do terceiro comando, o resultado foi mostrado na linha subsequente. Caso contrário, o resultado ficaria contido na variável c e poderia ser posteriormente consultado na janela do Ambiente de Trabalho.

-> Exemplo 2: Operação com Matrizes e Vetores

Posteriormente, vamos fazer uma multiplicação de vetor por matriz:

Neste segundo exemplo são criados um vetor A de dimensão 1×3 e uma matriz B de dimensão 3×3. A multiplicação entre ambos é feita multiplicando-se a linha de A pelas colunas de B, elemento a elemento. Como resultado, obtém-se um novo vetor de dimensão 1×3.

-> Exemplo 3: Gerar Gráfico de Função Bidimensional

Por último, vamos gerar o gráfico do sombreiro que aparece na imagem de capa deste post. Já existe uma função chamada sombrero() que gera esse gráfico. Vamos utilizá-la:

GNU Octave Sombrero Function Graph Plot
Figura 3 – Gráfico da função “sombreiro” gerada no GNU Octave.

A função sombrero() cria a imagem da superfície desejada. Ao executar esse comando, uma nova janela de figura será aberta. O comando shading interp renderiza a superfície da imagem deixando-a com aparência “lisa”. Posteriormente, altera-se o padrão de cores da superfície com a função colormap(‘jet’). Sendo que o parâmetro jet é o padrão de cor indicado para a função. Depois, adiciona-se um título ao gráfico com a função title(). Finalmente, pode-se salvar a imagem gerada através do comando print. A imagem será salva na pasta que estiver selecionada no seu gerenciador de arquivos.


Aprenda a criar gráficos super personalizados: Criando gráficos no GNU Octave


Conclusão

Vimos neste artigo uma breve introdução sobre a ferramenta GNU Octave: o que ela faz; o que ela oferece; suas características; como instalá-la no Linux e Windows; como instalar e remover pacotes adicionais; e também três pequenos exemplos de utilização.

Embora o GNU Octave não seja 100% compatível com o já consagrado MATLAB, ainda assim é uma ferramenta muito poderosa e oferece inúmeras possibilidades. Por ser um software gratuito, está ao alcance de todos e se torna uma excelente alternativa para aqueles que não dispõem de uma licença do MATLAB. Ela pode atuar como uma iniciação ao MATLAB para aqueles que desejam dominar a linguagem, já que a maioria dos comandos são compatíveis entre as plataformas. Além disso, o Octave pode atender plenamente as necessidades de uso pessoal fora da indústria.

Futuramente, novas funcionalidades do Octave serão exploradas através de tutoriais e vídeos. O meu principal intuito é trabalhar com o processamento digital de imagens e vai ser nesse momento que o GNU Octave será muito bem aproveitado.

Deixe suas dúvidas e sugestões nos comentários. Será um prazer respondê-lo!
Abraços.

Sobre

Jair Junior é Bacharel em Engenharia Eletrônica pela Universidade de Brasília [2014] com ênfase em microeletrônica. Suas especialidades na área são microcontroladores, sistemas embarcados e projeto de hardware. Também possui conhecimentos aprofundados em aplicações web e processamento digital de imagens. Atualmente, é aluno de pós-graduação lato sensu da PUC Minas no curso de Desenvolvimento de Aplicações Web. Ademais, tem como hobbies viajar, praticar esportes na natureza, apreciar cervejas artesanais e escutar um bom e velho rock 'n roll. Para mais detalhes, acesso a página sobre o autor.

Ver todos os posts de

One thought on “Introdução ao GNU Octave

  1. Jair, parabéns pela iniciativa de coloborar com a sociedade… vc torna o mundo melhor!!!
    Meu filho está fazendo engenharia e precisará utilizar o Octave na disciplina de Álgebra Linear… você tem alguma apostila ou material que recomenda a leitura?

    Um abração

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *