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.
Parte 2: Aritmética Matricial
No Linux, começamos o uso de Octave com o comando óbvio:
octave
Você verá uma mensagem inicial e um prompt indicando que podemos começar a entrar com os comandos. A partir daí basta digitar os comandos desejados, clicar <ENTER> e ver os resultados desejados. Se acontecer qualquer problema, interrompa o programa com as teclas CTRL + C. Para sair do Octave, digite "quit" ou "exit" no prompt e tecle <ENTER>. Se desejar, também poderá suspender sua execução com a combinação usual CTRL + Z.
Vamos começar falando em matrizes, pois em Octave muita coisa é feita por meio delas. Por exemplo, um escalar é uma matriz quadrada de ordem 1. Para criar uma nova matriz e guardar valores com ela para usar depois, digite um comando como o visto abaixo.
octave:1> A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]
Octave responderá por imprimir a matriz em colunas alinhadas. Note que separamos cada linha da matriz por usar o caracter ";", e em cada linha os elementos são separados por vírgulas. Se desejar que o Octave não imprima o resultado do comando, basta terminar com um ponto e vírgula. Veja o exemplo:
octave:2> B = rand (3,2);
Onde será criada uma matriz com 3 linhas e duas colunas, cada elemento sendo um valor aleatório entre 0 (zero) e 1 (um). Para mostrar o valor de qualquer variável, simplesmente digite o nome da variável. No exemplo acima, digitando:
octave:3> B
Veremos os elementos da matriz criada anteriormente.
Agora vamos falar um pouco sobre como calcular usando matrizes. Octave possui uma notação simples e útil para realizar aritmética matricial. Por exemplo, para multiplicar uma matriz por um escalar, digite algo como:
octave:4> 2 * A
Para multiplicar duas matrizes, A e B, digite:
octave:5> A * B
E para multiplicar uma matriz A por sua transposta, A', digite:
octave:6> A * B
Super simples, não acha? Também podemos resolver equações lineares usando as matrizes do Octave. Para resolver um conjunto de equações lineares, ou seja, do tipo Ax = b, use o operador" \ ". Veja:
octave:7> A \ b
Isto é conceitualmente equivalente a inv (a) * b , mas evita o cálculo computacional da matriz inversa de forma direta. Se o coeficiente da matriz é singular, Octave mostrará uma mensagem de alerta e calculará uma solução normal mínima.
octave
Você verá uma mensagem inicial e um prompt indicando que podemos começar a entrar com os comandos. A partir daí basta digitar os comandos desejados, clicar <ENTER> e ver os resultados desejados. Se acontecer qualquer problema, interrompa o programa com as teclas CTRL + C. Para sair do Octave, digite "quit" ou "exit" no prompt e tecle <ENTER>. Se desejar, também poderá suspender sua execução com a combinação usual CTRL + Z.
Exemplos simples
Ao prosseguirmos com este e os demais artigos da série, veremos características do Octave em detalhes. Mas antes disso é interessante observar algumas de suas possibilidades. Se você está começando no Octave agora, recomendamos que tente experimentar estes exemplos para começar a usar usando. Linhas que iniciam com "octave:X>" são as linhas que você deve digitar, terminando cada uma teclando <ENTER>. Então Octave lhe dará uma resposta ou mostrará um gráfico.Vamos começar falando em matrizes, pois em Octave muita coisa é feita por meio delas. Por exemplo, um escalar é uma matriz quadrada de ordem 1. Para criar uma nova matriz e guardar valores com ela para usar depois, digite um comando como o visto abaixo.
octave:1> A = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]
Octave responderá por imprimir a matriz em colunas alinhadas. Note que separamos cada linha da matriz por usar o caracter ";", e em cada linha os elementos são separados por vírgulas. Se desejar que o Octave não imprima o resultado do comando, basta terminar com um ponto e vírgula. Veja o exemplo:
octave:2> B = rand (3,2);
Onde será criada uma matriz com 3 linhas e duas colunas, cada elemento sendo um valor aleatório entre 0 (zero) e 1 (um). Para mostrar o valor de qualquer variável, simplesmente digite o nome da variável. No exemplo acima, digitando:
octave:3> B
Veremos os elementos da matriz criada anteriormente.
Agora vamos falar um pouco sobre como calcular usando matrizes. Octave possui uma notação simples e útil para realizar aritmética matricial. Por exemplo, para multiplicar uma matriz por um escalar, digite algo como:
octave:4> 2 * A
Para multiplicar duas matrizes, A e B, digite:
octave:5> A * B
E para multiplicar uma matriz A por sua transposta, A', digite:
octave:6> A * B
Super simples, não acha? Também podemos resolver equações lineares usando as matrizes do Octave. Para resolver um conjunto de equações lineares, ou seja, do tipo Ax = b, use o operador" \ ". Veja:
octave:7> A \ b
Isto é conceitualmente equivalente a inv (a) * b , mas evita o cálculo computacional da matriz inversa de forma direta. Se o coeficiente da matriz é singular, Octave mostrará uma mensagem de alerta e calculará uma solução normal mínima.
http://www.r-project.org/
Abrç