Octave

Linux.fista
Versio hetkellä 8. toukokuuta 2009 kello 17.56 – tehnyt Heikki (keskustelu | muokkaukset) (asennuksesta, matlabin ja octaven eroista jotain, pari opasta)
Siirry navigaatioon Siirry hakuun
GNU Octave
Käyttöliittymä teksti
Lisenssi GPL
Kotisivu www.octave.org

Octave on numeeriseen laskentaan tarkoitettu Matlab-yhteensopivahko korkean tason kieli ja tulkki kyseiselle kielelle. Matlab on suljettu numeeriseen laskentaan tarkoitettu sovellus, jota käytetään paljon matemaattisilla aloilla.

Matlabin ja Octaven erot

Selkeä ero Matlabin ja Octaven välillä on siinä, että Octaveen ei ole toteutettu läheskään yhtä paljon funktioita kuin Matlabiin. Lisäksi joidenkin asioiden tekemiseen on Matlabissa ja Octavessa erinimiset funktiot, ja myös samannimisten funktioiden parametrit voivat erota. Dokumentaation lukeminen onkin välttämätöntä.

Asennus

Octave löytyy useimpien jakeluiden paketinhallinnasta nimellä octave. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.. Octaven peruspaketissa ei yleensä tule kaikkia saatavilla olevia työkaluja, ja monien jakeluiden paketinhallintajärjestelmästä löytyykin yleensä lisäpaketteja, jotka lisäävät Octaveen toimintoja. Näitä voi etsiä pakettilistalta hakusanalla octave.

Käyttö

Octaven kieli ja komennot ovat käytännössä samat kuin Matlabissa, joten internetistä löytyvät sadat Matlab-oppaat ovat hyvä lähtökohta Octaven käyttäjälle. Joitain oppaita on listattu artikkelin loppuun.

Octave käynnistyy yksinkertaisesti komennolla

octave

Komentorivillä Octavelle voi myös putkittaa syötettä, tällöin saattaa olla hyödyllistä välttää lisenssitulosteet valitsimella -q:

echo 1+1 | octave -q

Octave-skriptejä voi tehdä kuten yleisemminkin linuxilla #!-merkinnällä tekstitiedoston alussa:

#!/usr/bin/octave -qf
1+1

Tässä 1+1 ajetaan komentotulkin /usr/bin/octave -qf läpi, jolloin tulostuu "ans = 2"

Kieli

Tietotyypit

Octavessa esittelemättömät muuttujat oletetaan kaksoistarkkuuden liukulukujen taulukoiksi, joiden ulottuvuus määräytyy siihen sijoitettavan taulukon koosta. 2-ulotteisia taulukoita, eli matriiseja, voidaan esitellä erottamalla saman rivin alkiot pilkulla ja rivit puolipisteellä:

octave:1> A=[1,2;3,4]
A =
  1   2
  3   4

Matriiseja voi myös määritellä lohkoittain:

octave:4> A=[[1,2;3,4],[5;5];[6,6,6]]
A =
   1   2   5
   3   4   5
   6   6   6

Laskuoperaattorit

Laskuoperaattoreissa huomioitavaa on, että vaikka yksittäisillä luvuilla operaattorit toimivat odotetusti, * ja / tarkoittavat matriisituloa ja matriisien jakolaskua.

Octave tulkitsee matriisien jakolaskun x/y lausekkeeksi (inverse(y')*x')', missä inverse(y) on y:n käänteismatriisi ja x' tarkoittaa matriisin x hermitointia (x:n alkioista otetaan kompleksikonjugaatti ja näin saatu matriisi transponoidaan).

Alkiokohtaiset operaatiot kirjoitetaan muodossa .* ja ./ .

Sijoitusoperaattori

Tyypillinen sijoitus muuttujaan A, joka siis ei säilytä välttämättä A:n aikaisempia dimensioita:

A=lauseke

Jos halutaan korvata vain osa A:sta, voidaan käyttää A:lle indeksimääreitä tavalliseen tapaan. Tällöin lausekkeen ja muuttujan määrätyn osan dimensioiden on oltava samat.

A(1:80,2)=zeros(80,1);

Funktiot

Funktioita voidaan määritellä function-avainsanalla seuraavasti:

function lista palautusarvoista = funktionimi (argumenttilista)
#funktion toiminnallinen osa, jossa mahdolliset sijoitukset paluuarvoihin
endfunction

Käyttöesimerkissä luodaan funktio, joka palauttaa argumenttiensa tulon ja summan, oletusarvo toiselle argumentille on 100, mikä on voimassa, kun tätä muuttujaa ei erikseen anneta parametrinä.

 octave:9> function [A,B] = funktio(C,D=100)
 > A=C*D;
 > B=C+D;
 > endfunction
 
 octave:12> [A,B]=funktio([1,2])
 A =
 
    100   200
 
 B =
 
    101   102

Aiheesta muualla

Oppaita

Katso myös