Octave [Matlab]

GNU Octave – to wolne i otwarte srodowisko programistyczne do prowadzenia obliczeń numerycznych w zastosowaniach matematycznych i inżynieryjnych.  Jest odpowiednikiem komercyjnego środowiska MATLAB.



1. WPROWADZENI

# Instalacja [Linux Debian/Ubuntu/Mint]
 Instalacja programu

 ~$ sudo apt-get install octave

Instalacja nakładki graficznej
~$ sudo apt-get install qtoctave 
# Polecenia konsoli

Polecenie
Działanie
exit, quit
Zamyka program
close, close all
Zamyka okno/a wykresów
clear, clear all
Czyści podaną zmienną / wszystkie zmienne
who
Wyświetla wszystkie zmienne
whos
Wyświetla szczegóły zmiennych
diary on / diary off
Włącza/wyłącza pamiętnik, czyli zapis wszystkich wykonanych działań do pliku np. diary lista.txt
help
Pomoc dla poleceń np. help plot
demo
Przykłady dla instrukcji np. demo mesh
format
Format wyświetlania wyników – więcej poniżej
pwd, ls, cd
Polecenia konsoli linux – katalog roboczy / lista plików/ zmiana katalogu

# Komentarze
% to jest komentarz
# to jest komentarz działający tylko w Octave

2. PODSTAWY PROGRAMOWANIA

# Wprowadzanie poleceń / przypisywanie zmiennych
Polecenie z echem [wypisuje wynik działania]
np. a=5
Polecenie bez echa [;]
np. a=5;

# Podstawowe operacje matematyczne

Operacja Polecenie Przykład
Dodawanie + 2+4
Odejmowanie - 5-3
Mnożenie * 3*4
Dzielenie / 8/2
Potęgowanie ^ 2^3
Pierwiastek sqrt(x) sqrt(16)
Pi pi pi

Operacje można wpisywać w jednej linii oddzielając je przecinkami (z echem) lub średnikami (bez echa)
np. a=3-pi, b=3*sqrt(12); 2^a


# Precyzja wyświetlanych wyników

Polecenie format przywraca domyślną precyzję


Polecenie Wartość Opis
Format short 3.1416 5 cyfr, reprezentacja stałoprzecinkowa
Format long 3.14159265358979 15 cyfr, reprezentacja stałoprzecinkowa
Format shortE 3.1416e+000 5 cyfr, reprezentacja zmiennoprzecinkowa
Format longE 3.141592653589793e+000 15 cyfr, reprezentacja zmiennoprzecinkowa
Format shortG 3.1416 5 cyfr, reprezentacja stało- lub zmiennoprzecinkowa
Format longG 3.14159265358979 15 cyfr, reprezentacja stało- lub zmiennoprzecinkowa
Format hex 400921fb54442d18 Liczba w systemie szesnastkowym
Format bank 3.14 2 liczby dziesiętne, np. złoty i grosze
Format rat 355/113 Przybliżona warto B liczby w postaci ułamka
Format + + Informacja o znaku liczby


# Rysowanie wykresów

* funkcja plot

plot(x,y,s) – rysuje wykres wektora x lub x,y o parametrach wizualnych s (można pominąć)

np. plot (2:16,5, 'gb') – rysuje wektor od 2 do 16 dla y=5 w zielonym kolorze z romabmi


* funkcja fplot

fplot (f,a,s) – rysuje wykres funkcji f w przedziale a o parametrach s (można pominąć)

np. x=5
fplot ('sin(x)', [2*pi 5*pi]) – rysuje funkcje sin(5) w przedziale od 2π do 5π

* parametry wizualne funkcji


Rodzaj linii Kolor Symbol punktów
. - punkt                 y – żółty - – ciągła
o – koła m – magenta : – punktowa
x – x'y c – cyjanowy -. – kropka-kreska
+ – plus r – czerwony -- – kreskowana
* – gwiazdka g – zielony
s – kwadraty b – niebieski
d – romb y w – biały
v – trójkąt w dół k – czarny
^ – trójką w górę       
< – trójkąt w lewo
> – trójkąt w prawo
p – pięciokąt        
h – sześciokąt

LineWidth ,a - grubość linii
MarkerSize ,a - rozmiar punktoru

np. fplot ('sin(x)', [2*pi 5*pi], 'LineWidth',4, 'MarkerSize',10)

* opisy wykresu

title('tytuł') - tytuł wykresu
xlabel('opis osi x') - opis osi x
ylabel('opis osi y') - opis osi y
text(x,y, 'opis') - opis wstawiony w punkcie (x,y)

* formatowanie obszaru wykresu

axis('auto') - automatyczny tryb skalowania wykresu
axis([xmin, xmax, ymin, ymax]) - wykres w przedziale x,y
axis('off') - wyłączone osie
axis('on') - włączone osie
axis('equal') - proporcjonalne osie x i y

grid('off') - wyłączenie siatki
grid('on') - włączenie siatki
grid minor - drobna siatka

loglog(x) - skala logarytmiczna na obu osiach
semilogx(x) - skala logarytmiczna na osi X
semilogy(x) - skala logarytmiczna na osi Y





# MACIERZE

Macierz to inaczej tablica. W octave nawet zmienne są traktowane jako macierz 1x1



* Tworzenie macierzy

Do generowania macierzy używamy nawiasów kwadratowych. Spacje oddzielają kolejne elementy w wierszu (kolumny), natomiast średnik tworzy nowy wiersz.



np.

m= [ 1 2 3; 4 5 6 ; 7 8 9]



Wynik:

1 2 3

4 5 6

7 8 9



* Odwołanie do elementu macierzy

Odwołujemy się do macierzy podając jej nazwę oraz w nawiasie okrągłym numer wiersza i kolumny. W odróżnienia od tablic w innych językach tutaj indeksowanie rozpoczyna się od 1.



np.

m(2,2)



Wynik:

5



* Generowanie macierzy specjalnych



Funkcja Opis Przykład
eye Macierz jednostkowa – z jedynkami na przekątnej eye(5) – macierz kwadratowa 5x5
ones Macierz jedynek Ones (3,2)
zeros Macierz zer
zeros(3,2)
magic Macierz magiczna
magic(5)
pascal Macierz Pascala
pascal(5)
rand Macierz losowa o rozkładzie równomiernym
rand(5,2)
rnadn Macierz losowa o rozkładzie normalnym
randn(5,2)


* Podstawowe funkcje macierzowe

FunkcjaOpisPrzykład
rowsWypisuje liczbę wierszyrows(macierz)
columnsWypisuje liczbę kolumncolumns(macierz)
all        Sprawdza, czy wszystkie elementy macierz są niezerowe
all(macierz)
anySprawdza, czy jakikolwiek element macierz jest niezerowy
any(macierz)
find    Zwraca współrzędne niezerowych elementów macierz
find(macierz)
sortSortuje elementy każdej kolumny sort(macierz)
sum  Sumuje wartości w każdej kolumnie         sum(macierz)
prodMnoży wartości w każdej kolumnie prod(macierz)
minMinimum kolumn       
min(macierz)             
max                  Maksimum kolumn
max(macierz)



# WEKTORY



* Generowanie wektorów kolejnych liczb całkowitych

Kolejne liczby od a do x – a:x
np.

1:10

Wynik:

1 2 3 4 5 6 7 8 9 10



* Generowanie wektorów kolejnych liczb całkowitych ze skokiem

Kolejne liczby od a do x ze skokiem y – a:y:x

np.

1:4:14

Wynik:

1:5:9:13



* Generowanie wektorów kolejnych liczb rzeczywistych

Np.

(-0.4):(0.25): 0.6

Wynik

-0.40000 -0.15000 0.10000 0.35000 0.60000