SciLab.

Slides:



Advertisements
Podobne prezentacje
Funkcje matematyczne Microsoft Office 2003 Exel.
Advertisements

OBLICZENIA NUMERYCZNE
Opracowała: Iwona Bieniek
Tablice 1. Deklaracja tablicy
Funkcje w PHP ABK.
Teoria układów logicznych
Język C/C++ Funkcje.
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Macierze, wyznaczniki, odwracanie macierzy i wzory Cramera
Materiały pochodzą z Platformy Edukacyjnej Portalu
Język ANSI C Funkcje Wykład: Programowanie komputerów
Prowadzący: mgr inż. Elżbieta Majka
mgr inż. Ryszard Chybicki Zespół Szkół Ponadgimnazjalnych
PROGRAMOWANIE STRUKTURALNE
Metody numeryczne wykład no 2.
Metody Numeryczne Wykład no 3.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Macierze Maria Guzik.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Wirtotechnologia – Funkcje Grupa: 1A
Wprowadzenie do Mathcada
Zastosowania geodezyjne
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
SO – LAB3 Wojciech Pieprzyca
Podstawy programowania PP - LAB1 Wojciech Pieprzyca.
ETO w Inżynierii Chemicznej
Metody numeryczne Wykład no 2.
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
Matematyka.
Podstawy układów logicznych
Dane do obliczeń.
Programowanie strukturalne i obiektowe
Matematyka Architektura i Urbanistyka Semestr 1
Microsoft Office Excel
Kinematyka prosta.
dr hab. Ryszard Walkowiak prof. nadzw.
Łódź, 3 października 2013 r. Katedra Analizy Nieliniowej, WMiI UŁ Podstawy Programowania Programy różne w C++
II. Matematyczne podstawy MK
Elżbieta Fiedziukiewicz
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Algebra Przestrzenie liniowe.
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
Matematyka i system dwójkowy
Materiały pochodzą z Platformy Edukacyjnej Portalu
MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne
Excel Wykresy – różne typy, wykresy funkcji.
Rozwiązywanie układów równań liniowych różnymi metodami
Wyznaczniki, równania liniowe, przestrzenie liniowe Algebra 1
PWSW Mechatronika Wykład 7 Matlab cd.
Zasady arytmetyki dwójkowej
Trochę algebry liniowej.
Matematyka Ekonomia, sem I i II.
PRZYKŁAD OBLICZENIOWY PRĘT
Metody rozwiązywania układów równań liniowych
Ruch jednowymiarowy Ruch - zmiana położenia jednych ciał względem innych, które nazywamy układem odniesienia. Uwaga: to samo ciało może poruszać się względem.
Wykład 6 Dr Aneta Polewko-Klim
Pętle – instrukcje powtórzeń
SciLab.
Tworzenie wykresów część I
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Informatyka Transport Matlab c.d. Macierze cd. Wykresy graficzne
Do czego służy arkusz kalkulacyjny, jego budowa
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
Liczby naturalne i całkowite Spis treści Definicje Działania na liczbach Wielokrotności liczb naturalnych Cechy podzielności Przykłady potęg,potęgi o.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Elementy cyfrowe i układy logiczne
Procedury własne to procedury tworzone przez użytkownika, składające się z nagłówka, który zawiera słowa oto i nazwę procedury z parametrem, treści procedury.
ETO w Inżynierii Chemicznej
Haskell Składnia funkcji.
Zapis prezentacji:

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)

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)

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

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.

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)

Ćwiczenia w konstruowaniu macierzy 1. Utwórz macierz 5x5 wykorzystując jeden wektor oraz jego transpozycję A = ! 1. 2. 3. 4. 5. ! ! 2. 4. 6. 8. 10. ! ! 3. 6. 9. 12. 15. ! ! 4. 8. 12. 16. 20. ! ! 5. 10. 15. 20. 25. ! 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.

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

Ć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 𝑎, 𝑏, 𝑐, 𝑑 𝑐𝑜𝑛𝑗 𝑐

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

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

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

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

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

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

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

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

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

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

-->x=[-%pi:0.01:%pi]'; -->plot2d(x,[sin(x) cos(x) sin(x)^2],style=[3,5,7],leg="sinus@cosinus@kwadrat 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)

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(...).

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

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

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, 768. 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);

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)

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)

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

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

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