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: 47.501 ]

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

Crie um espelho (mirror) Debian em sua máquina

Guia Introdutório do Linux

Ubuntu será o aguardado Windows Killer?

Grace - Usando a função "Regression"

Guia introdutório do Linux IV

Leitura recomendada

Apresentando o Ubuntu 7.04 Feisty Fawn

Outro método (rápido/fácil) de instalação e configuração do gdesklets no Slackware 10

Instalação do Centreon + Nagios 3

Instalação do Redmine no CentOS 6

Como instalar o compilador Free Pascal

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts