Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

SciLab.

Podobne prezentacje


Prezentacja na temat: "SciLab."— Zapis prezentacji:

1 SciLab

2 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) --> -->3+4 -->a= ; -->b=41+52*6; -->a+b -->modulo (21,4) //reszta z dzielenia

3 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

4 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

5 Tabliczka mnożenia -->a=[ ]; -->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

6 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]

7 w przypadku, gdy instrukcja zostanie zakończona średnikiem, wynik nie pojawi się na ekranie
-->b=[ ]; aby zobaczyć współrzędne wprowadzonego wektora, wystarczy wpisać -->b

8 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=[ ;… --> ;… --> ;… --> ;… --> ;… --> ]

9 wprowadzanie liczb zespolonych
-->c=1+6*%i -->Y=[5+%i , -2+3*%i ; -8, %i]

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

11 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

12 -->M=[sin(%pi/3) sqrt(2) 5^(3/2); exp(-1) cosh(3.7) (1-sqrt(-3))/2]
i - 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

13 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; ; 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.‚

14 -->sqrt(A) -->exp(A) -->A./A -->inv(A) //odwracanie macierzy -->A^(-1)

15 𝑥 𝑦 = 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

16 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

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

18 A =[1,2,3,4,5,6; 8,8,8,8,8,8] -->A(1,3) -->A(1,3:6) -->B = A(1:2,2:3)

19 A =[1,2,3,4,5,6; 8,8,8,8,8,8] -->B = matrix(A, 3, 4) //zmiana kształtu macierzy – elementy macierzy czytane kolumnami

20 Zdeklaruj wektor X = [-5π,-4π,...,5π,6π].
Przepisz elementy wektora X do macierzy A (3 wiersze, 4 kolumny) wpisując wg kolumn. Zdeklaruj wektor Y, tworząc go jako wektor kolumnowy z pierwszych 4 współrzędnych wektora X.

21 Konkatenacja macierzy
= 𝐴 11 𝐴 12 𝐴 21 𝐴 22 -->A11=1; -->A12=[2 3 4]; -->A21=[1;1;1]; -->A22=[4 9 16; ; ]; -->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)

22 Ćwiczenia w konstruowaniu macierzy
1. Utwórz macierz 5x5 wykorzystując jeden wektor oraz jego transpozycję A = ! ! ! ! ! ! ! ! ! ! 2. Wyciągnij z macierzy A pierwszą i ostatnią linię. Oblicz produkt skalarny tak określonych wektorów. Zbuduj macierze trójkątne górne i dolne.

23 3. Oblicz macierz transponowaną do macierzy A.
4. Utwórz macierz z elementami losowymi. Wykonaj operacje sumowania, dzielenia z macierzą A. 5. Wydobądź element macierzy A leżący na przecięciu trzeciej linii i czwartej kolumny. 6. Oblicz wyznacznik macierzy (det(A)) oraz macierz odwrotną.

24 Ćwiczenia na liczbach zespolonych
1. Dane są następujące liczby zespolone: 𝑎=1+2𝑖, 𝑏=4−8𝑖, 𝑐=𝑖, 𝑑=4𝑖−4−4𝑖+4 Obliczyć: 𝑎+𝑏, 𝑎−𝑏, 𝑎∗𝑏, 𝑎− 𝑏+𝑐 +𝑎∗𝑑, 𝑎 𝑑 , 𝑏 𝑎 2. Obliczyć sprzężenia liczb 𝑎, 𝑏, 𝑐, 𝑑 𝑐𝑜𝑛𝑗 𝑐

25 3. Obliczyć moduły liczb (abs(c)):
4𝑖 12𝑖−5 𝑖 5 − 𝑖 1 𝑠𝑖𝑛 𝜋 8 + 𝑖 𝑐𝑜𝑠 𝜋 8 4. Obliczyć: (1+𝑖) 7 ( 3 −𝑖) 32 (−2+2𝑖) 8 (𝑐𝑜𝑠33⁰+𝑖𝑠𝑖𝑛33⁰) 10 ( 1−𝑖 3 +𝑖 ) 6 (−𝑐𝑜𝑠 𝜋 7 +𝑖𝑠𝑖𝑛 𝜋 7 ) 14

26 Obliczenia Wyznaczyć wartości wyrażeń 3 ( 1 5 ) 10 +𝑙𝑛5+ 𝑒 −4
𝑠𝑖𝑛 2 5+ 𝑐𝑜𝑠 2 5 − 𝜋 −

27 Zmienne tekstowe x=2;y=3 T='x+2*y’ //podstawienie ciągu znaków
evstr(T) //obliczenie wartości wyrażenia T

28 Wielomiany Zdefiniowanie wielomianu zmiennej x o współczynnikach 10, 20, 30: -->w=poly([10,20,30],"x","coeff") //w jest wielomianem zmiennej x posiadającym trzy współczynniki 10,20,30 -->z=poly([1,2,3],"x","coeff") jeśli pominiemy trzeci argument w wywołaniu funkcji będzie to oznaczać, że generowany wielomian ma mieć pierwiastki podane jako pierwszy argument (tu [1 2 3]) -->w+z -->w*z -->derivat(w) //pochodna wielomianu -->horner(w,1) //wartość wielomianu w w punkcie 1 -->roots(w) //pierwiastki wielomianu

29 𝑝=−6+11𝑥−6 𝑥 2 + 𝑥 3 𝑞=1+2𝑥+3 𝑥 2 𝑝+𝑞=? 𝑝∗𝑞=? 𝑝𝑖𝑒𝑟𝑤𝑖𝑎𝑠𝑡𝑘𝑖 𝑝 𝑖 𝑞? 𝑝 ′ , 𝑞 ′ ?

30 Operacje logiczne %t stała logiczna= True(prawda)
%f stała logiczna= False (fałsz) -->2==2 -->[1 2 3]==[2 2 2] -->~(1==2) //zaprzeczenie -->[1 2 3]==1 //porównanie współczynników tablicy z podaną wartością -->w|z //alternatywa -->w&z //koniunkcja

31 Zdeklaruj wektory o współczynnikach stałych logicznych
a=[ T T F T ] b=[ F T F T] Wyświetl ●wektor przeciwny do a ●koniunkcję a i b ●alternatywę a i b ●koniunkcję a i wektora przeciwnego do b

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

33 Utworzenie wektora zawierającego 101 wartości zmiennej 𝑥 i narysowanie wykresu funkcji 𝑦 𝑥 = 𝑒 −𝑥𝑠𝑖𝑛(4𝑥) -->x=linspace(0,2*%pi,101); -->y=exp(-x.*sin(4*x)); -->plot(x,y); -->x=[0.1:1:3*%pi]'; -->y1=sin(x)./x; -->y2=cos(x)./x; -->plot(x,[y1 y2]);

34 -->x=[0:0.01:3*%pi]'; -->plot2d(x,[sin(x) cos(x) x^2],style=[3,5,7]); //plot2d działa podobnie jak plot, ale jest wzbogacony o kilka elementów; parametr style jest wektorem, którego wymiar jest równy ilości wykresów, a kolejne współrzędne oznaczają ich kolory -->x=linspace(-%pi,%pi,101); -->plot2d(x,sin(x),rect=[-4,-1,4,2]) //rect=[xmin,ymin,xmax,ymax] – podaje zasięg osi x i y -->plot2d(x,sin(x),axesflag=4) //axesflag określa sposób położenia osi i ramki wykresu, przyjmuje wartości od 0 do 5 i 9.

35 -->x=[-%pi:0.01:%pi]';
-->plot2d(x,[sin(x) cos(x) sinusa") //opis wykresów (parametr leg) -->x=linspace(-3,3,101); -->y=exp(-(x.*x)); -->plot2d(x,y) -->plot2d2(x,y) -->plot2d3(x,y) -->plot2d4(x,y)

36 Wykresy trójwymiarowe, podstawowym poleceniem jest plot3d(wektorX,wektorY,values), wektor WektorX ma długość 𝑛 𝑥 , wektorY ma długość 𝑛 𝑦 , (liczby 𝑛 𝑥 i 𝑛 𝑦 nie muszą być równe), values jest macierzą o rozmiarze 𝑛 𝑥 x 𝑛 𝑦 . Jak sporządzić wykres funkcji 𝑓 𝑥,𝑦 = 𝑥 2 + 𝑦 2 𝑥,𝑦∈ −3,3 ? Inaczej, jak (w wygodny sposób) uzyskać macierz values? korzystamy z funkcji ones(...), która tworzy macierz złożoną z samych jedynek. Argumentem funkcji ones może być para liczb (ilość wierszy, ilość kolumn) lub macierz „wzorcowa”. Istnieje analogiczna funkcja zeros(...).

37 -->x=linspace(-3,3,51);
-->y=linspace(-3,3,61); -->xx=x'*ones(y) //trzymamy macierz o rozmiarach 51×61 o stałych wierszach -->yy=ones(x)'*y // trzymamy macierz o rozmiarach 51×61 o stałych kolumnach -->z=xx.*xx+yy.*yy -->plot3d(x,y,z)

38 Rysowanie linii śrubowej
-->t=linspace(0,4*%pi,101); -->x=2*cos(t); -->y=2*sin(t); -->z=4*t; -->param3d(x,y,z)

39 Ceny 20 losowo wybranych mieszkań w Lublinie kształtują się następująco (w tys. zł): 150, 198, 250, 499, 187, 345, 267, 189, 177, 176, 246, 389, 470, 267, 678, 654, 376, 278, 189, Stworzymy histogram liczebności dla tych danych. -->C=[150,198,250,499,187,345,267,189,177,176,246,389,470,267,678,654,376,278,189,768]; -->histplot(10,C); -->histplot(20,C);

40 Korzystanie z funkcji Jeśli blok tych samych operacji jest wykonywany wielokrotnie, to warto te operacje zapisać w postaci funkcji. Dzięki temu będzie można ją wykorzystać wielokrotnie. Najprostszy sposób wywołania funkcji to: wynik = funkcja (parametr) Funkcje mogą przyjmować wiele parametrów wejściowych i zwracać więcej niż jedną wartość. W takim przypadku ogólniejsza postać wywołania jest następująca: [wyn_1, ..., wyn_n] = funkcja (param_1, ..., param_m)

41 Definiowanie funkcji Do definiowania funkcji wykorzystuje się słowa kluczowe function i endfunction Każda funkcja składa się z nagłówka oraz ciała funkcji. Nagłówkiem funkcji jest jej nazwa wraz ze zdefiniowanymi parametrami wejściowymi oraz wyjściowymi. Na ciało funkcji składają się wszystkie polecenia zawarte między nagłówkiem funkcji a słowem kluczowym endfunction -->function r=kwadrat(x) -->r=x^2 -->endfunction -->x=kwadrat(7)

42 -->function r=suma(x)
-->r=x+x -->endfunction -->x=suma(8) -->function z=srednia(x,y) -->z=(x+y)*0.5; -->q=srednia(5,7)

43 -->a=5; -->b=15; -->cel=srednia(a,b) -->zet=srednia(2*a,4*a)

44 Funkcja obliczająca przekątną prostokąta
-->function [c]=przekatna(a,b) -->c=sqrt(a^2+b^2) -->endfunction

45


Pobierz ppt "SciLab."

Podobne prezentacje


Reklamy Google