Ero sivun ”Octave” versioiden välillä
(→Kieli) |
pEi muokkausyhteenvetoa |
||
(14 välissä olevaa versiota 6 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
{{ Ohjelma | nimi= | {{Ohjelma | ||
| nimi=GNU Octave | |||
| kuva=[[Kuva:Octave_logo.svg|200px]] | |||
| kuvateksti= | |||
| lisenssi=[[GPLv3+]] | |||
| käyttöliittymä=[[Qt]] / teksti | |||
| kotisivu=[http://www.octave.org www.octave.org] | |||
}} | |||
Octave on numeeriseen laskentaan tarkoitettu | '''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 == | |||
{{Asenna|Octave|octave}}. 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''. | |||
=== Lisäpaketit === | |||
Octavelle on olemassa monia lisäpaketteja, joita ei löydy läheskään kaikkien jakeluiden paketinhallintajärjestelmistä. Tällöin lisäpaketit on asennettava käsin. | |||
Lisäpakettien hallintaan on Octavessa komento <tt>pkg</tt>, jolla esimerkiksi pakettien asentaminen onnistuu. Yleisimpiä paketteja löytyy [http://octave.sourceforge.net/packages.html Octaven kotisivujen pakettisivulta]. Sivulta voidaan valita esimerkiksi luonnonvakioiden arvoja tuova PhysicalConstants-paketti, joka kopioidaan ensin omalle koneelle ''Download''-linkistä. | |||
Kun <tt>.[[tar]].gz</tt>-muotoinen tiedosto on ladattu koneelle, siirrytään komentorivillä paketin tallennushakemistoon ja käynnistetään Octave. Tämän jälkeen ajetaan komento | |||
pkg install paketin_tiedosto.nimi.tar.gz | |||
esimerkiksi | |||
pkg install physicalconstants-0.1.7.tar.gz | |||
Tämän jälkeen paketin funktioita voi alkaa käyttää normaalisti: esimerkiksi valon nopeus tyhjiössä saataisiin komennolla | |||
octave:1> physical_constant("SPEED_OF_LIGHT_IN_VACUUM") | |||
ans = 299792458 | |||
Paketti voidaan ladata pois käytöstä komennolla <tt>pkg unload paketti</tt>, esimerkiksi tässä <tt>pkg unload physicalconstants</tt>. Vastaavasti lataaminen käyttöön tapahtuu komennolla <tt>pkg load</tt>. Kaikki asennetut paketit näkee komennolla <tt>pkg list</tt>; tässä listassa tähdellä merkityt paketit on sillä hetkellä ladattuna käyttöön. Paketin poistaminen tapahtuu komennolla <tt>pkg uninstall paketti</tt>. | |||
Kannattaa kuitenkin aina tarkistaa, löytyisikö asennettava paketti jakelun paketinhallinnasta. Esimerkiksi tässä käytetty PhysicalConstants löytyy ainakin [[Debian]]in ja sen johdannaisten ohjelmalähteistä (paketti <tt>octave-physicalconstants</tt>). | |||
==Käyttö== | ==Käyttö== | ||
Octave käynnistyy yksinkertaisesti | 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 | octave | ||
Komentorivillä Octavelle voi myös putkittaa syötettä, tällöin saattaa olla hyödyllistä välttää lisenssitulosteet valitsimella -q | Komentorivillä Octavelle voi myös [[Komentorivin perusteet|putkittaa]] syötettä, tällöin saattaa olla hyödyllistä välttää lisenssitulosteet valitsimella <tt>-q</tt>: | ||
echo 1+1 | octave -q | echo 1+1 | octave -q | ||
Octave-skriptejä voi tehdä kuten yleisemminkin linuxilla #! -merkinnällä tekstitiedoston alussa: | Octave-skriptejä voi tehdä kuten yleisemminkin linuxilla <tt>#!</tt>-merkinnällä tekstitiedoston alussa: | ||
#!/usr/bin/octave -qf | #!/usr/bin/octave -qf | ||
1+1 | 1+1 | ||
Tässä 1+1 ajetaan komentotulkin /usr/bin/octave -qf läpi, jolloin tulostuu "ans = 2" | Tässä 1+1 ajetaan komentotulkin <tt>/usr/bin/octave -qf</tt> läpi, jolloin tulostuu "<tt>ans = 2</tt>" | ||
==Kieli== | ==Kieli== | ||
Octavea käytettäessä on muistettava, että se käsittelee yleensä kaikkia muuttujia matriiseina. Kieli onkin erityisen tehokas matriisien käsittelyyn ja siten lähes kaikkiin numeerisiin toimenpiteisiin. | |||
===Tietotyypit=== | ===Tietotyypit=== | ||
Octavessa esittelemättömät muuttujat oletetaan [[kaksoistarkkuus | kaksoistarkkuuden]] [[liukuluku| liukulukujen]] taulukoiksi, joiden ulottuvuus määräytyy | Octavessa esittelemättömät muuttujat oletetaan [[kaksoistarkkuus | kaksoistarkkuuden]] [[liukuluku| 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] | octave:1> A=[1,2;3,4] | ||
A = | A = | ||
Rivi 24: | Rivi 56: | ||
3 4 | 3 4 | ||
Matriiseja voi myös | Matriiseja voi myös määritellä lohkoittain: | ||
octave:4> A=[[1,2;3,4],[5;5];[6,6,6]] | octave:4> A=[[1,2;3,4],[5;5];[6,6,6]] | ||
A = | A = | ||
1 2 5 | 1 2 5 | ||
3 4 5 | 3 4 5 | ||
Rivi 34: | Rivi 64: | ||
===Laskuoperaattorit=== | ===Laskuoperaattorit=== | ||
Laskuoperaattoreissa huomioitavaa on, että vaikka yksittäisillä luvuilla operaattorit toimivat odotetusti * ja / tarkoittavat matriisituloa ja jakolaskua | Laskuoperaattoreissa huomioitavaa on, että vaikka yksittäisillä luvuilla operaattorit toimivat odotetusti, * ja / tarkoittavat matriisituloa ja matriisien jakolaskua. | ||
Octave tulkitsee matriisien jakolaskun x/y lausekkeeksi <tt>(inverse(y')*x')'</tt>, missä <tt>inverse(y)</tt> 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 | Tyypillinen sijoitus muuttujaan A, joka siis ei säilytä välttämättä A:n aikaisempia dimensioita: | ||
A=lauseke | A=lauseke | ||
Jos halutaan korvata vain osa A:sta, voidaan käyttää A: | 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); | A(1:80,2)=zeros(80,1); | ||
=== | ===Funktiot=== | ||
Funktioita voidaan määritellä function-avainsanalla seuraavasti | Funktioita voidaan määritellä <tt>function</tt>-avainsanalla seuraavasti: | ||
function lista palautusarvoista = funktionimi (argumenttilista) | function lista palautusarvoista = funktionimi (argumenttilista) | ||
#funktion toiminnallinen osa, jossa mahdolliset sijoitukset paluuarvoihin | #funktion toiminnallinen osa, jossa mahdolliset sijoitukset paluuarvoihin | ||
endfunction | 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ä. | 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ä. | ||
<pre> | |||
octave:9> function [A,B] = funktio(C,D=100) | octave:9> function [A,B] = funktio(C,D=100) | ||
> A=C*D; | > A=C*D; | ||
Rivi 61: | Rivi 96: | ||
101 102 | 101 102 | ||
</pre> | |||
== Aiheesta muualla == | |||
* [http://www.gnu.org/software/octave/ Ohjelman kotisivu] | |||
* [http://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB Matlabin ja Octaven erot] englanninkielisessä wikikirjastossa | |||
=== Oppaita === | |||
* [http://www.gnu.org/software/octave/doc/interpreter/ Octaven virallinen ohjekirja] | |||
* [http://www.math.ufl.edu/help/matlab-tutorial/ Matlab-opas] | |||
* [http://www.helsinki.fi/~mjlaine/matlab/ Suomenkielinen Matlab-opas] | |||
* [https://extras.csc.fi/math/matlab/matlabohje.pdf Ohjeita Matlabin käyttöön] - suomenkielinen artikkelisarja | |||
* [http://en.wikibooks.org/wiki/Matlab Matlab Programming] englanninkielisessä wikikirjastossa | |||
* [http://en.wikibooks.org/wiki/Octave_Programming_Tutorial Octave Programming Tutorial] englanninkielisessä wikikirjastossa | |||
== Katso myös == | == Katso myös == | ||
* [[Gnuplot]] | * [[Gnuplot]] (Octave käyttää kuvaajien piirtämisessa Gnuplottia) | ||
* [[ | * [[Readline]] | ||
* [[ | * [[Latex]] | ||
* [[ | * [[Koctave]] | ||
[[Luokka: | * [[QtiPlot]] | ||
* [[Qtoctave]] | |||
* [[Xoctave]] | |||
[[Luokka:Numeerinen laskenta]] | |||
[[Luokka:Kehitystyökalut]] |
Nykyinen versio 21. maaliskuuta 2022 kello 23.30
GNU Octave | |
---|---|
Käyttöliittymä | Qt / teksti |
Lisenssi | GPLv3+ |
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[muokkaa]
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[muokkaa]
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.
Lisäpaketit[muokkaa]
Octavelle on olemassa monia lisäpaketteja, joita ei löydy läheskään kaikkien jakeluiden paketinhallintajärjestelmistä. Tällöin lisäpaketit on asennettava käsin.
Lisäpakettien hallintaan on Octavessa komento pkg, jolla esimerkiksi pakettien asentaminen onnistuu. Yleisimpiä paketteja löytyy Octaven kotisivujen pakettisivulta. Sivulta voidaan valita esimerkiksi luonnonvakioiden arvoja tuova PhysicalConstants-paketti, joka kopioidaan ensin omalle koneelle Download-linkistä.
Kun .tar.gz-muotoinen tiedosto on ladattu koneelle, siirrytään komentorivillä paketin tallennushakemistoon ja käynnistetään Octave. Tämän jälkeen ajetaan komento
pkg install paketin_tiedosto.nimi.tar.gz
esimerkiksi
pkg install physicalconstants-0.1.7.tar.gz
Tämän jälkeen paketin funktioita voi alkaa käyttää normaalisti: esimerkiksi valon nopeus tyhjiössä saataisiin komennolla
octave:1> physical_constant("SPEED_OF_LIGHT_IN_VACUUM") ans = 299792458
Paketti voidaan ladata pois käytöstä komennolla pkg unload paketti, esimerkiksi tässä pkg unload physicalconstants. Vastaavasti lataaminen käyttöön tapahtuu komennolla pkg load. Kaikki asennetut paketit näkee komennolla pkg list; tässä listassa tähdellä merkityt paketit on sillä hetkellä ladattuna käyttöön. Paketin poistaminen tapahtuu komennolla pkg uninstall paketti.
Kannattaa kuitenkin aina tarkistaa, löytyisikö asennettava paketti jakelun paketinhallinnasta. Esimerkiksi tässä käytetty PhysicalConstants löytyy ainakin Debianin ja sen johdannaisten ohjelmalähteistä (paketti octave-physicalconstants).
Käyttö[muokkaa]
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[muokkaa]
Octavea käytettäessä on muistettava, että se käsittelee yleensä kaikkia muuttujia matriiseina. Kieli onkin erityisen tehokas matriisien käsittelyyn ja siten lähes kaikkiin numeerisiin toimenpiteisiin.
Tietotyypit[muokkaa]
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[muokkaa]
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[muokkaa]
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[muokkaa]
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[muokkaa]
- Ohjelman kotisivu
- Matlabin ja Octaven erot englanninkielisessä wikikirjastossa
Oppaita[muokkaa]
- Octaven virallinen ohjekirja
- Matlab-opas
- Suomenkielinen Matlab-opas
- Ohjeita Matlabin käyttöön - suomenkielinen artikkelisarja
- Matlab Programming englanninkielisessä wikikirjastossa
- Octave Programming Tutorial englanninkielisessä wikikirjastossa