Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Ciência sobre Gentoo Linux (octave)
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Portuguese Documentação, Ferramentas e Dicas
View previous topic :: View next topic  
Author Message
MetalGod
Bodhisattva
Bodhisattva


Joined: 10 Mar 2003
Posts: 816
Location: Portugal

PostPosted: Sat Aug 05, 2006 6:41 pm    Post subject: Ciência sobre Gentoo Linux (octave) Reply with quote

Bem aqui vai um pequeno tutorial sobre o octave. Octave é um clone do matlab.
Como diz a sua descrição no ebuild -> GNU Octave is a high-level language (MatLab compatible) intended for numerical computations

Aqui voces tem um excelente centro de calculo cientifico.
Para instalar o octave basta fazer
Code:
emerge octave gnuplot


gnuplot porque ? Porque e' apartir do gnuplot que nos vamos obter os graficos.
O octave pode-se usar tal como a consola do python porque e' tambem uma linguagem interpretada.

Lição 1 conceitos basicos.

Vamos para a linha de comandos e basta escrever
Code:
$ octave

e aparece algo do genero
Code:
GNU Octave, version 2.1.73 (x86_64-pc-linux-gnu).
Copyright (C) 2006 John W. Eaton.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html

Report bugs to <bug@octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).

octave:1>


agora vamos fazer um hello world.

Code:
octave:1> disp ('Ola Mundo')
Ola Mundo


Como se trata de uma linguagem interpretada não é necessario proceder-se à invocação de headers como em C/C++/C# ou java por exemplo.

O octave é uma poderosa ferramenta de calculo então vamos calcular o sin(x) em 100 pontos de -20 a 20.
Para tal basta:
Code:
octave:1>y = linspace (-20,20,100);
octave:2> x = sin(y);
octave:3> plot (x)


E temos um gráfico da representação da função seno.

Agora experimentem a tirar o ';' para ver o que acontece.

Para colocar mais do que um gráfico pode-se usar o comando 'hold on'

Code:
octave:1>y = linspace (-20,20,100);
octave:2>x = sin(y);
octave:3>z = cos(y);
octave:4>plot (x);
octave:5>hold on
octave:6>plot(z);


Para limpar o ecrã usa-se o comando 'clc' e para limpar todas as variaveis previamente declaradas usa-se 'clear all'.
O comando 'close all' fecha todos os programas externos que funcionam directamente com o octave como por exemplo um grafico aberto com o gnuplot.

Recomendo o uso de um editor de texto como o vim ou gvim que possuem syntax highlight para matlab/octave ou emacs que possui um modo de matlab/octave disponivel no portage.

Agora vamos ver como podemos usar o octave para fazer calculos basicos.

Code:
octave:39> 1.3^32 * 5.4^-12
ans =  7.2021e-06


Vamos agora calcular a energia libertada por um electrão usando a equação relativista de Einstein (E=mc^2).
m= 9.1*10^-31 Kg (massa aproximada do electrão)
c=2.998^8 m/s (velocidade da luz aproximada)
Code:
octave:43> m = 9.1*10^-31
m =  9.1000e-31
octave:44> c = 2.998 * 10^8
c = 299800000
octave:45> E = m * c^2
E =  8.1791e-14

Dá o valor de 8.1791*10^-14 Joules.

Agora vamos estudar Matrizes.

Code:
octave:50> a = [1 2 3 4 5]
a =

  1  2  3  4  5

octave:51> b = [6 7 8 9 10]'
b =

   6
   7
   8
   9
  10

octave:52> a*b
ans = 130


O operador ' dá-nos a transposta dessa matriz.

Agora mais um problema
Code:
 octave:59> a = [1 2 3 4 5]
a =

  1  2  3  4  5

octave:60> b = [6 7 8 9 10]
b =

   6   7   8   9  10

octave:61> a*b
error: operator *: nonconformant arguments (op1 is 1x5, op2 is 1x5)
error: evaluating binary operator `*' near line 61, column 2
octave:61> a.*b
ans =

   6  14  24  36  50


Aquele erro foi devido a que o octave não deve multiplicar matrizes [1 2 3 4 5] * [6 7 8 9 10] porque não é correcto
Mas se incluirmos o operador '.' forçamos o octave a multiplicar as matrizes cujo as dimensões não são coerentes.

O octave pode interagir com o sistema operativo no qual podes correr os comandos:
Code:
octave:71> pwd
/home/metalgod
octave:72> ls
(mostra os ficheiros dessa directoria)
octave:73> unix ('uname -a')
Linux darksytem 2.6.17-gentoo-r3 #3 PREEMPT Tue Jul 25 20:20:06 WEST 2006 x86_64 AMD Athlon(tm) 64 Processor 3500+ AuthenticAMD GNU/Linux

ans = 0


Para sair do octave e voltar à linha de comandos basta fazer
Code:
octave:1> quit
metalgod@darksytem ~ $


Espero que tenham gostado da primeira Lição. Boa sorte e bons calculos! :wink:
_________________
ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice
Back to top
View user's profile Send private message
GothicKnight
Tux's lil' helper
Tux's lil' helper


Joined: 02 Aug 2004
Posts: 123
Location: Santa Maria da Feira/Portugal

PostPosted: Mon Sep 11, 2006 8:20 am    Post subject: Reply with quote

Por acaso é uma boa ferramenta... usei-a para substituir o MatLab para controlo industrial, algumas funções não são directamente iguais, mas com o uso da documentação chega-se lá.
Existem também outros projectos que trazem mais funcionalidade ao octave tal como o octave-forge e o koctave.
_________________
Se a vida não te sorri... Faz-lhe cocegas.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portuguese Documentação, Ferramentas e Dicas All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum