Scilab (https://www.scilab.org/) to otwarte oprogramowanie numeryczne służące do przetwarzania danych, obliczeń matematycznych, analizy danych, a także wizualizacji i modelowania. Jest to narzędzie podobne do innych programów do obliczeń numerycznych, takich jak MATLAB czy Octave. Scilab dostarcza środowisko programistyczne oraz interaktywną konsolę do wykonywania operacji matematycznych i inżynieryjnych.
Możliwe są dwa tryby pracy:
• interaktywny (konsola)
• z wbudowanym edytorem SciNotes
Skrypt uruchamiamy klawiszem F5 lub z menu wybierany opcję "Zapisz i Uruchom".
Uruchamiamy edytor SciNotes, Zapisujemy plik pod dowolną nazwą. W edytorze wpisujemy:
disp("Hello world")
Naciskamy klawisz F5 (uruchamiamy skrypt). W konsoli powinien pojawić się napis "Hello world".
Podstawowe komendy w jezyku Scilab
• Wyświetlanie wyników
disp(2); disp("kwp");
• Czyszczenie konsoli
clc
• Czyszczenie zmiennych
clear
• Symbol komentarza liniowego
// komentarz liniowy
• Symbol komentarza blokowego
/*
komentarz
blokowy
*/
• separator dziesiętny to kropka. Aby zapisać część dziesiętną danej liczby używamy symboli kropki!!!
disp(2.4)
W Scilab, podobnie jak w wielu innych językach programowania, istnieją pewne zasady dotyczące nazewnictwa zmiennych.
• Rozmiar liter: Scilab rozróżnia wielkość liter, co oznacza, że nazwy zmiennych "abc" i "ABC" są traktowane jako dwie różne zmienne.
• Początek nazwy: Nazwy zmiennych powinny zaczynać się od litery. Mogą zawierać litery, cyfry i podkreślenia.
• Długość nazwy: Nazwa zmiennej może mieć dowolną długość, ale zaleca się używanie krótkich i opisowych nazw, które jednoznacznie określają przeznaczenie zmiennej.
• Znaki specjalne: Nie można używać znaków specjalnych, takich jak spacje, myślniki, itp. w nazwach zmiennych.
• Słowa kluczowe: Nie można używać słów kluczowych języka Scilab jako nazw zmiennych, ponieważ są one zarezerwowane dla konkretnych funkcji i poleceń w języku.
• Opisowe nazwy: Zaleca się używanie nazw zmiennych, które są opisowe i pomagają zrozumieć przeznaczenie zmiennej. Unikaj jednoliterowych nazw, chyba że są one powszechnie używane w danym kontekście
Przykłady poprawnych nazw zmiennych w Scilab:
wynik
wartosc_poczatkowa
liczbaElementow
moj_wektor
Do definiowania zmiennych używamy symbolu =
. Przed i po znaku możemy użyć spacji. Program nie jest wrażliwy na liczbę użytych spacji
• definicja zmiennej
a = 2; disp(a)
• definicja wektora (2 elementy)
b = [5 6]; disp(b)
• definicja wektora o długości 5. Kolejne elementy wektora rozdzielamy przecinkiem lub spacją
c = [1, 2, 3, 4, 5]; disp(c)
c = [1 2 3 4 5]; disp(c)
• definicja macierzy $2 \times 2$. Aby przejść do kolejnego wiersza używamy symbolu średnika. Rozmiar macierzy określają dwie liczby $n \times m$, pierwsza z nich określa liczbę wierszy natomiast druga liczbę kolumn. Dla przykładu macierz o wymiarze $6\times 4$ ma 6 wierszy i 4 kolumny.
d = [1 2; 4 5]; disp(d) //2x2
d = [1 3 2; 5 3 1]; disp(d) //3x2
• definicja wektora przy użyciu symbolu a:b:c
, gdzie a
oznacza pierwszy element wektora, b
oznacza krok czyli różnice między kolejnymi elementami wektora c
ostatnia wartość wektora*. Wartości generowane zaczynając od a
, a następnie dodając b
do poprzedniej wartości, aż do osiągnięcia lub przekroczenia wartości c
. Jeżeli pominięty zostanie krok to domyślana jego wartość zostanie ustawiona na 1.
e = 1:0.2:10
disp(e)
e = 1:10
disp(e)
Do zmiennej A przypisz macierz jak poniżej. Następnie wyświetl zdefiniowaną macierz w konsoli.
\[\left(
\begin{matrix}
1 & 2,4 & 3 & 4\\
2,5 & 3,5 & 4,5 & 5,5\\
4 & 3,1 & 2,7 & 1,2 \\
\end{matrix}
\right)
\]
• definicja macierzy $a$ która ma 2 wiersze i 4 kolumny
a = [1 2 3 4; 6 7 8 9]; disp(a)
• zmiana pojedynczego elementu macierzy znajdującego się pierwszym wierszu i pierwszej kolumnie
a(1,1) = 0; disp(a)
• zmiana pojedynczego elementu macierzy znajdującego się drugim wierszu i czwartej kolumnie
a(2,4) = 0; disp(a)
• zmiana wszystkich elementów w pierwszym wierszu
a(1,:) = 0; disp(a)
• zmiana wszystkich elementów w trzeciej kolumnie
a(:,3) = 0; disp(a);
• Zmień elementy leżące w drugim wierszu oraz kolumnach od 2 do 4
a(2,2:4) = [3.5, 4.5, 5.5];
disp(a);
• transpozycja wektora
v = [1, 2, 3, 4]; disp(v)
w = v'; disp(w)
• Wymiar wektora/macierzy
wymiar1 = size(v); disp(wymiar1)
wymiar2 = size(w); disp(wymiar2)
Do zmiennej $\G$ przypisz macierz o wymiarach $3 \times 2$ wypełnioną zerami. Przypisz wszystkim elementom w wierszach 1 i 2 wartość 10.0
Do zmiennej $\F$ przypisz wektor o długości 6 wypełniony jedynkami. Wstaw od 3 do ostatniego elementu kolejne liczby naturalne 1, 2...