Pular para o conteúdo

Octave - Programação científica no Linux

Para todos os que realizam simulações usando MatLab e companhia, agora podem usar mais uma ferramenta do mundo livre: Octave. Neste artigo, e nos próximos (já escritos), vamos fazer mais que uma introdução. Veremos como usar o Octave para realizar as mais diferentes tarefas científicas no Linux.
Juliao Junior juliaojunior
Hits: 40.068 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar

Parte 3: Equações diferenciais

Octave possui funções internas para resolver equações diferenciais não-lineares da forma:

dx/dt = f(x,t)

com a condição inicial:

x(t = t0) = x0

Para o Octave integrar equações desta forma, primeiro devemos fornecer uma definição da função f(x,t). Isto é feito de forma direta, e pode ser realizado diretamente na linha de comando. Por exemplo, os comandos abaixo definem as funções do lado direito para um interessante par de equações diferenciais não-lineares.

Note que enquanto você está entrando com uma função, o Octave responde com um prompt diferente, justamente para indicar que está esperando que você complete a entrada de dados.

octave:8> function xdot = f (x, t)
>
>  r = 0.25;
>  k = 1.4;
>  a = 1.5;
>  b = 0.16;
>  c = 0.9;
>  d = 0.8;
>
>  xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1));
>  xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);
>
> endfunction

Fornecendo a condição inicial:

     x0 = [1; 2];

e o conjunto de saídas- um vetor coluna (veja que a primeira saída corresponde à condição inicial dada acima):

     t = linspace (0, 50, 200)';

é fácil integrar o conjunto de equações diferenciais. Veja como:

     x = lsode ("f", x0, t);

A função "lsode" usa "Livermore Solver for Ordinary Differential Equations", descrito em A. C. Hindmarsh, ODEPACK, a Systematized Collection of ODE Solvers, em: Scientific Computing, R. S. Stepleman et al. (Eds.), North-Holland, Amsterdam, 1983, páginas 55-64.

   1. Introdução
   2. Aritmética Matricial
   3. Equações diferenciais
   4. Gráficos e help

Guia Introdutório do Linux V

Finnix - Ótima distro para manutenção de sistemas

Processing - Interagindo com o usuário

Introdução ao Linux: O editor de texto Nano

Convertendo formatos de vídeo/áudio

Arch Linux - Instalação completa

Docker Linux Container - Open vSwitch Containers - Múltiplos Servidores

Integração Contínua com Jenkins - Instalação (Parte 1)

Biometria: Transforme-se no usuário root com sua impressão digital

Kernel 3.0-0 já disponível no aptosid e operando de forma estável

#1 Comentário enviado por RhuanLima em 13/09/2008 - 02:08h
Otimo post! vou dar uma pesquisada sobre o octave, eu uso bastante o R que é um software estatistico mto mto bom trabalhamso com ele na UFPR caso tenha interesse:


http://www.r-project.org/

Abrç
#2 Comentário enviado por romualdoandre em 14/09/2008 - 09:38h
Ainda há alguns problemas com a função 'print' do Octave, nem todas as opções funcionam. Mas utilizo o Octave como alternativa ao Matlab e não tive problemas. Outros pontos a favor do Octave são o tamanho ocupado no disco e a contribuição da comunidade.
#3 Comentário enviado por liviocf em 14/09/2008 - 13:32h
Muito bom artigo! O Octave me parece uma ótima ferramenta!
Mas no mesmo estilo temos também o SciLab, que também possui recursos semelhantes ao octave e ao Matlab! Atualmente utilizo o SciLab para testar alguns cálculos de álgebra linear aplicada à biologia e ele está se mostrando muito bom!!
Quem sabe com seu artigo eu me inspiro a escrever meu primeiro falando um pouco também do SciLab!!!!
Parabéns pelo artigo!!
#4 Comentário enviado por f_Candido em 14/09/2008 - 16:34h
Gostei. Super simples de usar.
Parabéns,

Abraços

Contribuir com comentário

Entre na sua conta para comentar.