Octave

Innen: HamWiki
Ugrás a navigációhoz Ugrás a kereséshez

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

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

#!/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")

Bővebb leírások