Programando em Octave (parte 1)

Se você ainda está preso ao Windows pelo gancho do MATLAB, está na hora de adquirir a liberdade. Octave usa uma linguagem compatível com MATLAB. É uma linguagem computacional que usa as matrizes como suas variáveis. Esta forma de ver as variáveis acelera o cálculo computacional, pois todas as operações são vistas como operações entre matrizes.

[ Hits: 45.245 ]

Por: Juliao Junior em 05/05/2008


Funções



Octave traz várias funções embutidas, das mais simples a algumas bem especiais. Veja algumas:

Aritméticas:
  • sin(X), cos(X), sqrt(X), log(X) : respectivamente o seno, cosseno, raiz quadrada e logaritmo dos elementos da matriz X.
  • exp(X): e elevado a cada um dos elementos da matriz X.

Específicas do OCTAVE:
  • ceilceil(x): arredondamento para cima do número 'real' x
  • floor(x): arredondamento para baixo do número 'real' x
  • round(x): arredondamento para o inteiro mais próximo
  • conj(x): complexo conjugado de x
  • imag(x): parte imaginária do número complexo x
  • real(x): parte real do número complexo x
  • sign(x): sinal (positivo ou negativo) do número real x
  • gcd(x,y): máximo divisor comum de x e y
  • lcm(x,y): mínimo múltiplo comum de x e y
  • rem(x,y): resto da divisão x/y

Nas funções acima, se x e y forem matrizes, a operação das funções se aplicam a cada elemento das matrizes. Por exemplo, usando a matriz mat1 definida acima, podemos ter o seguinte resultado:

octave:34> sin(mat1)
ans =

   0.84147   0.90930   0.14112  -0.75680
  -0.95892  -0.27942   0.65699   0.98936
   0.41212  -0.54402  -0.99999  -0.53657
   0.42017   0.99061   0.65029  -0.28790
octave:35>

Matriciais:

OCTAVE dispões de muitas funções específicas para uso em matrizes. Veja algumas:
  • det(X): determinante de X
  • eig(X): conjunto dos autovalores de X
  • expm(X): exponencial matricial de X (lembre que exp(X) é a exponencial elemento a elemento)
  • logm(X): logaritmo matricial; inversa de expm(X)
  • inv(X): matriz inversa de X
  • sum(X): vetor cujos elementos sãos as somas dos elementos das colunas de X
  • trace(X): traço de X (soma dos elementos da diagonal)
  • norm(Y): norma do vetor Y (quadrado da raiz quadrada do somatório dos módulos)

Novamente usando a matriz mat1 definida anteriormente, temos os seguintes exemplos:

octave:35> det(mat1)
ans = 0
octave:36> eig(mat1)
ans =

   36.20937 +  0.00000i
   -2.20937 +  0.00000i
    0.00000 +  0.00000i
    0.00000 -  0.00000i
octave:37> inv(mat1)
warning: inverse: matrix singular to machine precision, rcond = 7.90026e-20
ans =

    6.3719e+16   -7.7005e+16   -3.7149e+16    5.0434e+16
   -5.9168e+16    7.2791e+16    3.1922e+16   -4.5545e+16
   -7.2822e+16    8.5432e+16    4.7603e+16   -6.0212e+16
    6.8271e+16   -8.1218e+16   -4.2376e+16    5.5323e+16
octave:38>

Observação importante: Por padrão, a impressão na tela ocorre apenas no final da execução de uma instrução/comando, ou antes de um 'input' (que veremos um pouco adiante). Quando queremos evitar que um resultado apareça na tela, usamos ' ; ' (ponto e vírgula) no final da instrução. Outro símbolo importante é o ' : ' (dois pontos), usado para construir uma seqüência (na verdade, uma progressão aritmética). Veja um exemplo:

octave:1> x=2:3:19
x =

   2   5   8  11  14  17
octave:2>

A sintaxe é : nome_da_variável:primeiro_termo:incremento:limite_para_ultimo_termo. Veja mais um exemplo:

octave:2> y=100:-13:-20
y =

   100    87    74    61    48    35    22     9    -4   -17
octave:3>

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Variáveis
   3. Matrizes
   4. Funções
   5. Scripts
Outros artigos deste autor

Processing - Interagindo com o usuário

Programação: Uso de funções

Inkscape - Introdução (parte 2)

Ubuntu será o aguardado Windows Killer?

Processing - Programando para Android e iOS

Leitura recomendada

Inkscape - Introdução (parte 2)

Experimentos com remasterização de Sabayon

Inkscape - Introdução (Parte 3)

Uma abordagem ao eGroupware como solução para agendamento

Gerenciamento de Lan House com Main Control System

  
Comentários
[1] Comentário enviado por fernandocampos em 05/05/2008 - 11:43h

O octave é uma boa opção para trabalhar no linux. Trabalhei com ele no Fedora e fiquei muito satisfeito. Também temos o maxima para o linux que é totalmente free e excelente.

[2] Comentário enviado por an_drade em 05/05/2008 - 13:45h

Não podemos esquecer o Scilab, que é praticamente um clone do Matlab.

http://www.scilab.org/

[3] Comentário enviado por itocamargo em 07/05/2008 - 18:19h

Eu utilizo o Scilab no linux, baixei a documentacao pra ajudar, inclusive na disciplica de Sistemas Realimentados, usamos mto ele.

O Matlab é uma excelente ferrameta, mas o Scilab e Octave nao deixam a desejar.

no site do Scilab da pra saber ate quem esta patrocinando o software... por exemplo a Renault

Interessante neh?

[]'s

[4] Comentário enviado por dbahiaz em 09/05/2008 - 23:44h

Cara estou tendo contato com octave justamente agora , usamos matlab na facu, + em casa estou adaptando tudo pro octave, conheço muito pouco ainda, e seus artigos seram bem vindos, espero que não demore muito a postar outros, estou aguardando, abraço!


Contribuir com comentário