View previous topic :: View next topic |
Author |
Message |
MetalGod Bodhisattva
Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Sat Aug 05, 2006 6:41 pm Post subject: Ciência sobre Gentoo Linux (octave) |
|
|
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
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! _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
Back to top |
|
|
GothicKnight Tux's lil' helper
Joined: 02 Aug 2004 Posts: 123 Location: Santa Maria da Feira/Portugal
|
Posted: Mon Sep 11, 2006 8:20 am Post subject: |
|
|
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 |
|
|
|
|
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
|
|