Octave
Igen nagy tudású matematikai program, amely bőséges függvénygyűjteménye segítségével sokmindent ki tudunk számítani.
Szoftverlicenc: GPL
Tartalomjegyzék
Telepítése
Ubuntu Linux disztribúció esetén a leg egyszerűbb: sudo apt-get install octave
Ajánlott további kiegészítő függvénykönyvtárak felhasználása. Például:
- octave-signal: jelfeldolgozás terén végzett számításokhoz sok segítséget ad, szintén Ubuntu csomagválogatás része, így a feltelepítése mindössze: apt-get install octave signal parancsra egyszerűsödik.
Használata
Az octave változói alapértelmezetten vagy egyetlen számot vagy vektort tartalmaz.
Változók definiálása
a=2 b=[2, 3, 5, 6]
Komplex számokkal is elboldogul, amely kondenzátort és/vagy induktivitást tartalmazó áramkörök számításánál szerencsés.
c=3-2j d=[2-3j, 3+5j, 1-3j, 4j]
Az eredmény=d/c műveletet a komplex számábrázolás szabályai alapján kiszámolja. Megjegyzés: ha az sor elején ismertetett eredmény=d/c számítást pontosvesszővel lezárjuk, akkor az eredményt csak a változóba helyezi, a képernyőre nem írja ki.
Feltételes végrehajtások, ciklusok
Bonyolultabb, közelítő számításokhoz használható if és switch feltételes vezérlőszerkezet és while illetve for ciklus egyaránt.
Függvények hívása
Az octave rengeteg beépített függvényt tartalmaz. Továbbá mi magunk is írhatunk alá saját függvénykiterjesztéseket. A számítások eredményét numerikusan és grafikonon egyaránt megjeleníthetjük. Utóbbit a plot függvény segítségével.
Saját szkriptek, függvénygyűjtemények készítése
Az alábbi fájlt az aktuális könyvtárban teszt.m néven elmentve már létezik is egy teszt nevű függvényünk az octave elindítása után. Lényeg, hogy a fájl neve a függvény nevével egyező kell legyen, a vége pedig .m (pont m).
## teszt.m példaprogram, amely a két argumentum szorzatát adja eredményül. ## Használata: ## teszt(szám1, szám2) ## function v = teszt(a, b) v = a*b; endfunction
A "help teszt" parancs pedig a ## jellel kezdődő sorokat, mint segítő kommentet írja ki, amely a mindenkori használatát írja ki.
Konkrét példa
RC aluláteresztő szűrő karakterisztikájának megjelenítése
<source lang="matlab">
- !/usr/bin/octave
- -*- coding: utf8 -*-
- Pelfa
- RC alulatereszto szuro atviteli karakterisztikaja
R = 1600; # 1k6 C = 100e-9; # 100n
function m = h(frequencies, R, C)
m = []; i=0 for f = frequencies i+=1; Xc=1/(2j*pi*f*C); m(i) = Xc/(R+Xc); endfor
endfunction
x = (100:100:70e3); # 100 Hz ... 70kHz
y = h(x, R, C);
loglog(x, abs(y)); # logaritmikus skalan abrazolva
input("Nyomj egy billentyűt") </source>
Bővebb leírások
- http://www.gnu.org/software/octave/doc/interpreter/
- http://octave.sourceforge.net/doc/
- http://octave.sourceforge.net/packages.html --- további bővítmények (Ubuntu: "apt-cache search octave" parancs is sokat segít)