Metody Obliczeniowe

Wprowadzenie do programu Scilab

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".

Ustawienia okienek w programie Scilab. Pierwszy program "Hello world".

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)

Scilab - definiowanie zmiennych

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)

# Przykład

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)
\]


Modyfikowanie zmiennych

• 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)

# Przykład

Do zmiennej $\G$ przypisz macierz o wymiarach $3 \times 2$ wypełnioną zerami. Przypisz wszystkim elementom w wierszach 1 i 2 wartość 10.0


# Przykład

Do zmiennej $\F$ przypisz wektor o długości 6 wypełniony jedynkami. Wstaw od 3 do ostatniego elementu kolejne liczby naturalne 1, 2...