GNU Octave
kurs elementarny

Łatwe początki
czyli proste obliczenia w Octave

Octave jako kalkulator naukowy

Tuż po uruchomieniu Octave wyświetla krótki tekst, tzw. zachętę (ang. prompt) do wpisania polecenia:

octave:1>

W tym przypadku zachęta składa się z czterech elementów: nazwy programu (octave), znaku dwukropka, numeru polecenia (tu: 1) i znaku >. Poniżej zwykle będę skracał tekst zachęty do pojedynczego znaku >.

Rozpocznijmy od prostego zadania: ile wynosi rozwinięcie dziesiętne ułamka 1/7? W tym celu po tekście zachęty wpisujemy wyrażenie 1/7

octave:1> 1/7

Program odpowie następująco:

ans =  0.14286

Napis ans oznacza specjalną zmienną, w której przechowywana jest wartość ostatniego wyrażenia. Sprawdźmy to, obliczając 1/ans:

octave:2> 1/ans
ans =  7

Spróbujmy teraz obliczyć wartość 1/0.14286:


octave:3> 1/0.14286
ans =  6.9999

Porównanie wyników obliczeń dwóch ostatnich wyrażeń musi budzić zaniepokojenie. Z jednej strony program informuje nas, że ans = 0.14286, z drugiej strony zaś twierdzi, że 1/ans i 1/0.14286 mają różne wartości. Gdzie tu logika?

Odpowiedź jest prosta – Octave wyświetla przybliżone wartości wyników obliczeń i wartości zmiennych. Domyślnie wyświetlane jest 5 cyfr znaczących wyniku. Jeżeli chcemy zwiększyć dokładność do 15 cyfr, powinniśmy wydać polecenie

> format long

Jeśli teraz spróbujemy wyznaczyć wartość ilorazu 1/7, otrzymamy aż piętnaście poprawnych cyfr wyniku

octave:5> 1/7
ans =  0.142857142857143
octave:6> 1/ans
ans =  7

Zazwyczaj dokładność sięgająca piętnastu cyfr znaczących jest niepotrzebna. Aby ponownie otrzymywać skrócone wartości obliczeń, wydajemy polecenie

> format short

Octave umożliwia wykonywanie wszystkich podstawowych operacji matematycznych. Wykaz najważniejszych operatorów rozpoznawanych przez Octave znajduje się w Tabeli 1.

   Operacja       Operator        Przykłady   
potęgowanie ** lub ^ 2**3,  2^3
mnożenie * 2 * 3
dzielenie /  lub  \ 1/7  lub  7\1
dodawanie + 2 + 2
odejmowanie 3 – 2
Tabela 1. Podstawowe operatory arytmetyczne Octave

Największą niespodziankę stanowi możliwość zapisu dzielenia w postaci y\x zamiast standardowego x/y. Zapisu tego używa się gównie w operacjach na macierzach, zwłaszcza przy rozwiązywaniu układów równań liniowych, gdzie rozróżnianie operacji x/y i y\x ma sens i związane jest z tym, że w ogólnym przypadku mnożenie macierzy jest operacją nieprzemienną. Jeżeli x i y są zwykłymi liczbami, wyrażenia x/y i y\x są sobie równoważne.

Wśród powyższych operatorów największy priorytet ma potęgowanie, następnie mnożenie i dzielenie, następnie dodawanie i odejmowanie. Dlatego wyrażenie 2+2**3/4 interpretowane jest jak 2 + ((2**3)/4) a nie jak np. 2 + 2**0.75.

Octave rozpoznaje też kilka stałych matematycznych. Najważniejsze z nich przedstawia Tabela 2.

   Stała        Zapis w Octave        Znaczenie   
π pi Iloraz obwodu koła do jego średnicy
e e podstawa logarytmów naturalnych
i i jednostka urojona
Tabela 2. Najważniejsze stałe w Octave

W Octave można też posługiwać się niemal wszystkimi funkcjami używanymi na kursach matematyki wyższej, m.in. sin, cos, exp, sqrt i wieloma, wieloma innymi.

Oto kilka przykładów użycia Octave jako zaawansowanego kalkulatora naukowego:

> pi^2
ans =  9.8696
> sin(3i)
ans =   0.00000 + 10.01787i
> log(sin(pi/7)) + asin(0.5)
ans = -0.31138

Należy pamiętać, że Octave zakłada, że argumenty funkcji trygonometrycznych podawane są w radianach. Aby obliczyć np. sin(n), gdzie n jest wyrażone w stopniach, należy n pomnożyć przez π i podzielić przez 180:

octave:6> sin(30 *  pi / 180) # sinus 30 stopni
ans =  0.50000

W powyższym przykładzie znak # rozpoczyna komentarz, który rozciąga się do końca wiersza

Program opuszczamy poleceniem quit

octave:7> quit

Quiz

  1. Jakie jest główne przeznaczenie programu Octave?
  2. Co to jest tekst zachęty?
  3. Co oznaczają operatory **, ^, *, /, \, + i ?.
  4. Jaka jest różnica między zapisem x/y i y\x, jeżeli x i y są "zwykłymi" liczbami?
  5. Jak kończy się pracy z programem Octave?

Zadania

  1. Oblicz sin(20°)
  2. Która liczba jest większa, 1011 czy 1110?
  3. Sprawdź, że i razy i równa się -1
  4. Oblicz wartość pi do potęgi pi z dokładnością do 10 cyfr po przecinku