Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Portuguese Documentação, Ferramentas e Dicas
  • Search

Ciência sobre Gentoo Linux (octave)

Fórum para a publicação de documentação, ferramentas e dicas no idioma português.
Post Reply
Advanced search
2 posts • Page 1 of 1
Author
Message
MetalGod
Bodhisattva
Bodhisattva
User avatar
Posts: 816
Joined: Mon Mar 10, 2003 8:30 pm
Location: Portugal
Contact:
Contact MetalGod
Website

Ciência sobre Gentoo Linux (octave)

  • Quote

Post by MetalGod » Sat Aug 05, 2006 6:41 pm

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: Select all

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: Select all

$ octave
e aparece algo do genero

Code: Select all

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: Select all

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: Select all

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: Select all

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: Select all

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: Select all

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: Select all

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: Select all

 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: Select all

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: Select all

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
Top
GothicKnight
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 123
Joined: Mon Aug 02, 2004 8:02 am
Location: Santa Maria da Feira/Portugal

  • Quote

Post by GothicKnight » Mon Sep 11, 2006 8:20 am

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.
Top
Post Reply

2 posts • Page 1 of 1

Return to “Documentação, Ferramentas e Dicas”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic