SciLab
Proste obliczenia -->a=10+2+23; -->b=41+52*6; -->a+b -->3+2 -->2*2 -->1/(2+2) -->2^10 -->sqrt(121) -->sqrt(8) -->sin(100) -->max(1,3,4,5) -->1+2+... -->3+4 -->a=10+2+23; -->b=41+52*6; -->a+b -->modulo (21,4) //reszta z dzielenia
Zmienne zmienne w Scilabie traktowane są jak macierze Skalary są interpretowane jako macierze o wymiarze 1x1 who – wyświetla listę zmiennych whos() – wyświetla listę zmiennych, ich wymiar, ile zajmują miejsca w pamięci; wyświetla też listę nazw funkcji zdefiniowanych przez użytkownika clear a – usuwa zmienną a clear – usuwa wszystkie zdefiniowane przez użytkownika zmienne Zmienne predefiniowane: -->%pi -->%i -->%e
Wektory -->a=[1 2 3] -->a’ //transponowanie wektora z zamianą na wartości sprzężone -->a.’ //transponowanie wektora „zwykłe” Iloczyn skalarny dwóch wektorów -->a=[1 2 3]; -->b=[3 2 1]; -->c=a*b’ //10
Tabliczka mnożenia -->a=[1 2 3 4 5 6 7 8 9 10]; -->a'*a Specjalny operator umożliwiający mnożenie macierzy w sposób analogiczny do dodawania, tzn. element przez odpowiadający mu element -->a=[1 2 3]; -->b=[3 2 1]; -->c=a.*b Analogicznie możemy podzielić dwa wektory -->d=a./b
Macierze Elementy tego samego wiersza oddzielone są spacją lub przecinkiem Lista elementów musi być ujęta w nawias kwadratowy [] Każdy wiersz, z wyjątkiem ostatniego, musi być zakończony średnikiem. --> A=[1 1 1;2 2 2;3 3 3]
w przypadku, gdy instrukcja zostanie zakończona średnikiem, wynik nie pojawi się na ekranie -->b=[2 9 15 980]; aby zobaczyć współrzędne wprowadzonego wektora, wystarczy wpisać -->b
bardzo długa instrukcja może być napisana w kilku liniach, przy czym przechodząc do następnej linii, linię poprzednią należy zakończyć trzema kropkami -->T=[1 0 0 0 0 0;… --> 1 2 0 0 0 0;… --> 1 2 3 0 0 0;… --> 1 2 3 4 0 0;… --> 1 2 3 4 5 0;… --> 1 2 3 4 5 6]
wprowadzanie liczb zespolonych -->c=1+6*%i -->Y=[5+%i , -2+3*%i ; -8, %i]
Typowe macierze Macierz jednostkowa -->I=eye(3,3) Macierz diagonalna -->B=diag([1,2,3,4]) -->B=diag(b) //elementy na głównej przekątnej pochodzą z wcześniej zdefiniowanego wektora b Macierz zerowa -->O=zeros(3,4) Macierz jedynkowa -->C=ones(2,3)
Macierz trójkątna -->U=triu(T) //górna -->U=tril(T) //dolna Macierze o elementach losowych funkcja rand pozwala utworzyć macierz o elementach pseudolosowych (pochodzących z przedziału [0,1) -->M=rand(3,4) n elementowy wektor o stałej różnicy między elementami -->x=linspace(0,1,11) -->x=1:5 -->y=0:0.3:1 -->i=0:2:12
-->M=[sin(%pi/3) sqrt(2) 5^(3/2); exp(-1) cosh(3.7) (1-sqrt(-3))/2] 0.8660254 1.4142136 11.18034 0.3678794 20.236014 0.5 - 0.8660254i - powyższy przykład ilustruje potencjalne niebezpieczeństwo podczas obliczania pierwiastka kwadratowego z liczby ujemnej – Scilab rozważa, czy ma do czynienia z liczbami zespolonymi i zwraca jeden z pierwiastków jako rezultat
Działania na macierzach -->x=linspace(0,1,5)’ -->y=(1:5)‚ -->p=y'*x -->Pext=y*x‚ -->Pext/0.25 -->A^2 -->[0 1 0]*ans //można użyć zmiennej ans, która zawiera wynik ostatniego działania -->Pext*x-y+rand(5,2)*rand(2,5)*ones(x)+triu(Pext)*tril(Pext)*y; -->ans -->A=[ 1 2 3; 3 4 5 ; 2 4 5] -->D=A+ones(3,3) -->M= [ 1 2; 3 4] -->A+M -->C=ones(3,4) -->A*C -->C*A -->At=A’ -->Ac=A+%i*eye(3,3) //tworzymy macierz o elementach zespolonych -->Ac’ -->Ac.‚
-->sqrt(A) -->exp(A) -->A./A -->inv(A) //odwracanie macierzy -->A^(-1)
1 2 3 4 𝑥 𝑦 = 1 2 -->A=[1 2; 3 4] -->b=[1;2] -->A\b -->inv(A)*b -->A^2 -->A**2 -->A.^2 -->A+1 //dodanie liczby do każdego elementu macierzy
Aby odnieść się do konkretnego elementu macierzy wystarczy przy nazwie podać w nawiasie jego indeksy: -->A=[1 2 3; 4 5 6; 7 8 9] -->A(2,2) //element z drugiego wiersza i drugiej kolumny -->x=1:30 -->x(1,29) -->x(29) // jeśli macierz jest wektorem wierszowym wystarczy wpisać numer kolumny, w której znajdzie się szukany element – analogicznie postępujemy w przypadku wektora kolumnowego
-->A=[1 2 3; 4 5 6; 7 8 9] -->A(:,2) //druga kolumna -->A(2,:) //drugi wiersz -->A(1:2,1:2) //wybieramy pierwsze dwa wiersze i pierwsze dwie kolumny -->A([1 3],[2 3]) -->A([1 3],:) -->sum(A) //suma elementów macierzy -->sum(A,"r") //suma elementów w wierszu -->sum(A,"c") //suma elementów w kolumnach -->min(A) -->max(A) -->mean(A)
Konkatenacja macierzy 1 2 3 4 1 4 9 16 1 1 8 16 27 81 64 256 = 𝐴 11 𝐴 12 𝐴 21 𝐴 22 -->A11=1; -->A12=[2 3 4]; -->A21=[1;1;1]; -->A22=[4 9 16;8 27 64;16 81 256]; -->A=[A11 A12;A21 A22] -->A(5) -->A(7) -->A(5:9) -->A(5:9)=-1 -->B=[1 2 3;4 5 6] -->B_new=matrix(B,3,2) //funkcja matrix umożliwia takie przekształcenie macierzy, aby miała ona nowe wymiary (przy zachowaniu tych samych współczynników)
Wielomiany Zdefiniowanie wielomianu zmiennej x o współczynnikach 10, 20, 30: -->w=poly([10,20,30],"x","coeff") -->z=poly([1,2,3],"x","coeff") -->w+z -->w*z -->derivat(w) //pochodna wielomianu -->horner(w,1) //wartość wielomianu w w punkcie 1 -->roots(w) //pierwiastki wielomianu
Wykresy plot(x,y) – x i y są wektorami, a wynikiem jest zbiór punktów o współrzędnych (x,y) branych kolejno z obu wektorów -->x=[-5,-4,-3,-2,-1,0,1,2,3,4,5]; -->plot(x,x) -->plot(x,x.^2) -->plot(x,x.^3) -->t=[-%pi:0.01:%pi]; -->plot(t,sin(t))