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
# 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
Funkcja | Opis | Przykład |
rows | Wypisuje liczbę wierszy | rows(macierz) |
columns | Wypisuje liczbę kolumn | columns(macierz) |
all | Sprawdza, czy wszystkie elementy macierz są niezerowe | all(macierz) |
any | Sprawdza, czy jakikolwiek element macierz jest niezerowy | any(macierz) |
find | Zwraca współrzędne niezerowych elementów macierz | find(macierz) |
sort | Sortuje elementy każdej kolumny | sort(macierz) |
sum | Sumuje wartości w każdej kolumnie | sum(macierz) |
prod | Mnoży wartości w każdej kolumnie | prod(macierz) |
min | Minimum 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
Więcej znajdziesz na:
http://www.mathworks.com/help/matlab/index.html
Gotowa ściąga :)))
http://www.mimuw.edu.pl/~przykry/octave/pl-refcard.pdf
http://www.mathworks.com/help/matlab/index.html
Gotowa ściąga :)))
http://www.mimuw.edu.pl/~przykry/octave/pl-refcard.pdf