plik


ÿþMetody numeryczne EiT 2009/2010 Sprawy organizacyjne Ï% dr Wojciech Tylman, Katedra Mikroelektroniki i Technik Informatycznych PA Ï% B 18, Ip., p. 56 Ï% www.dmcs.p.lodz.pl Ï% tyl@dmcs.p.lodz.pl Ï% godziny przyj: WWW Tematyka Ï% Metody rozwizywania równaD przeznaczone do implementacji komputerowej Ï% Zagadnienia zwizane z obliczeniami numerycznymi przeprowadzanymi na wspóBczesnych komputerach Literatura Ï% Leon O. Chua , Pen-Min Lin  Komputerowa analiza ukBadów elektronicznych : algorytmy i metody obliczeniowe , Wydawnictwa Naukowo- Techniczne, Warszawa 1981 Ï% Zenon Fortuna, Bohdan Macukow, Janusz Wsowski  Metody numeryczne , Wydawnictwa Naukowo-Techniczne, Warszawa 2006 Organizacja zaj Ï% WykBad: 15h (2h co tydzieD, póB semestru) Ï% wiczenia: 15h (1h co tydzieD) Ï% Laboratorium: 15h (2h co drugi tydzieD) Ï% Zaliczenie przedmiotu: zaliczenie wykBadu, wiczeD i laboratorium, oceny brane z t sam wag Plan Ï% Metody numeryczne rozwizywania liniowych ukBadów równaD (2h) Ï% Metody numeryczne rozwizywania równaD nieliniowych i nieliniowych ukBadów równaD (2h) Ï% Komputerowe opracowywanie wyników pomiarów (interpolacja, aproksymacja) (1h) Ï% Algorytmy przetwarzania sygnaBów (1h) Ï% Ograniczenia i korzy[ci symulacji komputerowej (1/2h) Ï% Symulacja i eksperyment komputerowy (1/2h) Ï% Oprogramowanie do obliczeD i symulacji in|ynierskich (4h) Ï% Zasady tworzenia skryptów do narzdzi programowych (2h) Ï% Dokumentacja in|ynierska (1h) Ï% Zaliczenie (1h) Metody numeryczne rozwizywania liniowych ukBadów równaD Ï% Metoda eliminacji Gaussa Ï% Metoda rozkBadu LU  algorytm Crouta  algorytm Doolittla Metoda eliminacji Gaussa Ï% Efektywna metoda rozwizywania ukBadów równaD liniowych Ï% Wymaga w przybli|eniu n3/3 mno|eD. Np. dla n=10 daje to 333 mno|eD Ï% Dla porównania, metod Cramera wymaga w przybli|eniu 2(n + 1)! mno|eD. Dla n=10 daje to 79 833 600 mno|eD Metoda eliminacji Gaussa Ax = ¼ a11x1 + a12x2 + ï" + a1nxn = µ 1 a21x1 + a22x2 + ï" + a2nxn = µ 2 î" an1x1 + an2x2 + ï" + annxn = µ n 1. Eliminacja w przód 2. Podstawienie wstecz Etap I: eliminacja w przód - a21 - a31 a11x1 + a12x2 + a13x3 = µ × + × + 1 a11 a11 a21x1 + a22x2 + a23x3 = µ 2 a31x1 + a32x2 + a33x3 = µ 3 a11x1 + a12x2 + a13x3 = µ 1 (2 - a32) (2 (2 (2) a22)x2 + a23)x3 = µ × + 2 (2 a22) (2 (2 (2) a32)x2 + a33)x3 = µ 3 a11x1 + a12x2 + a13x3 = µ 1 (2 (2 (2) a22)x2 + a23)x3 = µ 2 (3 (3) a33)x3 = µ 3 a11 a12 a13 x1 µ îø ùø îø ùø îø ùø 1 ïø ïø úø (2 (2 (2) 0 a22) a23) úø ïø x2 úø = µ 2 ïø úø ïø úø ïø úø (3 (3) ïø úø ïø úø ïø úø 0 0 a33) ûø ðø x3 ûø ðø µ 3 ðø ûø Etap II: podstawienie wstecz (3) µ 3 x3 = (3 a33) '" îø1 ¼ùø Ar = [A ¼] Ò! ïø úø ðø ûø Metoda eliminacji Gaussa - przykBad (1) 2 6 1 13 Å"x= 1 2 2 3 [ ] [ ] 4 6 8 8 Metoda eliminacji Gaussa - przykBad (2) 2 6 1 13 1 2 2 3 [ ] 4 6 8 8 Metoda eliminacji Gaussa - przykBad (3) 2 6 1 13 0 -1 3/2 -7 /2 [ ] 0 -6 6 -18 Metoda eliminacji Gaussa - przykBad (4) 2 6 1 13 0 -1 3/2 -7/ 2 [ ] 0 0 -3 3 Metoda eliminacji Gaussa - przykBad (5) 2 6 1 13 0 -1 3/2 -7/ 2 [ ] 0 0 1 -1 Metoda eliminacji Gaussa - przykBad (6) 2 6 1 13 0 -1 0 -2 [ ] 0 0 1 -1 Metoda eliminacji Gaussa - przykBad (7) 2 6 1 13 0 1 0 2 [ ] 0 0 1 -1 Metoda eliminacji Gaussa - przykBad (8) 2 0 0 2 0 1 0 2 [ ] 0 0 1 -1 Metoda eliminacji Gaussa - przykBad (9) 1 0 0 1 0 1 0 2 [ ] 0 0 1 -1 Metoda eliminacji Gaussa - przykBad (10) 1 x= 2 [ ] -1 Metoda eliminacji Gaussa Ï% Podczas wyznaczania rozwizania nie jest wyznaczana macierz odwrotna Ï% Je[li zachodzi potrzeba wyznaczenia macierzy odwrotnej, mo|na to zrobi za pomoc eliminacji Gaussa poprzez dopisanie do macierzy A macierzy jednostkowej i wykonanie algorytmu jak poprzednio. Ï% Wymaga to n3 mno|eD Metoda eliminacji Gaussa Ï% Je[li podczas wykonywania algorytmu oka|e si, |e element przez którego odwrotno[ nale|y mno|y (czyli dzieli przez) ma warto[ 0 (lub nawet warto[ bezwzgldn bardzo maB w porównaniu z pozostaBymi) nale|y przeprowadzi zamian wierszy tak, aby uzyska element o du|ej warto[ci. Aby zapewni du| dokBadno[, nale|y zawsze zamienia wiersze (mo|na równie| kolumny) przed ka|dym mno|eniem. Metoda eliminacji Gaussa - przykBad (1) 2 6 1 11 Å"x= 1 3 2 -2 [ ] [ ] 4 6 8 -14 2 6 1 11 1 3 2 -2 [ ] 4 6 8 -14 Metoda eliminacji Gaussa - przykBad (2) 2 6 1 11 0 0 1.5 -7.5 [ ] 0 -6 6 -36 2 6 1 11 0 -6 6 -36 [ ] 0 0 1.5 -7.5 RozkBad LU A = LU 1 uij ñ" 0 îø ùø îø ùø ïø úø ïø úø 1 ñ" ïø úø ïø úø U = L = ïø úø ïø úø ñ" ñ" ïø ïø úø 0 1úø lij ïø úø ðø ûø ðø ûø Macierz trójktna górna Macierz trójktna dolna Zastosowanie rozkBadu LU (a) Ax = LUx = ¼ Ly = ¼ Ó! (b) Ux = y Ux = y Algorytm Crouta a11 a12 a13 l11 0 0 1 u12 u13 îø ùø îø ùø îø ùø ïø ïø úø ïø a21 a22 a23úø = l21 l22 0 0 1 u23úø ïø úø ïø úø ïø úø ïø úø ïø úø ïø úø a31 a32 a33ûø ðø l31 l32 l33ûø ðø 0 0 1 ðø ûø Q = L + U - 1 l11 u12 u13 îø ùø ïø Q = l21 l22 u23úø ïø úø ïø úø l31 l32 l33 ûø ðø Algorytm Crouta 2 îø ùø ïø úø 1 4 ïø úø Q = ïø úø 3 ïø 5 ï"úø ðø ûø i- 1 ëø öø uij = aij - likukj lii dla i < j ìø ÷ø " íø k = 1 øø j- 1 lij = aij - likukj dla i e" j " k = 1 RozkBad LU - przykBad 2 6 1 A= 1 2 2 [ ] 4 6 8 2 6 1 Q= 1 2 2 [ ] 4 6 8 RozkBad LU - przykBad 2 3 1/2 Q= 1 2 2 [ ] 4 6 8 RozkBad LU - przykBad 2 3 1 /2 Q= 1 -1 2 [ ] 4 -6 8 RozkBad LU - przykBad 2 3 1 /2 Q= 1 -1 -3/2 [ ] 4 -6 8 RozkBad LU - przykBad 2 3 1 /2 Q= 1 -1 -3/2 [ ] 4 -6 -3 RozkBad LU - przykBad 2 0 0 L= 1 -1 0 [ ] 4 -6 -3 RozkBad LU - przykBad 1 3 1/2 U = 0 1 -3/2 [ ] 0 0 1 RozkBad LU - przykBad 2 0 0 13 Å"y= 1 -1 0 3 [ ] [ ] 4 -6 -3 8 RozkBad LU - przykBad 2 0 0 13 Å"y= 1 -1 0 3 [ ] [ ] 4 -6 -3 8 2 0 0 13 1 -1 0 3 [ ] 4 -6 -3 8 RozkBad LU - przykBad 1 0 0 13/2 1 -1 0 3 [ ] 4 -6 -3 8 1 0 0 13 /2 0 -1 0 -7 /2 [ ] 0 -6 -3 -18 RozkBad LU - przykBad 1 0 0 13/2 0 1 0 7/2 [ ] 0 -6 -3 -18 1 0 0 13/2 0 1 0 7/2 [ ] 0 0 -3 3 RozkBad LU - przykBad 1 0 0 13 /2 0 1 0 7/2 [ ] 0 0 1 -1 1 3 1/2 13/2 Å"x= 0 1 -3/2 7/2 [ ] [ ] 0 0 1 -1 RozkBad LU - przykBad 1 3 1/2 13 /2 0 1 -3/2 7 /2 [ ] 0 0 1 -1 1 3 0 7 0 1 0 2 [ ] 0 0 1 -1 RozkBad LU - przykBad 1 0 0 1 0 1 0 2 [ ] 0 0 1 -1 1 x= 2 [ ] -1 Algorytm Doolittle a rozkBadu LU Dana jest macierz A. Wyznaczamy Q: 1. Przepisz do Q pierwsz kolumn z A 2. W 1-szym wierszu dziel el. niediagonalne przez diag. 3. Od elementu o wsk. (i,j) {dla i>1, j>1} odejmij iloczyn elementów o wsk. (i,1) i (1,j) 4. Je|eli liczba_kolumn(wierszy)>=2 oznacz t podmacierz jako A, idz do 1 5. STOP Algorytm Doolittle a rozkBadu LU - przykBad 2 2 - 4 2 1 - 2 2 1 - 2 2 1 - 2 îø ùø îø ùø îø ùø îø ùø kr.1i2 kr.3 ïø ïø ïø ïø A = 4 6 - 12úø Ò! 4 6 - 12úø Ò! 4 6 - 4Å"1 - 12 + 4Å" 2úø = 4 2 - 4úø ïø úø ïø úø ïø úø ïø úø ïø úø ïø úø ïø úø ïø úø 4 3 2 4 3 2 4 3 - 4Å"1 2 + 4Å" 2 4 - 1 10 ðø ûø ðø ûø ðø ûø ðø ûø 2 1 - 2 2 1 - 2 2 1 - 2 îø ùø îø ùø îø ùø kr.1i2 kr.3 ïø ïø úø ïø Ò! 4 2 - 2úø Ò! 4 2 - 2 = 4 2 - 2úø = Q ïø úø ïø úø ïø úø ïø úø ïø úø ïø úø 4 - 1 10 4 - 1 10 - 2Å"1ûø ðø 4 - 1 8 ðø ûø ðø ûø Metoda iteracji prostej (metoda punktu staBego) 1 Dla równania x = 4 - 2x3 = F(x) szukamy x = x* speBniajcego to równanie (x*=1,641) Ogólna posta: F( x) = x Przyjmujc np. x0=10 mamy F(x0)= -0,3089 `" x0, ale jest to bli|ej szukanego rozwizania. Przyjmujc x1 =F(x0) mamy F(x1)=5,3519=x2. Dalej F(x2)=0,5016=x3 itd.: x4=2,4109 x8=1,6785 x12=1,6430 x16=1,6411 x5=1,3182 x9=1,6231 x13=1,6400 x17=1,6409 x6=1,8071 x10=1,6496 x14=1,6414 x18=1,6410 x7=1,5639 x11=1,6369 x15=1,6408 x19=1,6410 Metoda iteracji prostej (metoda punktu staBego) Algorytm: Wybierz warto[ pocztkow x0 x1 = F( x0) x2 = F(x1) x3 = F( x2) î" xn+ 1 = F( xn) Je|eli STOP xn+ 1 - xn d" µ Metoda iteracji prostej - interpretacja geometryczna y y=x F(x) x0 x1=y1 x x2 x* y1 Metoda iteracji prostej - brak zbie|no[ci y y=x x0 x* x F(x) Metoda iteracji prostej - punkt nieosigalny C y F(x) B x* A x x02 x01 x03 y=x Metoda iteracji prostej dla ukBadu równaD x = F(x) xk + 1 = F(xk ), k = 0,1, 2, ï" lim x = x* k’! " Metoda Newtona-Raphsona Chcemy rozwiza równanie: (a) f(x) = 0 Potrzebujemy takiego F(x), dla którego rozwizanie x* równania F(x) = x jest jednocze[nie rozwizaniem (a) Metoda Newtona-Raphsona Mo|na np. przyj: (b) F(x) = x - K(x) f(x) gdzie K(x) jest dowoln macierz n x n Wtedy równanie ma posta: x - K(x)f(x) = x Ka|de x*, które jest rozwizaniem równania (a), jest punktem staBym F(x), poniewa|: * L= P= L=P F(x*) = x* - K(x*) 0 = x* X Metoda Newtona-Raphsona Jednocze[nie, je|eli x = x* jest punktem staBym dla F(x) i je|eli K(x) jest macierz nieosobliw dla dowolnego punktu staBego F(x), to x* jest rozwizaniem równania f(x)=0 x* = x* - K(x*) f(x*) K(x*) f(x*) = 0 " K- 1(x*) Ò! f(x*) = 0 Metoda Newtona-Raphsona Proces zbie|no[ci zale|e bdzie od przyjtej macierzy K. Mo|na np. przyj: K(x) = J- 1(x) " f1(x) " f1(x) " f1(x) îø ùø ï" ïø " x1 " x2 " xn úø ïø úø " f2(x) " f2(x) " f2(x) ïø úø ï" J(x) = ïø úø " x1 " x2 " xn ïø úø ï" ï" ï" ï" ïø " fn(x) " fn(x) " fn(x)úø ï" ïø úø " x1 " x2 " xn ûø ðø Metoda Newtona-Raphsona Równanie (b) w postaci iteracyjnej: ( ) ( ) ( ) F x = x - K x f x = x j j j j j+ 1 Jest to równanie metody Newtona-Raphsona Metoda Newtona-Raphsona f(x) 1 x(1) = x(0) - Å" f (x(0)) f '(x(0)) f(x(0)) x* x ± x(0) [f (x(0))]-1 f(x(0)) x(1) x(0) Metoda Newtona-Raphsona f(x) x4(0) x x1(0) x2(0) x3(0) Metoda Newtona-Raphsona - przykBad 2 x12ƒàx2 F žà xŸà= F žà xŸà=0 [ ] x1ƒà3 x22 -1 1 a b d -b = [ ] [ ] ad -bc c d -c a Metoda Newtona-Raphsona - przykBad 2 x12ƒàx2 F žà xŸà= F žà xŸà=0 [ ] x1ƒà3 x22 4 x1 1 1 6 x2 -1 J žà xŸà= J žà xŸà-1= [ ] [ ] 24 x1 x2-1 1 6 x2 -1 4 x1 1 6 x2 -1 x1 - 2 x12ƒàx2 x = nast [ ] 24 x1 x2-1 [ ] -1 4 x1 x1ƒà3 x22 x2 [ ] Metoda Newtona-Raphsona - przykBad 1 x2 žà12 x12 -3 x2Ÿà x = nast 24 x1 x2-1 [ ] x1 žà12 x22 -2 x1Ÿà -0.58762 -0.43679 -10 x5 = x0 = x10 = [ ] [ ] [ ] -10 -0.52522 -0.38157 -5.12714 -0.46883 x1 = x6 = [ ] [ ] -5.08545 -0.41138 -2.69185 -0.43892 -5.5511e-17 x = x7 = 2 F žà x10Ÿà= [ ] [ ] -2.63095 [ ] -0.38352 0 -1.47679 -0.43680 x = x8 = 3 [ ] [ ] -1.40903 -0.38158 -0.87518 -0.43679 x9 = x4 = [ ] [ ] -0.38157 -0.80803 Algorytm Newtona-Raphsona dla ukBadu n równaD fi( x1, x2 ï"xn) = 0 i = 1, 2, ï" n T ( ( punkt w j-tej iteracji [ x( j) = x1( j) x2 j) xn j) ] Algorytm Newtona-Raphsona dla ukBadu n równaD Rozwijamy funkcj wielu zmiennych w szereg Taylora wokóB punktu x(j) : " fi(x) ( ( ( fi(x1, x2 ï"xn) = fi(x1 j), x2 j),ï"xn j))+ (x1 - x1( j))+ j ) " x1 x= x( " fi(x) " fi(x) ( ( + (x2 - x2 j))+ ï" + (xn - xnj))+ j ) j ) " x2 x= x( " xn x= x( 2 2 1 " fi(x) + (x1 - x1( j)) ï" dla i = 1, 2, ï" n 2 x= x( j ) 2! " x1 Algorytm Newtona-Raphsona dla ukBadu n równaD Podstawiamy x = x(j+1) : " fi(x) ( ( ( ( ( fi(x1( j+ 1) , x2 j+ 1) ï"xn j+ 1)) = fi(x1 j), x2 j),ï"xn j))+ (x1( j+ 1) - x1( j))+ j ) " x1 x= x( " fi(x) " fi(x) ( ( ( ( + (x2 j+ 1) - x2 j))+ ï" + (xn j+ 1) - xn j))+ j ) j ) " x2 x= x( " xn x= x( 2 2 1 " fi(x) + (x1( j+ 1) - x1( j)) ï" dla i = 1, 2, ï" n 2 x= x( j ) 2! " x1 Algorytm Newtona-Raphsona dla ukBadu n równaD Je|eli jeste[my  blisko rozwizania, pomijamy wyrazy wy|szych rzdów: " fi(x) fi(x( j+ 1)) H" fi(x( j))+ (x1( j+ 1) - x1( j))+ j ) " x1 x= x( " fi(x) " fi(x) ( ( ( ( + (x2 j+ 1) - x2 j))+ ï" + (xn j+ 1) - xn j)) j ) j ) " x2 x= x( " xn x= x( dla i = 1, 2, ï" n Algorytm Newtona-Raphsona dla ukBadu n równaD Je|eli x(j+1) jest ju| rozwizaniem naszego równania, czyli f(x(j+1)) = 0, to: J(x( j)) (x( j+ 1) - x( j)) = - f(x( j)) Symulacja i eksperyment komputerowy Ï% Symulacja komputerowa - metoda odtwarzania zjawisk zachodzcych w [wiecie rzeczywistym (lub ich niektórych wBa[ciwo[ci i parametrów) za pomoc ich zmatematyzowanych modeli, definiowanych i obsBugiwanych przy u|yciu programów komputerowych; wykorzystywana do wnioskowania o przebiegu tych zjawisk i procesów, których bezpo[rednia obserwacja jest niemo|liwa lub zbyt kosztowna. - Encyklopedia PWN Zalety symulacji komputerowej Ï% Koszt - nie ma potrzeby budowy rzeczywistego ukBadu, nic nie mo|e ulec zniszczeniu Ï% Czas - symulacja jest metod szybsz ni| konstrukcja ukBadu (cho sam proces symulacji mo|e by dBugotrwaBy) Ï% Modyfikowalno[ - zasymulowany ukBad Batwo jest zmieni Ï% Aatwo[ i ró|norodno[ analiz - niektórych analiz wrcz nie da si sensownie zrealizowa w ukBadzie rzeczywistym Zalety symulacji komputerowej Ï% Wiedza - mo|liwo[ wszechstronnego zbadania ukBadu w ró|nych warunkach pracy, zrozumienia jego dziaBania, mo|liwo[ [ledzenia zmian normalnie zbyt szybkich do uchwycenia, Batwiejsze znajdowanie bBdów Ï% Alternatywa dla rozwizaD analitycznych - w du|ych systemach mog by one nieosigalne Ï% Postprocessing - wygodna prezentacja wyników, np. w postaci graficznej Wady symulacji komputerowej Ï% Poprawno[ wyników [ci[le zale|y od poprawno[ci modelu  modele o maBej zBo|ono[ci (np. aproksymujce dziaBanie przyrzdu parametryzowanymi równaniami) mog: Ï% nie uwzgldnia pewnych zjawisk, a w rezultacie dawa du|e bBdy w nietypowych sytuacjach Ï% by nieprawdziwe poza zaBo|onym obszarem pracy Ï% by trudne w modyfikacji przy modyfikacji przyrzdu (postpie technologicznym itp.) Ï% bezpodstawnie zakBada |e wystarczajca jest symulacja jednodomenowa Ï% mie problemy ze stabilno[ci Wady symulacji komputerowej  modele o du|ej zBo|ono[ci (np. wielodomenowe modele wykorzystujce metod elementów skoDczonych) mog: Ï% by zbyt skomplikowane aby umo|liwi symulacj ukBadów w rozsdnym czasie Ï% mie ogromne wymagania pamiciowe Ï% by bardzo praco i czasochBonne w przygotowaniu Ï% mie problemy ze stabilno[ci Ï% PrawidBowe zaprojektowanie symulacji mo|e by trudne Ï% Rozrzut parametrów mo|e podwa|y wyniki symulacji Wady symulacji komputerowej Ï% Interpretacja wyników ostatecznie jest pozostawiona czynnikowi ludzkiemu Ï% Ograniczenia systemów komputerowych (np. ograniczona precyzja liczb) mog przekBada si na ograniczenia symulacji Eksperyment komputerowy Ï% Eksperyment komputerowy - eksperyment przeprowadzany w caBo[ci przy u|yciu symulacji komputerowej Ï% Mo|e sBu|y np.:  testowaniu hipotez  przygotowywaniu bdz analizie rzeczywistych eksperymentów  weryfikowaniu rozwizaD uproszczonych  projektowaniu bdz przeprojektowywaniu urzdzeD i ukBadów PodziaB modeli Ï% Modele mo|na dzieli np. na:  liniowe i nieliniowe  deterministyczne i probabilistyczne  statyczne i dynamiczne  cigBe i dyskretne  o parametrach skupionych bdz rozBo|onych  jedno i wielodomenowe Oprogramowanie Ï% Modele tworzy si i symuluje z wykorzystaniem oprogramowania Ï% Oprogramowanie mo|e by:  jzykiem programowania (np. Simula)  ogólnego przeznaczenia z elementami specjalizowanymi (np. Matlab)  opracowane pod ktem konkretnej dziedziny, np. symulacji ukBadów elektronicznych: Ï% Spice Ï% Eldo Ï% Saber Komputerowe opracowywanie wyników pomiarów Ï% Oprócz sytuacji gdy symulacje s przeprowadzane caBkowicie przy u|yciu komputera, czsto zachodzi potrzeba wprowadzenia rzeczywistych danych pomiarowych Ï% Aby maksymalnie wykorzysta zawarte w nich informacje, praktycznie zawsze konieczna jest jaka[ forma wstpnego przetworzenia Komputerowe opracowywanie wyników pomiarów Ï% Mo|e ono zawiera np.:  usuwanie warto[ci bBdnych  uzupeBnianie warto[ci brakujcych  filtrowanie (np. górno/dolno/pasmowowprzepustowe)  wygBadzanie  przewidywanie warto[ci przyszBych, odtwarzanie historycznych  decymacj  dyskretyzacj Aproksymacja i interpolacja Ï% S metodami przy u|yciu których znajduje si krzyw f(x), opisan równaniem (równaniami) analitycznym, na podstawie zbioru punktów Ï% Punkty mog pochodzi np. z pomiaru rzeczywistego procesu Ï% Celem mo|e by np. Batwo[ dalszej analizy/przetwarzania, weryfikacja hipotez dotyczcych charakteru zjawiska, wygBadzanie, przewidywanie, uzupeBnianie warto[ci brakujcych itd. Aproksymacja i interpolacja Ï% Aby przeprowadzi aproksymacj bdz interpolacj, nale|y przyj jak[ posta funkcji, mo|liw do parametryzacji (np. wielomian, wielomian uogólniony) Ï% Ró|nica midzy aproksymacj a interpolacj polega na wymaganiu dotyczcym przechodzenia krzywej przez dane punkty:  aproksymacja nie wymaga przej[cia przez dane punkty  interpolacja wymaga przej[cia przez dane punkty Aproksymacja Ï% Zadanie: majc n punktów (par warto[ci) (xi, yi) dla i = 1,..., n   znalez funkcj postaci f(x, ²), gdzie ² jest wektorem m parametrów, m < n n  S = ri2 tak aby zminimalizowa bBd , gdzie " i-1 ‘à jest bBdem aproksymacji dla ri= yi- f žà xi , ¸àŸà pojedynczego punktu Aproksymacja Ï% Zadanie to mo|na rozumie jako prób przybli|onego rozwizania równania o postaci X ¸à= y przy czym liczba wierszy X jest wiksza ni| liczba kolumn Ï% ka|dy wiersz X odpowiada jednemu narzuconemu punktowi Ï% kolejne warto[ci w wierszu to warto[ci kolejnych skBadowych wielomianu Aproksymacja Ï% Jest to metoda najmniejszych kwadratów (LSQ) Ï% Zadania aproksymacyjne mo|na podzieli na dwie kategorie:  liniowe  nieliniowe Ï% Zadanie liniowe ma rozwizanie analityczne, zadanie nieliniowe rozwizuje si numerycznie, metodami iteracyjnymi Liniowa metoda najmniejszych kwadratów (LLSQ) Ï% Liniowo[ nie oznacza, |e metoda nadaje si jedynie do liniowych funkcji, a tylko |e funkcja jest liniowa wzgldem parametrów ² m Ï% f žà x , ¸àŸà= X ¸à Funkcja ma wic posta: " , j j j =1 gdzie Xj jest funkcj x (w tym funkcj nieliniow, staB itd.) Liniowa metoda najmniejszych kwadratów (LLSQ) Ï% Aby znalez minimum funkcji bBdu, nale|y znalez punkt dla którego pochodne czstkowe po wszystkich parametrach maj warto[ 0 Ï% Pochodne czstkowe wyra|aj si wzorem n ºà ri ºà S =2 ri " ºà ¸à ºà ¸à i=1 j j m Ï% ri= yi- X ¸à " Poniewa| pochodna we ij j j=1 ºà ri =-X wzorze powy|ej ma posta ij ºà ¸à j Liniowa metoda najmniejszych kwadratów (LLSQ) Ï% Podstawiajc do wzoru na pochodn czstkow funkcji bBdu i przyrównujc do 0 mamy n n m ºàri ºà S =2 ri =-2 yi- X ¸àk X =0 " " " ik ij žà Ÿà ºà ¸à ºà ¸à j i=1 j i =1 k=1 Ï% Po uporzdkowaniu otrzymujemy n m n X X ¸àk= X yi "" " ij ik ij i=1 k=1 i=1 Liniowa metoda najmniejszych kwadratów (LLSQ) Ï% W postaci macierzowej: T T žà X X Ÿà ¸à= X y Ï% Rozwizanie wzgldem ² daje poszukiwane wspóBczynniki Liniowa metoda najmniejszych kwadratów (LLSQ) - przykBad Ï% Znalez wspóBczynniki funkcji aproksymujcej nastpujce punkty: 1,2; 2, 4; 3, 8; 4, 18; 5, 27 Ï% Przyj funkcj postaci f(x)=²3x2+²2x+²1 Liniowa metoda najmniejszych kwadratów (LLSQ) - przykBad Ï% Ï% UkBad równaD: Odpowiadajca mu macierz X: ²312+²21+²1=2 1 1 1 ²322+²22+²1=4 4 2 1 ²332+²23+²1=8 9 3 1 16 4 1 ²342+²24+²1=18 25 5 1 ²352+²25+²1=27 Liniowa metoda najmniejszych kwadratów (LLSQ) - przykBad Ï% Lewa strona: XTX= 979 225 55 225 55 15 55 15 5 Ï% Prawa strona: XTy= 1053 241 59 Ï% Rozwizujc otrzymujemy ²= 1.4286 -2.1714 2.6 Liniowa metoda najmniejszych kwadratów (LLSQ) - przykBad Ï% Poszukiwane równanie ma wic posta f(x) = 1.4286x2 - 2.1714x + 2.6 Liniowa metoda najmniejszych kwadratów (LLSQ) - przykBad Ï% W Matlabie aproksymacj wielomianem dowolnego stopnia mo|na przeprowadzi przy pomocy funkcji polyfit Ï% Argumentami s wspóBrzdne x punktów, wspóBrzdne y punktów, stopieD wielomianu octave-3.0.0.exe:7> x=[1 2 3 4 5]; octave-3.0.0.exe:8> y=[2 4 8 18 27]; octave-3.0.0.exe:9> p=polyfit(x, y, 2) p = 1.4286 -2.1714 2.6000 Liniowa metoda najmniejszych kwadratów (LLSQ) Ï% Przy stosowaniu aproksymacji nale|y dobra stopieD zBo|ono[ci funkcji aproksymujcej (np. stopieD wielomianu):  skomplikowana funkcja mo|e zapewni mniejszy bBd aproksymacji (bdzie przebiega bli|ej punktów), ale  mo|e mie du|o zafalowaD i ma mniejsz zdolno[  uogólniania (np. ignorowania bBdnych pomiarów) Interpolacja Ï% Interpolacja mo|e zosta u|yta do znalezienia warto[ci (funkcji, hipotetycznego pomiaru) dla argumentu dla którego nie posiadamy tej warto[ci Ï% Interpolacja dotyczy znajdowania warto[ci dla argumentu znajdujcego si pomidzy argumentami dla których warto[ci s znane Ï% Je[li szukamy warto[ci dla argumentu poza tym przedziaBem, jest to ekstrapolacja Ï% Czsto interesujcy nas obszar dzieli si na mniejsze i interpoluje osobno Interpolacja liniowa Ï% Najprostsza (nie liczc interpolacji odcinkami staBej) metoda Ï% Polega na przeprowadzeniu prostej przez dwa najbli|sze znane punkty Ï% Warto[ci dla dowolnego argumentu odczytuje si jako warto[ funkcji liniowej octave-3.0.0.exe:12> x=[1 2 4 6 8 9]; octave-3.0.0.exe:13> y=[2 4 5 3 -1 -6]; octave-3.0.0.exe:14> plot(x, y) octave-3.0.0.exe:15> plot(x, y, '-o') Interpolacja liniowa Interpolacja wielomianowa Ï% Koncepcja bardzo podobna do aproksymacji, tyle, |e liczba punktów jest równa stopniowi wielomianu pomniejszonemu o 1:  liniowa: 2 punkty - 2 równania, wielomian 1 stopnia,2 niewiadome  kwadratowa: 3 punkty - 3 równania, wielomian 2 stopnia, 3 niewiadome  sze[cienna: 4 punkty - 4 równania, wielomian 3 stopnia, 4 niewiadome  itd. Interpolacja wielomianowa Ï% Liczba równaD odpowiada liczbie niewiadomych, je[li w[ród przyjtych punktów nie ma punktów o identycznych odcitych, ukBad równaD jest oznaczony i mo|na otrzyma wspóBczynniki wielomianu interpolujcego Interpolacja wielomianowa - przykBad Ï% Znalez wielomian interpolujcy dla zbioru punktów: 1, 2; 2, -3; 3, -5; 4, 9 Ï% 4 punkty, czyli wielomian 3 stopnia: f(x)=²4x3+²3x2+²2x+²1 Ï% Równania: ²413+²312+²21+²1=2 ²423+²322+²22+²1=-3 ²433+²332+²23+²1=-5 ²443+²342+²24+²1=9 Interpolacja wielomianowa - przykBad Ï% Macierzowo: X²=y Ï% X=1 1 1 1 8 4 2 1 27 9 3 1 64 16 4 1 Ï% Rozwizujc wzgldem ² otrzymujemy: ²1=-3, ²2=14.3333, ²3=-11.5, ²4=2.1667 Interpolacja wielomianowa - przykBad Interpolacja wielomianowa - problemy (efekt Rungego) Ï% Zadanie:  przeprowadzi interpolacj wielomianow funkcji 1/(1+25x2) w przedziale <-1; 1>  jako punkty interpolacyjne przyj kolejno 6, 10 i 20 równomiernie rozBo|onych punktów Ï% W efekcie przeprowadzona zostanie interpolacja wielomianami 5, 9 i 19 stopnia Interpolacja wielomianowa - problemy (efekt Rungego) Interpolacja funkcjami sklejanymi (spline) Ï% S :[a , b ]Œà ! Funkcja sklejana: skBada si z wielomianów Pi: , tiƒà1 [t ŸàŒà! i gdzie a=t0„àt1„àï"tk -2„àtk -1=b Ï% Punkty t nazywane s wzBami Ï% Inaczej: S žàt Ÿà=P0žàtŸà , t0†àt„àt1 S žàt Ÿà=P1žàtŸà , t1†àt„àt2 î" S žàt Ÿà=Pk- 2žàtŸà , tk-2†àt„àtk -1 Interpolacja funkcjami sklejanymi (spline) Ï% Je[li wszystkie wielomiany s stopnia co najwy|ej n, funkcja sklejana jest stopnia co najwy|ej n Ï% W wzBach warto[ci funkcji  wcze[niejszej i  pózniejszej s sobie równe Ï% Zwykle wymaga si te| równych warto[ci pochodnych Interpolacja sze[ciennymi funkcjami sklejanymi Ï% Funkcje s funkcjami sze[ciennymi Ï% W wzBach wymagana jest równo[ funkcji oraz pierwszej i drugiej pochodnej Ï% Je[li mamy n+1 punktów (n wielomianów) to:  potrzebujemy 4n parametrów (po 4 dla ka|dego sze[ciennego wielomianu)  mamy n+1 warunków z wBasno[ci interpolacyjnej (przechodzenie funkcji przez dane punkty)  mamy 3(n-1) warunków z równo[ci funkcji i pochodnych dla punktów  wewntrznych (bez punktów skrajnych) Interpolacja sze[ciennymi funkcjami sklejanymi Ï% W sumie mamy n+1 + 3(n-1) = 4n-2 warunków i 4n parametrów - brakuje 2 warunków Ï% Mo|na przyj np. S''(x0)=S''(xn)=0 - jest to tzw. naturalna sze[cienna funkcja sklejana Interpolacja sze[ciennymi funkcjami sklejanymi - Matlab Ï% W Matlabie interpolacj mo|na uzyska funkcj interp1(X, Y, XI, METHOD) Ï% Argumentami s: X: dane argumenty Y: warto[ci funkcji dla danych argumentów XI: argumenty w których ma by wyznaczona funkcja METHOD: sposób interpolacji, np. linear, spline Interpolacja sze[ciennymi funkcjami sklejanymi - Matlab xf=[0:0.05:10]; %gdzie okreslic funkcje xp=[0:10]; %gdzie znamy warto[ci funkcji yp = sin(2*pi*xp/5); %znane warto[ci lin=interp1(xp,yp,xf); %interpolacja liniowa spl=interp1(xp,yp,xf,'spline'); %sklejana yf = sin(2*pi*xf/5); %dla porownania plot(xf,yf,"r",xf,lin,"g",xf,spl,"b"); Interpolacja sze[ciennymi funkcjami sklejanymi - Matlab Model Ï% Model jest uproszczeniem rzeczywisto[ci Ï% Uproszczenie pozwala pomin nieistotne (w danym momencie, aspekcie) szczegóBy Ï% Jednocze[nie pomaga uwypukli kwestie istotne W stron UML Ï% Prace nad UML rozpoczBy si w 1994, kiedy Rumbaugh i Booch, obaj zatrudniani przez Rational Software Corporation, rozpoczli prace nad unifikacj OMT i OOAD. Rezultat, Unified Method (UM) 0.8, zostaB zaprezentowany w '95. W tym samym roku, Jacobson doBczyB do Rational Software Corporation i wzbogaciB UM elementami wBasnego OOSE, co zaowocowaBo UM 0.9 i UM 0.91 (oba w '96). Od tego momentu jzyk ten jest znany jako UML. Rozwój UML Ï% WysiBki Rational Software Corporation zostaBy szybko wsparte przez istotne firmy, midzy innymi: IBM, DEC, HP, Oracle, Unisys, Microsoft. DoprowadziBo to do dalszego rozwoju - wersji 1.0 w 1997. Wersja ta zostaBa pózniej przekazana do Object Management Group (OMG). Wersja 1.1 powstaBa w tym samym roku. ByBa to wersja oficjalna do 2001 (wersja 1.4). Wersja 1.5 staBa si oficjalna w 2003. Diagramy UML Ï% Model w UML jest graficzn reprezentacj systemu Ï% Reprezentacja skBada si z logicznie poBczonych diagramów Ï% Wersja 2.0 zawiera 13 typów diagramów Ï% Istotnym pojciami s pojecia klasyfikatora (classifier)  abstrakcyjnej kategorii która uogólnia kolekcj wystpieD majcych te same cechy, oraz wystpienia (instance)  egzemplifikacji klasyfikatora Diagramy przypadków u|ycia Ï% Umo|liwiaj:  Identyfikacj i dokumentacj wymogów  Analiz zakresu aplikacji  Komunikacj pomidzy twórcami, wBa[cicielami, klientami itd.  Opracowanie projektu przyszBego systemu, organizacji  Okre[lenie procedur testowych dla systemu Ï% S dwa typy diagramów przypadku u|ycia:  biznesowe  systemowe Diagramy przypadków u|ycia Ï% Zawieraj:  Przypadki u|ycia  Aktorów  Zwizki (relacje) Przypadki u|ycia Ï% Specyfikacja sekwencji akcji (i ich wariantów) które system mo|e wykona poprzez interakcj z aktorami tego systemu Ï% Przypadek u|ycia jest spójnym fragmentem funkcjonalno[ci systemu Ï% Nazw jest rozkaz wypeBnienia okre[lonej funkcji. Nazwa jest umieszczona w owalu Sprawdz hasBo Zweryfikuj u|ytkownika Aktor Ï% Aktor jest spójnym zbiorem ról odgrywanych przez u|ytkowników podczas interakcji z przypadkami u|ycia Ï% Aktorami mog by:  Osoby (pojedyncza osoba, grupa, organizacja itp.)  Zewntrzne systemy (programowe bdz sprztowe)  Czas Ï% Nazwa to rzeczownik odzwierciedlajcy rol odgrywan w systemie Ï% Aktor mo|e uzywa wielu przypadków u|ycia, przypadek u|ycia mo|e by u|ywany przezwielu aktorów Stereotypy aktorów Ï% Klasyczny symbol aktora mo|e by stereotypowany aby rozró|ni midzy ró|nymi typami aktorów klasyczny / czBowiek urzdzenie system zewntrzny czas Zwizek (relationship) Ï% Wie ze sob elementy diagramu (np. aktorów i przypadki u|ycia) Ï% S 4 rodzaje zwizków:  Asocjacja (association)  Uogólnienie (generalisation)  Zale|no[ (dependence)  Realizacja (realisation) Asocjacja Ï% Asocjacja opisuje zwizek pomidzy (dwiema lub wicej) wystpieniami klasyfikatorów Ï% W diagramie przypadków u|ycia reprezentuje dwukierunkow komunikacj pomidzy aktorem i przypadkiem uzycia Ï% Jej reprezentacj graficzn jest cigBa linia Ï% Zazwyczaj nie s nazywane Asocjacja Znajdz produkt u|ytkownik Zale|no[ (dependency) Ï% Zale|no[ jest zwizkiem pomidzy dwoma elementami modelu gdzie zmiana w jednym elemencie (niezale|nym one) ma wpByw na drugi element (zale|ny) Ï% Jest obrazowana jako linia przerywana zakoDczona otwart strzaBk Ï% W diagramach przypadków uzycia zale|no[ jest stereotypowana w:  Zale|no[ <<include>>  Zale|no[ <<extend>> Zale|no[ <<include>> Ï% Zwizek midzy przypadkiem zawierajcym i zawieranym Ï% Przypadek zawierany jest wykonywany zawsze gdy wykonywany jest przypadek zawierajcy  i tylko wtedy Ï% Jest przydatna gdy kilka przypadków u|ycia zawiera t sama wspóln cz[ Ï% StrzaBka skierowana jest od przypadku zawierajcego do zawieranego Zale|no[ <<include>> Znajdz produkt <<include>> Zaloguj do bazy <<include>> Dodaj produkt Zale|no[ <<extend>> Ï% Zale|no[ midzy przypadkiem podstawowym i przypadkiem który opcjonalnie mo|e wprowadzi dodatkow funkcjonalno[ do przypadku podstawowego Ï% Jest przydatna gdy przypadek mo|e, w pewnych warunkach, by uzale|niony od innych przypadków Ï% StrzaBka wskazuje od rozszerzenia do przypadku podstawowego Zale|no[ <<extend>> Znajdz produkt Zweryfikuj hasBo <<extend>> <<include>> Zaloguj do bazy <<extend>> <<include>> PoBcz z sieci Dodaj produkt Punkty rozszerzenia Ï% Jest mo|liwe okre[lenie sytuacji (warunków) w których musi nastpi doBczenie przypadków rozszerzajcych Ï% S one wyszczególnione w rozszerzanym przypadku, pod poziom lini Punkty rozszerzenia Znajdz produkt Zweryfikuj hasBo <<include>> <<extend>> Zaloguj do bazy Extension points wymagane hasBo sieciowa baza <<extend>> PoBcz z sieci <<include>> Dodaj produkt Uogólnienie Ï% Uogólnienie jest taksonomiczn relacj pomidzy ogólnym i specjalizowanym klasyfikatorem Ï% Specjalizowany klasyfikator dziedziczy wszystkie cechy klasyfikatora ogólnego Ï% Jest obrazowana lini zakoDczon zamknit strzaBk, wskazujc w stron klasyfikatora ogólnego Uogólnienie Znajdz produkt Zweryfikuj hasBo <<extend>> <<include>> Zaloguj do bazy <<extend>> <<include>> PoBcz z sieci Dodaj produkt Zaloguj do MySQL Liczebno[ Ï% Umo|liwia okre[lenie liczby elementów biorcych udziaB w tej asocjacji, na ka|dym jej koDcu Ï% Mo|liwe przypadki:  n (n > 0) dokBadnie n  n..* (n e" 0) n lub wicej  n..m (m > n e" 0) od n do m  * wiele (nieznana liczba)  n, m, o..p, q (q > p...) lista warto[ci Liczebno[ Dokumentowanie przypadków u|ycia Ï% Diagram przypadków u|ycia sam w sobie jest bardzo ogólnikowy Ï% Aby precyzyjnie okre[li po|dane zachowanie systemu, kazdy przypadkek uzycia powinien posiada dodatkowa informaj, tzw. scenariusz Ï% Scenariusz jest sekwencj akcji, okreslajca zachowanie Ï% Dla zBo|onych przypadków mo|na zdefiniowa gBówny oraz alternatywne scenariusze Ï% Scenariusz moze zostazapisany w jezyku naturalnym, pseudo-kodzie, tabeli itp. PrzykBadowe diagramy PrzykBadowe diagramy Diagramy klas Ï% Zawiera informacje o statycznych zwizkach midzy elementami (klasami) Ï% S [ci[le powizane z technikami programowania zorientowanego obiektowo Ï% S jednymi z istotniejszych diagramów w UML Symbol klasy Ï% Symbolem klasy jest prostokt, zwykle podzielony poziomymi liniami na trzy sekcje:  nazwy  atrybutów  operacji Ï% W razie potrzeby mo|e zosta uzupeBniony dodatkowymi sekcjami (np. wyjtków) Symbol klasy Ï% Przy zBo|onych klasach wyswietlenie wszystkich atrybutów i operacji mo|e zabra zbyt du|o miejsca Ï% Mo|liwe rozwizania to:  Wy[wietlenie tylko nazwy klasy, bez sekcji atrybutów i operacji  Wy[wietlenie tylko nazwy klasy, z pustymi sekcjami atrybutów i operacji  Wy[wietlenie tylko cz[ci atrybutów lub operacji, zaznaczjc kontynuacj poprzez wielokropek  Ukrycie niektórych atrybutów lub operacji Kontrola dostpu Ï% Mo|na okre[li modyfikatory dostepu dla skBadowych Ï% S one [ci[le powizane z koncepcjami programowania zorientowanego obiektowo Ï% Mo|liwe rodzaje dostpu: ¢' + publiczny ¢' - prywatny ¢' # chroniony ¢' ~ pakietu SkBadniki statyczne Ï% SkBadniki mozna zadeklarowa jako statyczne  dziaBajce na rzecz klasy, nie obiektu Ï% Koncepcja identyczna jak w jzykach zorientowanych obiektowo Ï% Reprezentacj graficzn jest podkre[lenie Specyfikacja skBadników Ï% Atrybuty mog mie okre[lone:  Typ. Typ jest umieszczany po nazwie, oddzielony dwukropkiem  Liczebno[  Warto[ pocztkow Ï% Operacje mog mie okre[lone:  Typ zwracany. Typ jest umieszczany po nazwie, oddzielony dwukropkiem  Argumenty. Ka|dy argument mo|e by okre[lony tak jak atrybut, z dodatkowym oznaczeniem kierunku przekazywania warto[ci (domy[lnie  in ) Specyfikacja skBadników Zwizki Ï% Wszystkie 4 typy zwizków s u|ywane Ï% GBównym typem jest asocjacja Ï% Mo|e mie nastpujce cechy (pogrubiono nowe w stosunku do diagramów przypadków u|ycia):  nazwa  role  kierunek nawigacji  liczebno[  agregacja Nazwa Ï% Mo|na nazwa asocjacj aby doprecyzowa jej znaczenie Ï% Nazwa mo|e zawiera kierunek Role Ï% Inny sposób doprecyzowania asocjacji Ï% Rola klasy jest okre[lona przez tekst umieszczony w pobli|u tej klasy Ï% Mo|na okre[li jednocze[nie nazw i role Kierunek nawigacji Ï% Domy[lnie asocjacja jest dwukierunkowa Ï% Aby byBa jednokierunkowa, dodaje si straBk Ï% Oznacza to |e komunikacja jest jednokierunkowa (inaczej ni| diagramy przypadków u|ycia) Liczebno[ Ï% Znaczenie identyczne jak w diagramach przypadków u|ycia Agregacja Ï% Okre[la zwizek midzy caBo[ci i cz[ci Ï% S dwa typy:  caBkowita (kompozycja, silna agregacja)  cz[ciowa (agregacja, sBaba agregacja) Ï% Jest obrazowana przez romb umieszczony przy symbolu okre[lajcym caBo[ Ï% Silna agregacja jest zobrazowana przez peBen romb, sBaba  przez pusty Silna i sBaba agregacja Ï% W przypadku silnej agregacji cz[ci skBadowe nie mog istnie je[li symbol okre[lajcy caBo[ jest usunity Ï% W przypadku sBabej agregacji jest to mo|liwe. Jeden obiekt mo|e by te| zawierany przez wiele innych. Silna i sBaba agregacja Asocjacja wielokrotna Ï% Dwie klasy mog by w odmienny sposób zwizane ze sob w ró|nych kontekstach Ï% W efekcie mo|e by wicej ni| jedna asocjacja midzy klasami Ï% W takim wypadku ka|da powinna by nazwana Multiple associations Zale|no[ Ï% Oznacza |e jedna klasa (klient) w jaki[ sposób u|ywa innej klasy (dostawca) Ï% Jest obrazowana lini przerywan zakoDczon strzaBk wskazujc na dostawc Uogólnienie PrzykBadowe diagramy PrzykBadowe diagramy Diagramy czynno[ci (activity) Ï% Opisuj dynamik systemu (klas- statyk) Ï% Prezentuja przepByw danych i sterowania Ï% Mog by stosowane do modelowania:  Procesów biznesowych  Scenariuszy przypadków u|ycia  Algorytmów Elementy skBadowe Ï% Czynno[ Ï% Akcja Ï% PrzepByw sterowania Ï% Pocztek Ï% Koniec Ï% ZakoDczenie przepBywu Czynno[ Ï% Reprezentuje zBo|ony proces Ï% Mo|e zosta (na osobnym diagramie) doprecyzowana, poprzez kolejny diagram czynno[ci, opisujcy jej  wntrze - powstaje struktura hierarchiczna Ï% Dekompozycja mo|e przebiega do poziomu akcji  najmniejszej, niepodzielnej jednostki Czynno[ i akcja Ï% Symbolem jest prostokt z zaokrglonymi rogami Ï% Czasesm czynno[ci posiadajce powizane z nimi poddiagramy posiadaj specjalny znacznik Log in Pay x := y + 5 * z PrzepByw sterowania Ï% Jest to zwizek midzy dwiema czynno[ciami/akcjami mówiacy, |e po zakoDczeniu jednej sterowanie bdzie przekazane do drugiej Ï% Symbolem jest strzaBka Pocztek, koniec, zakoDczenie przepBywu Ï% Pocztek okre[la pocztek przepBywu sterowania. Zwykle jeden na diagram. Symbolem jest peBne kóBko Ï% Koniec oznacza zakoDczenie wszystkich przepBywów w diagramie. Mo|e by wicej ni| jeden. Symbolem jest maBe peBne kóBko wewntrz wikszego pustego Ï% ZakoDczenie przepBywu oznacza koniec jednego przepBywu. Mo|e by wicej ni| jedno. Symbolem jest kóBko z krzy|ykiem (X) Prosty diagram Decyzja i zBczenie Ï% Alternatywne [cie|ki przepBwu sterowania mog zosta opisane przy pomocy wzBów decyzji i zBcznia Ï% WzeB decyzji ma jeden przepByw wej[ciowy i wiele wyj[ciowych. Tylko jedno wyj[cie mo|e by wybrane w danej chwili Ï% WzeB zBczenia ma wiele wej[ i jedno wyj[cie Ï% Symbolem obu wzBów jest romb Decyzja Ï% Wybór wyj[cia nastpuje na podstawie warunku Ï% Warunek jest umieszczany przy wyj[ciu, w nawiasach kwadratowych Ï% Wszystkie warunki musz s wzajemnie wyklucza Ï% Jeden z warunków mo|e zosta zastpiony sBowem kluczowym else ZBczenie Ï% Ka|dy przepByw pojawiajcy si na wej[ciu zostanie natychmiast przekazany na wyj[cie  brak synchronizacji PrzykBadowy diagram PrzepBywy równolegBe Ï% PrzepBywy mog by wykonywane równolegle Ï% Umo|liwiaj to wzBy rozwidlenia i scalenia Ï% Rozwidlenie ma jedno wej[cie i wiele wyj[  przepByw wchodzcy jest rozdzielany Ï% Scalenie ma wiele wej[ i jedno wyj[cie. PrzepByw zostanie przekazany do wyj[cia tylko je[li przepBywy dotarBy do wszystkich wej[  nastpuje synchronizacja Sample diagram PrzepByw obiektów Ï% Jako uzupeBnienie mo|na zaznaczy przepByw obiektów Ï% Mo|e by przydatny np. kiedy obiekt jest tworzony i przekazywany dalej do przetwarzania Ï% Obiekt musi by poBczony z czynno[ci/akcj Ï% Symbolem jest prostokt z nazw Ï% Mo|na te| u|y tzw. przekazników danych PrzepByw obiektów Partycje Ï% Elementy diagramu mog by pogrupowane w partycje Obszar przerwania Ï% Umo|liwia wyznaczenie fragmentu diagramu którego wykonywanie mo|e zosta natychmiast przerwane przy wystpieniu zewntrznego zdarzenia. Zostaje wtedy wykonany przepByw przerwania Ï% Wszystkie przepBywy w regionie s przerywane, z wyjtkiem przepBywu przerwania Ï% PrzepByw przerwania zawsze zaczyna si w obszarze przerwania, koDczy poza Ï% U|yteczne s symbole sygnaBów SygnaBy Ï% Mog sBu|y do opisu przetwarzania asynchronicznego Ï% Mo|na:  WysBa sygnaB  Odebra sygnaB Obszar przerwania PrzykBadowe diagramy Diagram sekwencji (sequence) Ï% Opisuje interakcje midzy obiektami przy pomocy sekwecji wiadomo[ci Ï% Dobrze nadaje si do dokumentowania przypadków u|ycia Ï% Diagram jest zorientowany w dwu wymiarach:  O[ pozioma zwizan jest z kolejnymi obiektami biorcymi udziaB w wymianie wiadomo[ci  O[ pionowa zwizana jest z upBywem czasu GBówne elementy Ï% Obiekt Ï% Linia |ycia Ï% Wiadomo[ Obiekt Ï% Obiekty klas s podstawowymi elemntami w diagramie sekwencji Ï% Diagram mo|e równie| zawiera instancj innych klasyfikatorów: przypadków u|ycia, aktorów, sygnaBów itp. Ï% Obiekt jest przedstawiany jako prostokt z nazw (niekiedy podkre[lon) Ï% W prostych diagramach wszystkie obiekty umieszczone s przy górnej krawdzi diagramu Linia |ycia Ï% Reprezentuje przedziaB czasu w którym obiekt istnieje Ï% Jest zobrazowna przez przerywana pionow lini, zaczynajc si na obiekcie i idc w dóB Wiadomo[ci Ï% Wiadomo[ci reprezentuj przepByw informacji midzy obiektami. Wiadomo[ jest poleceniem dla obiektu aby wykona pewne operacje Ï% Najwa|niejszym (i koniecznym) skBadnikiem opisu wiadomo[ci jest sygnatura Wiadomo[ - sygnatura Ï% Mo|e skBada si z:  Nazwy (obowizkowa)  Listy argumentów  Warto[ci zwracanej Specyfikacja wykonania Ï% Obrazuje okres aktywano[ci obiektu (obliczenia, przekazywanie widomo[ci z/do) Ï% Jest przedstawiany jako prostokt umieszczony na linii |ycia, jego wysoko[ okre[la okres aktywno[ci Ï% Pocztek jest zwizany z aktywacj obiektu (zwykle wiadomo[ci przekazan od innego obiektu) PrzykBadowy diagram Rodzaje wiadomo[ci Ï% Synchroniczna Ï% Asynchroniczna Ï% Zwrotna Ï% Zgubiona Ï% Znaleziona Wiadomo[ synchroniczna Ï% Sterowanie jest przekazane do obiektu wywoBywanego Ï% Przetwarzanie w obiekcie wywoBujcycm jest wstrzymywane do momentu zakoDczenia wywoBanej czynno[ci Ï% Jest obrazowane peBn strzaBk Ï% Jest odpowiednikiem wywoBania funkcji Wiadomo[ asynchroniczna Ï% Przetwarzanie w obiekcie wywoBujcym nie jest przerwane Ï% Jest obrazowane otwart strzaBk Wiadomo[ zwrotna Ï% Obrazuje oddanie sterowania do obiektu wywoBujcego Ï% Jest opcjonalna Ï% Jest przedstawiona jako strzaBka z lini przerywan Tworzenie i niszczenie obiektów Ï% Tworzenie i niszczenie s powodowane przez odpowiednie wiadomo[ci Ï% Wiadomo[ci te maj stereotypy, odpowiedni  create i  destroy Ï% Na koDcu wiadomo[ci  create umieszcza si tworzony obiekt (co powoduje |e znajduje si on poni|ej innych obiektów) Ï% Po otrzymaniu wiadomo[ci  destroy linia |ycia obiektu koDczy si. Jest to dodatkowo wyró|nione umieszczeniem znaku X na koDcu linii. PrzykBadowe tworzenie i niszczenie Fragmenty zBo|one Ï% S to wybrane fragmenty diagramu sekwencji, do których odnosi si odpowiedni operator interakcji Ï% S zobrazowane ram otaczajc wybrany region. Rama ma nagBówek w lewym górnym rogu zawierajcy operator interakcji Ï% Niektóre operatory wymagaj wyodrbnienia podfragmetów regionu. S one wyodrbniane lini kropkowo-kreskow Wybrane operatory Ï% Alt Ï% Opt Ï% Loop Ï% Par Operator alt - alternatywa Ï% Oznacza, |e tylko jeden z podobszarów (operandów) obszaru objtego ram mo|e by wybrany Ï% Wybór ten zale|y od od warunków umieszczonych w podfragmentach Ï% Podobszar bez warunku jest wyborem domy[lnym PrzykBad operatora alt Operator opt  fragment opcjonalny Ï% Cz[ diagramu zostanie wykonana tylko je[li speBniony bdzie warunek Ï% Odpowiada operatorowi alt z pustym domyslnym operandem PrzykBad operatora opt Operator loop - iteracja Ï% Umo|liwia wielokrotne powtórzenie wybranego fragmentu Ï% Liczba interacji moze zosta okre[lona Operator par  wykonanie równolegBe Ï% Oznacza, |e podfragmenty fragmentu objetego ram s wykonywane równolegle SygnaBy Ï% SygnaB - dowolna wielko[ zmieniajca si w czasie lub przestrzeni Ï% W praktyce wszystko co jest mierzalne mo|e by potraktowane jako sygnaB Ï% W celu przetwarzania sygnaBy s zwykle konwertowane na inne sygnaBy, Batwo poddajce si obróbce, np. sygnaBy elektryczne Ï% Ostatecznie czsto sygnaB przybiera form reprezentacji matematycznej PodziaB sygnaBów Ï% Z czasem cigBym bdz dyskretnym Ï% Z wielko[ciami cigBymi bdz skwantowanymi Ï% Analogowe, dyskretne Kwantyzacja Ï% Proces przybli|enia warto[ci cigBych poprzez skoDczon liczb warto[ci Ï% Mo|e równie| sBu|y do przybli|ania warto[ci reprezentowanych przez skoDczon, ale du|, liczb warto[ci poprzez mniejsz liczb warto[ci Ï% Zawsze prowadzi do straty informacji Ï% Pojawia si bBd, zwany bBdem kwantyzacji Dyskretyzacja (próbkowanie) Ï% Próbkowanie jest przeprowadzane poprzez pomiar sygnaBu cigBego w równomiernych odstpach czasu - co T Ï% T jest okresem próbkowania Ï% f=1/T to czstotliwo[ próbkowania Ï% Musi by speBnione twierdzenie Nyquista- Shannona Twierdzenie Nyquista-Shannona Ï% SygnaB analogowy mo|e by idealnie odtworzony z próbek (sygnaBu spróbkowanego) je[li czstotliwo[ próbkowania przekraczaBa dwukrotn maksymaln czstotliwo[ sygnaBu wej[ciowego Ï% SygnaB mo|e by odtworzony przy pomocy wzoru interpolacyjnego Whittakera-Shanona: " t-nT x žàt Ÿà= x [n]Å"sinc " žà Ÿà T n=-" gdzie sinžàÆà xŸà sincžà xŸà= Æà x Próbkowanie Ï% Twierdzenie to oznacza, |e tylko sygnaBy o ograniczonej czstotliwo[ci mog by idealnie spróbkowane Ï% {aden sygnaB o ograniczonym czasie trwania nie ma ograniczonej czstotliwo[ci Ï% Je[li twierdzenie Nyquista-Shannona nie jest speBnione, mamy do czynienia z aliasingiem Ï% W praktyce stosuje si filtry dolnoprzepustowe przed próbkowaniem sygnaBu Kwantyzacja Ï% Dopuszczalny zakres warto[ci wej[ciowych dzieli si na skoDczon liczb przedziaBów N Ï% Granice midzy przedziaBami to poziomy decyzyjne, jest ich N-1 Ï% Warto[ wej[ciowa nale|ca do danego przedziaBu jest zastpowana przez tzw. poziom reprezentacji - mo|e by to np.:  górna warto[ przedziaBu  dolna warto[ przedziaBu  warto[ [rodka przedziaBu Kwantyzacja Ï% Typowym przykBadem jest kwantyzacja liniowa Ï% Mo|e by opisana równaniem Qžà xŸà=g žà floor žà f žà xŸàŸàŸà Ï% i= floor žà f žà xŸàŸà Warto[ jest nazywana indeksem kwantyzacji i to wBa[nie ona jest zwykle wynikiem procesu kwantyzacji Kwantyzacja Ï% Typowymi przykBadami kwantyzacji liniowej jest:  kwantyzacja staBa w zerze  kwantyzacja ze skokiem w zerze Kwantyzacja Ï% Przyjmujc reprezentacj na M bitach warto[ci wej[ciowej z przedziaBu od -1 do 1 otrzymujemy wzory na kwantyzacj: floor žà2M -1 xƒà0.5Ÿà  Qžà xŸà= staB w zerze 2M -1 floor žà2M -1 xŸàƒà0.5  Qžà xŸà= ze skokiem w zerze 2M -1 Próbkowanie i kwantyzacja w praktyce Ï% W praktyce stosuje si przetworniki analogowo- cyfrowe Ï% Realizacje praktycne odbiegaj od zaBo|eD teoretycznych:  brak idealnych filtrów antyaliasingowych  niezerowy czas próbkowania  niestaBo[ okresu (czstotliwo[ci) próbkowania  ograniczone szybko[ci narastania  nieliniowo[ci ukBadów Droga Definicja 1: Droga Zbiór krawdzi b1, b2, ..., bn w grafie niezorientowanym Gn jest nazywany drog midzy wierzchoBkami Vj i Vk je|eli krawdzie te mog by uporzdkowane w ten sposób, |e: Ï% krawdzie kolejne bi i bi+1 maj zawsze wspólny wierzchoBek Ï% |aden wierzchoBek w Gn nie jest wierzchoBkiem wicej ni| 2 krawdzi zbioru Ï% Vj jest wierzchoBkiem dokBadnie jednej krawdzi zbioru oraz Vk jest równie| wierzchoBkiem dokBadnie jednej krawdzi zbioru. Graf spójny Definicja 2: Graf spójny Niezorientowany graf Gn jest grafem spójnym, je|eli istnieje droga midzy dowolnymi dwoma wierzchoBkami grafu. Sie N lub graf zorientowany Gd s spójne, je|eli zwizany z nimi graf Gn jest spójny. Cykl Definicja 3: Cykl (obwód) Podgraf Gs grafu Gn jest nazywany cyklem, je|eli: Ï% Gs jest spójny Ï% ka|dy wierzchoBek w Gs ma dokBadnie dwie powizane z nim krawdzie Drzewo Definicja 4: Drzewo Podgraf Gs grafu spójnego Gn jest nazywany drzewem T, je|eli: Ï% Gs jest spójny Ï% Gs zawiera wszystkie wierzchoBki Gn Ï% Gs nie zawiera cykli Ï% Krawdzie które nale| do drzew T nazywane s krawdziami drzewa, pozostaBe - krawdziami przeciwdrzewa (ciciwami) Ï% Wniosek: je[li Gn zawiera n wierzchoBków, to drzewo zawiera dokBadnie n-1 krawdzi. Macierz incydencji Definicja 5: Macierz incydencji Aa Dla grafu zorientowanego Gd zawierajcego n wierzchoBków i b krawdzi definiujemy macierz incydencji jako macierz o wymiarze n x b Aa=[aij], przy czym: Ï% aij = 1 je|eli krawdz j jest poBczona (incydentna) z i-tym wierzchoBkiem i skierowana od wierzchoBka Ï% aij = -1 je|eli krawdz j jest poBczona (incydentna) z i-tym wierzchoBkiem i skierowana do wierzchoBka Ï% aij = 0 je|eli krawdz j nie jest jest poBczona (incydentna) z i-tym wierzchoBkiem. 1 c a f 3 e 2 d b a b c d e f 4 1 1 0 1 0 0 -1 2 -1 1 0 0 1 0 Aa= 3 0 0 -1 1 -1 0 [ ] 4 0 -1 0 -1 0 1 I prawo Kirchhoffa Ï% i - wektor prdów o wymiarze b x 1, kolejno[ prdów w tym wektorze odpowiada kolejno[ci kolumn w macierzy Aa Ï% I prawo Kirchhoffa w odniesieniu do wszystkich wzBów ma posta Aa·i = 0. Ï% Ten ukBad równaD jest liniowo zale|ny, ka|de równanie wynika z n-1 pozostaBych równaD. Twierdzenie 1 Ï% Maksymalny ukBad niezale|nych równaD wynikajcych z I prawa Kirchhoffa dla wzBów spójnej sieci N mo|e by przedstawiony w postaci A·i = 0, gdzie A to zredukowana macierz incydencji a b c d e f ia ib 1 1 0 1 0 0 -1 2 -1 1 0 0 1 0 ic Å" =0 3 0 0 -1 1 -1 0 id [ ] 4 0 -1 0 -1 0 1 ie [] i f Transformacja wzBowa Wybierajc n-ty wierzchoBek grafu jako wierzchoBek odniesienia, mo|na zapisa wektor potencjaBów wzBowych jako: un = [u1n u2n ... u(n-1)n]T wówczas u = ATun - zale|no[ Bczca napicia gaBziowe i potencjaBy wzBowe. Transformacja wzBowa u1n-u2n ua 1 -1 0 u2n ub 0 1 0 u1n 1 0 -1 u1n-u3n = uc Å" AT·un = u2n = 0 0 1 u3n ud u3n 0 1 -1 [ ][ ] u2n-u3n ue [ ][ ] -1 0 0 -u1n u f Metoda potencjaBów wzBowych ik ik bk uk uk Jk k-ta gaBz Ek Metoda potencjaBów wzBowych k i yc uc gmuc Jc Jl Ec El m j Metoda potencjaBów wzBowych T T '" '" '" '" '" '" '" '" îøu u2 ï" ub ùø îø ùø = u i = i1 i2 ï" i b 1 ïø úø ïø úø ðø ûø ðø ûø T T E = [E1 E2 ï" Eb] J = [J1 J2 ï" Jb] T T u = [u1 u2 ï" ub] i = [i1 i2 ï" ib] Metoda potencjaBów wzBowych '" (1) u = u - E '" (2) i = i - J '" (3) = Ai 0 (A = [aij] ) n xb (4) A(i - J) = 0 Ai = AJ Metoda potencjaBów wzBowych - opis elementów 1 ik = uj Rk `" 0 Rk ik = gkju j Metoda potencjaBów wzBowych - opis elementów i1 y11 y12 ï" y1b u1 îø ùø îø ùø îø ùø ïø úø ïø i2 y21 y22 ï" y2b úø ïø u2 úø ïø úø ïø úø ïø úø = ïø úø ïø úø ïø úø î" î" î" î" î" î" ïø úø ïø úø ïø úø ib yb1 yb2 ï" ybb ûø ðø ub ûø ðø ûø ðø Rezystancje: yródBa sterowane: 0 dla ± `" k ñø 0 dla ± `" j ñø ôø 1 yk± = yk± = òø òø dla ± = k gkj dla ± = j óø ôø Rk óø Metoda potencjaBów wzBowych - równanie (5) i = Ybu AYbu = AJ '" poniewa| u = u - E '" AYbëø u + Eöø = AJ ìø ÷ø íø øø '" czyli (6) AYb u = A(J - YbE) Metoda potencjaBów wzBowych - równanie '" u = ATun Transformacja wzBowa: (7) (AYbAT) un = A(J - YbE) (8) Ynun = Jn Metoda potencjaBów wzBowych - przykBad 2&! 8ur ur 1/3 &! 6V 0,1&! 1A 4ur 0,5&! 2A 7A 0,2&! 5V Metoda potencjaBów wzBowych - przykBad 2&! 8ur ur 1/3 &! 6V 0,1&! 1A 4ur 0,5&! 2A 7A 0,2&! 5V Metoda potencjaBów wzBowych - przykBad 1 0 0 1 1 0 1 îø ùø ïø úø A = 0 1 0 - 1 - 1 1 0 ïø úø 7 ïø úø 0 0 1 0 0 - 1 - 1ûø ðø 2 6 4 1 3 5 2 3 1 Metoda potencjaBów wzBowych - przykBad 2 0 0 0 0 0 0 îø ùø ïø úø 0 5 0 0 0 0 0 ïø úø ïø úø 0 0 0 0 0 4 0 ïø úø Yb = 0 0 0 0 0 8 0 ïø úø ïø úø 0 0 0 0 10 0 0 ïø úø 0 0 0 0 0 3 0 ïø úø ïø 0 0 0 0 0 0 0,5úø ðø ûø Metoda potencjaBów wzBowych - przykBad 5 îø ùø 2 îø ùø ïø úø ïø úø 0 7 ïø úø ïø úø ïø úø 0 ïø úø - 1 ïø úø ïø úø E = 0 J = 0 ïø úø ïø úø ïø úø ïø úø 0 0 ïø úø ïø úø - 6úø ïø 0 ïø úø ïø úø ïø úø 0 0 ðø ûø ðø ûø Metoda potencjaBów wzBowych - przykBad Metoda potencjaBów wzBowych: sieci liniowe, wymuszenia sinusoidalne Rezystor R Impedancja Z Konduktancja G Admitancja Y Cewka: ZL=jÉL Kondensator: ZC=1/jÉC Funkcja czasu u(t) Wskaz U(É) Funkcja czasu i(t) Wskaz I(É) R, G, u, i s liczbami Z, Y, V, I s liczbami zespolonymi rzeczywistymi MPW: sieci liniowe, wymuszenia sinusoidalne (AYbAT) Un = A(J - YbE) YnUn = Jn Indukcyjno[ci sprz|one M k = d" 1 UL = jÉ L IL L1L2 di1 di2 di2 di1 uL1 = L1 , uL2 = L2 , uM 1 = M , uM 2 = M dt dt dt dt 1 IL = “UL “ = L- 1 jÉ MPW: wymuszenia sinusoidalne - przykBad 2 1 3 5 6 3 2 1 4 1 YC = jÉ C, YL = jÉ L MPW: wymuszenia sinusoidalne - przykBad 1 0 0 0 1 0 îø ùø ïø úø A = 0 1 0 0 - 1 1 ïø úø ïø úø 0 0 1 1 0 - 1ûø ðø 5 6 5 6 - 1 4 6 2,5 - 1,5 5 5 îø ùø îø ùø “ = L- 1 = = ïø ïø úø 6 6 6 10úø - 1,5 1 ðø ûø ðø ûø 1 É = 0,5 rad s = - 2 j“ jÉ L MPW: wymuszenia sinusoidalne - przykBad 1 2 3 4 5 6 1 0 0 0 0 0 - 1 1 îø ùø îø ùø ïø úø ïø úø 0 j3 0 0 0 0 0 2 ïø úø ïø úø ïø úø ïø úø 0 8 0 0 0 0 0 3 Yb = E = ïø úø J = 0 ïø úø 4 0 0 0 2 0 0 0 ïø úø ïø úø ïø úø ïø úø 5 0 0 0 0 - j5 j3 0 ïø úø ïø úø 6 0 0 0 0 j3 - j2ûø 0 ïø úø ïø úø ðø ðø ûø 1 1- j5 j8 - j3 îø ùø îø ùø ïø ïø úø Jn = 0úø Yn = j8 - j10 j5 ïø úø ïø úø ïø úø 0ûø ïø úø - j3 8 + j5 2 - j2ûø ðø ðø Bezpo[rednie wyznaczanie równania wzBowego Yn = AYbAT Jn = A(J - YbE) Bezpo[rednie wyznaczanie równania wzBowego i j i yl - yl îø ùø Yn = ïø j - yl yl úø ðø ûø i (Jl - ylEl ) îø ùø Jn = ïø j - (Jl - ylEl )úø ðø ûø Bezpo[rednie wyznaczanie równania wzBowego k i yc uc gmuc Jc Jl Ec El m j od k do m od i i ( Jl - gmEc) gm - gm îø ùø îø ùø Yn = Jn = ïø ïø do j j - gm gm úø - (Jl - gmEc)úø ðø ûø ðø ûø Metoda potencjaBów wzBowych - przykBad 7 2 6 4 1 3 2&! 5 2 8ur ur 3 1 1/3 &! 6V 0,1&! 1A 4ur 0,5&! 2A 7A 0,2&! 5V Bezpo[rednie wyznaczanie równania wzBowego - przykBad 2+10+0,5  10+8  0,5 8 YN=  10 5+10+3 8  3+8  0,5  3+4 3+0,5 4 2 10+48 JN= 7+18 48  1+24 18 Analiza sieci nieliniowych metod potencjaBów wzBowych ik ik ik = gk (uk ) bk uk uk Jk Ek ( ) ik = gk u j Analiza sieci nieliniowych metod potencjaBów wzBowych g1(u± ) i1 îø ùø îø ùø ïø ïø úø ( )úø = g(u) g1 u² úø i2 ïø ïø úø i = = ïø úø ïø úø î" î" ïø ïø úø ( )úø g1 u¶ úø ib ïø ðø ûø ðø ûø dowolne napicie gaBziowe u± , u± ï" u1, u2, ï" ub Je|eli nie ma zródeB sterowanych: ± = 1, ² = 2, ï" ¶ = b Analiza sieci nieliniowych metod potencjaBów wzBowych '" '" Ai = AJ A i = 0 i = i - J '" Ag(u) = AJ u = u - E '" u = ATun Analiza sieci nieliniowych metod potencjaBów wzBowych f(x) = 0 ( ) ( ) f x = f un = Ag °(ATun + E)- AJ Sieci nieliniowe - przykBad 0,5 2 b 2 1 1 1 c d 4 i=ud2 a 2 Sieci nieliniowe - przykBad a b c d 1 -1 1 0 0 A= [ ] 2 0 -1 1 1 a 2 b 0 E= J=0 c 0 [ ] d 0 Sieci nieliniowe - przykBad 1 Å"ua a 2 Å"ub b g(u)= c 0.25Å"uc [ ] d ud2 Sieci nieliniowe - przykBad A g °žà AT unƒàE Ÿà-A J -1 0 2 -1 1 0 0 1 -1 u1 ƒà 0 g ° -0 [ ] 0 -1 1 1 0 [ ] 1 0 u2 [ ] [ ] žà Ÿà 0 1 0 Sieci nieliniowe - przykBad -u1 2 -1 1 0 0 u1-u2 ƒà 0 g ° [ ] 0 -1 1 1 0 u2 [ ] [ ] žà Ÿà 0 u2 -u1 ƒà2 -1 1 0 0 u1-u2 g ° [ ] 0 -1 1 1 u2 [ ] žà Ÿà u2 Sieci nieliniowe - przykBad -u1 ƒà2 2žàu1-u2Ÿà -1 1 0 0 [ ] 0 -1 1 1 0.25u2 [ ] žà Ÿà u22 u1 -2 ƒà2 u1 -2 u2 3 u1 -2 u2 -2 = [ ] [ ] -2 u1 ƒà2 u2 ƒà0.25u2 ƒàu22 -2 u1 ƒà2.25u2 ƒàu22 Zmodyfikowana metoda potencjaBów wzBowych Idea: I. Do ukBadu równaD wzBowych uzyskanych z prdowego prawa Kirchhoffa doBczamy dodatkowe równania, napisane dla nastpujcych gaBzi: - zawierajcych zródBa napiciowe: niezale|ne i sterowane, - gaBzi w postaci zwarcia, - zawierajce elementy uzale|nione prdowo (od prdu pByncego przez t sam lub inn gaBz) Zmodyfikowana metoda potencjaBów wzBowych II. Prdy gaBzi z p. I. s traktowane jako dodatkowe zmienne pierwotne na równi z potencjaBami wzBowymi Yn B un Jn îø ùø îø ùø îø ùø = ïø id Fd C Dúø ïø úø ïø úø ðø ûø ðø ûø ðø ûø Zmodyfikowana metoda potencjaBów wzBowych 2 1 G1(u1-u2)-i1=0 G1 -G1(u1-u2)+u2G2=0 E G2 i1 u1 = E 1 2 i1 1 - G1 - G1 1 u1 0 îø ùø îø ùø îø ùø 2 ïø ïø úø - G1 G1 + G2 0úø ïø u2 úø = 0 i1 ïø úø ïø úø ïø úø ïø úø ïø úø ïø úø - 1 0 0ûø ðø i1 ûø ðø - E1ûø ðø yródBo napiciowe niezale|ne ui - u + Ek = Zkik j Ek Zk ik czyli: i j ui - u - Zkik = - Ek j yródBo napiciowe sterowane napiciowo i m ik us Aus Js Es j n yródBo napiciowe sterowane napiciowo i j m n ik i 1 îø ùø ui îø ùø îø ùø j ïø úø - 1úø ïø j úø ïø u ïø úø ïø úø ïø úø m um ïø úø = ïø úø ïø úø n ïø úø ïø úø ïø úø un ik ïø úø ïø úø ïø úø ïø1 - 1 A - A úø - AEs ûø ïø ik úø ïø úø ðø ðø ûø ðø ûø yródBo napiciowe sterowane prdowo i m is ik us ys K is Js Es j n ' ys `" " , is = ysus, Kis = K ysus = K us ' gdzie: K = K ys yródBo prdowe sterowane prdowo i m is ik us ys A is Js Es j n ys `" " , is = ysus, Ais = Aysus = G'us gdzie: G'=Ays Zmodyfikowana metoda potencjaBów wzBowych - przykBad 1/2 4uf 1 2 3 c d 1 c 2 d 3 a e b 4 b e 2ie 1/4 2 uf f a f 4 Zmodyfikowana metoda potencjaBów wzBowych - przykBad 1 2 3 1 2 2 2 2 0 2 = -2 2 -2 2 0 YN= 3 4+1/4 0 0 4.25 1 0 2 0 JN= 0 3 Zmodyfikowana metoda potencjaBów wzBowych - przykBad a: 2ia+4=u1 ’! u1-2 b: ib=-2ie ie=4u3 ’! ib=-8u3 ’! ib+8u3=0 d: u3-u2=4uf uf=u3 ’! u3-u2=4u3 ’! u3-4u3-u2 Zmodyfikowana metoda potencjaBów wzBowych - przykBad 1 2 3 ia ib 2 2 0 1 id u1 1 0 1 u2 2 0 -2 2 0 u3 3 0 1 = ia ia 4 0 0 4.25 ib ib 0 -1 id id 0 1 -2 8 1 -1 1-4 Zmodyfikowana metoda potencjaBów wzBowych - przykBad 2 2 0 1 1 0 1 2 3 ia ib id u1 -2 2 0 0 1 0 0 1 u2 2 0 0 0 4.25 0 u3 3 0 0 -1 = ia ia 4 1 0 0 -2 ib ib 0 0 0 id id 0 0 0 8 0 1 0 0 -1 -3 0 0 0 Zmodyfikowana metoda potencjaBów wzBowych - przykBad u1 0.4179 u2 1.4328 u3 -0.4776 = ia -1.7910 ib 3.8209 id -2.0299 Metody macierzy rzadkich x x 0 0 x x x x îø ùø îø ùø ïø ïø x x x 0úø x x x xúø ïø úø ïø úø A = A- 1 = ïø úø ïø úø 0 x x x x x x x ïø úø ïø úø 0 0 x xûø x x x xûø ðø ðø x 0 0 0 1 x 0 0 îø ùø îø ùø ïø ïø x x 0 0úø 0 1 x 0úø ïø úø ïø úø L = U = ïø úø ïø úø 0 x x 0 0 0 1 x ïø úø ïø úø 0 0 x xûø 0 0 0 1ûø ðø ðø ZaBo|enia odno[nie macierzy A macierz strukturalnie x 0 x 0 îø ùø symetryczna ïø 0 x x 0úø aij = 0 aji = 0 ïø úø 1. A = lub ïø úø x x x x aij `" 0 aji `" 0 ïø 0 0 x xúø ðø ûø 2. aii `" 0 3. lii `" 0 4. lij = 0 - 2·(-6) - 3·4 = 0 - mimo to przyjmujemy |e np. lij = 6Å" 2 - 4 - 4Å" 2 = 0 powstaB nowy element niezerowy - nie rozwa|amy konkretnych warto[ci WpByw kolejno[ci operacji na liczb nowych elementów niezerowych x 0 0 x x 0 0 x îø ùø îø ùø ïø ïø 0 x 0 xúø 0 x 0 xúø ïø úø ïø úø A = Q = ïø úø ïø úø 0 0 x x 0 0 x x ïø ïø x x x xúø x x x xúø ðø ûø ðø ûø x x x x x x x x îø ùø îø ùø ïø ïø x x 0 0úø x x x xúø ïø úø ïø úø A = Q = ïø úø ïø úø x 0 x 0 x x x x ïø ïø x 0 0 xúø x x x xúø ðø ûø ðø ûø Okre[lanie nowych elementów niezerowych metod grafu Wystpuje analogia midzy rozkBadem LU a metod eliminacji Gaussa. Mo|na dyskutowa kolejno[ eliminacji zmiennych z równaD A Å" x = ¼ ëø öø n ìø ÷ø 1 xi = - aik Å" xk - µ " i ÷ø aii ìø k = 1 ìø ÷ø k `" i íø øø Eliminacj i jej wpByw na powstawanie nowych elementów niezerowych mo|na przedstawi poprzez odpowiedni graf odpowiadajcy macierzy A Okre[lanie liczby nowych elementów z u|yciem grafu Budujemy graf w ten sposób, |e ka|dej parze niezerowych niediagonalnych elementów (aij, aji) odpowiada krawdz Bczca wierzchoBki i oraz j. 1. Wybieramy wierzchoBek i. Dla ka|dej pary krawdzi (i, j) i (i, k) incydentnych z i, je[li j i k nie s poBczone krawdzi, tworzymy krawdz je Bczc. Utworzenie krawdzi oznacza powstanie nowego elementu niezerowego. 2. Usuwamy i oraz krawdzie do niego dochodzce. Je[li graf jeszcze istnieje, wracamy do punktu 1. j j k i k i m m Okre[lanie liczby nowych elementów - przykBad x1 b1 x x 0 x 0 îø ùø îø ùø îø ùø 1 2 ïø úø ïø úø ïø úø x2 b2 x x x 0 xúø ïø úø ïø úø ïø ïø ïø ïø 0 x x 0 0úø Å" x3 úø = b3 úø ïø úø ïø úø ïø úø 5 ïø x 0 0 x 0úø ïø úø ïø úø x4 b4 ïø úø ïø úø ïø úø 3 4 ïø úø ïø úø ïø 0 x 0 0 xûø ðø ûø ðø ûø úø x5 b5 ðø Okre[lanie liczby nowych elementów - przykBad 1 2 2 (4,2 i 2,4) 5 5 3 3 4 4 (4,2 i 2,4) (5,3 i 3,5) (4,3 i 3,4) 5 5 5 3 4 4 Okre[lanie liczby nowych elementów - przykBad 4 1 1 2 2 2 5 5 5 4 = 1 3 3 4 3 1 2 2 1 = 2 3 = 3 2 = 4 5 5 = 5 3 3 Algorytm porzdkowania prawie optymalnego Ï% Brak jest algorytmów porzdkowania optymalnego Ï% Przedstawiony algorytm w wikszo[ci przypadków daje optymalny porzdek Ï% Przyjmujemy struktur macierzy A (wspóBczynników równania) tak jak poprzednio Ï% Tworzymy na podstawie macierzy A graf nieskierowany tak jak poprzednio Algorytm porzdkowania prawie optymalnego Ï% Pocztkowo G jest grafem oryginalnym oraz J=1 0.W G znajdz wierzchoBek incydentny z tylko jedn krawdzi. Je[li jest, nadaj mu numer J, wykonaj 4 i wró do 1. Je[li nie ma, idz do 2. 1.W G znajdz wierzchoBek którego eliminacja nie wprowadzi nowej krawdzi. Je[li jest, nadaj mu numer J, wykonaj 4 i wró do 1. Je[li nie ma, idz do 3. Algorytm porzdkowania prawie optymalnego 3.Dla ka|dego wierzchoBka w G okre[l liczb n nowych elementów niezerowych przy zaBo|eniu, |e tylko on bdzie wyeliminowany. Wybierz ten, który ma najmniejsze n (je[li dla kilku n jest takie samo, wybierz ten który jest incydentny z najwiksz liczb krawdzi). Nadaj mu numer J, wykonaj 4 i wró do 2. Algorytm porzdkowania prawie optymalnego 4.Je[li zostaB tylko jeden nieprzenumerowany wierzchoBek, nadaj mu numer J i koniec algorytmu. W przeciwnym przypadku usuD nowo przenumerowany wierzchoBek i krawdzie z nim incydentne, dodaj krawdzie odpowiadajce nowym elementom niezerowym i zwiksz J o 1. Algorytm porzdkowania prawie optymalnego - przykBad 6 8 1 7 9 10 11 3 2 5 12 4 14 13 Algorytm porzdkowania prawie optymalnego - przykBad 6 8 7 9 10 11 3 2 5 12 14 13 1->1 4->2 Algorytm porzdkowania prawie optymalnego - przykBad 6 8 7 9 10 11 2 5 12 13 1->1 14->3 4->2 3->4 Algorytm porzdkowania prawie optymalnego - przykBad 6 8 7 9 10 11 5 12 13 1->1 14->3 2->5 4->2 3->4 Algorytm porzdkowania prawie optymalnego - przykBad 8 9 10 11 5 13 1->1 14->3 2->5 6->7 4->2 3->4 7->6 12->8 Algorytm porzdkowania prawie optymalnego - przykBad 8 9 10 11 13 1->1 14->3 2->5 6->7 5->9 4->2 3->4 7->6 12->8 Algorytm porzdkowania prawie optymalnego - przykBad 10 1->1 14->3 2->5 6->7 5->9 9->11 11->13 4->2 3->4 7->6 12->8 13->10 8->12 Algorytm porzdkowania prawie optymalnego - przykBad 10 1->1 14->3 2->5 6->7 5->9 9->11 11->13 4->2 3->4 7->6 12->8 13->10 8->12 10->14 Oprogramowanie do obliczeD i symulacji in|ynierskich Ï% Matlab Ï% Octave Ï% SciLab Matlab - podstawowe informacje Ï% Skrót od Matrix Laboratory Ï% Opracowany pod koniec lat 70 XXw. na uniwersytecie New Mexico Ï% W 1984 powstaje firma MathWorks; komercjalizacja programu Ï% W 2004 u|ywany przez ponad 1 000 000 u|ytkowników; de facto standard dla numerycznych obliczeD in|ynierskich Ï% http://www.mathworks.com/products/matlab/ Matlab - podstawowe informacje Ï% Dokonuje jedynie obliczeD numerycznych, cho mo|na doBczy interfejs dla obliczeD algebraicznych Ï% Niemal|e wszystko w Matlabie jest macierz Ï% Dostpnych jest bardzo wiele tzw. toolboxów, rozszerzajcych funkcjonalno[ podstawowego programu o np. optymalizacj, obliczenia statystyczne, obliczenia AI, przetwarzanie sygnaBów Ï% Istotnym dodatkiem jest Simulink, sBu|cy do wielodomenowego modelowania systemów Matlab - podstawy pracy Ï% Mo|na wyró|ni dwa podstawowe tryby pracy:  interaktywny  skryptowy Ï% Oba tryby s interpretowane Ï% W obu trybach mo|na u|ywa tych samych poleceD Ï% Skrypty Matlaba maj rozszerzenie .m Ï% Jest mo|liwo[ skompilowania kodu Matlaba tak, aby uzyska osobn aplikacj Matlab - zmienne Ï% Zmienne nie musz by deklarowane przed przypisaniem warto[ci (ale musz mie przypisan warto[ przed u|yciem w wyra|eniu) Ï% Warto[ci przypisuje si operatorem = Ï% Je[li nie zostaB przypisany do konkretnej zmiennej, ostatni wynik obliczeD jest zapisywany w zmiennej ans Ï% Aby odczyta warto[ zmiennej, nale|y poda jej nazw Ï% Aby wynik dziaBania nie byB wyprowadzany na ekran, polecenie nale|y zakoDczy [rednikiem ; octave-3.0.0.exe:21> myval=7 myval = 7 octave-3.0.0.exe:22> anotherval=8 anotherval = 8 octave-3.0.0.exe:23> myval=anotherval myval = 8 octave-3.0.0.exe:24> myval=thirdval error: `thirdval' undefined near line 24 column 7 error: evaluating assignment expression near line 24, column 6 octave-3.0.0.exe:24> myval myval = 8 octave-3.0.0.exe:25> myval=9; octave-3.0.0.exe:26> myval myval = 9 Matlab - proste obliczenia Ï% Mo|na u|ywa typowych operatorów arytmetycznych, nawiasów itd. Ï% Kolejno[ obliczeD jest zgodna z kolejno[ci operatorów arytmetycznych Ï% mo|na u|ywa operatorów porównaD: ==, <, >, <=, >=, !=. Wynikiem porównaD jest 1 (prawda) lub 0 (faBsz). Matlab traktuje zawsze warto[ci nie-zerowe jako prawd Ï% mo|na u|ywa operatorów logicznych: &, I, ~ octave-3.0.0.exe:40> anotherval=2+myval*8 anotherval = 74 octave-3.0.0.exe:41> 1>2 ans = 0 octave-3.0.0.exe:42> 5!=6 ans = 1 octave-3.0.0.exe:43> a=4 a = 4 octave-3.0.0.exe:44> b=3 b = 3 octave-3.0.0.exe:45> c=4*(a>b) c = 4 Matlab - wywoBanie funkcji Ï% Funkcje w Matlabie mog by:  wbudowane  zawarte w m-plikach Ï% Funkcj wywoBuje si podajc jej nazw i argumenty w nawiasach okrgBych octave-3.0.0.exe:48> x=sin(3.14) x = 0.0015927 octave-3.0.0.exe:49> y=cos(1) y = 0.54030 octave-3.0.0.exe:50> abs(-9) ans = 9 Macierze i wektory Ï% Nawet pojedyncza warto[ w Matlabie mo|e by traktowana jako macierz/wektor Ï% Matlab zawiera szereg operatorów umo|lwiajcych budowanie macierzy oraz odwoBywanie si do poszczególnych ich fragmentów Ï% Najprostsz metod utworzenia macierzy jest podanie jej warto[ci w nawiasach kwadratowych; warto[ci w rzdzie rozdziela si spacj lub przecinkiem, w kolumnie - [rednikiem octave-3.0.0.exe:53> a = [1 2 3; 4 5 6] a = 1 2 3 4 5 6 octave-3.0.0.exe:54> b = [1 2; 3 4; 5 6] b = 1 2 3 4 5 6 Macierze i wektory Ï% Dostp do elementu/elementów macierzy umo|liwia operator () (nawiasy okrgBe) Ï% W nawiasach podaje si wymagane indeksy, bdz zakres indeksów - u|ywajc operatora : (dwukropek) Ï% Je[li odwoBanie ma dotyczy wszystkich indeksów w danym wymiarze, mo|na u|y samego dwukropka Ï% Najpierw podaje si indeks wiersza, potem kolumny octave-3.0.0.exe:57> a(1, 1) ans = 1 octave-3.0.0.exe:58> a(2, 1) ans = 4 octave-3.0.0.exe:59> a(1, 2:3) ans = 2 3 octave-3.0.0.exe:60> a(1,:) ans = 1 2 3 octave-3.0.0.exe:61> a(:,:) ans = 1 2 3 4 5 6 OdwoBanie do elementu a wywoBanie funkcji Ï% Matlab stosuje ten sam operator do odwoBania do fragmentu macierzy i do wywoBania funkcji Ï% Powoduje to problemy je[li nazwa zmiennej jest identyczna z nazw funkcji octave-3.0.0.exe:75> sin(1) ans = 0.84147 octave-3.0.0.exe:76> sin = 7 sin = 7 octave-3.0.0.exe:77> sin(1) ans = 7 Konstruowanie macierzy Ï% Macierze mo|na konstruowa nie tylko ze skalarów, ale te| z innych macierzy Ï% Stosuje si te same operatory co poprzednio, ale zamiast skalarów wstawia macierze octave-3.0.0.exe:80> d = [1 2; 3 4] d = 1 2 3 4 octave-3.0.0.exe:81> e = [5 6; 7 8] e = 5 6 7 8 octave-3.0.0.exe:82> f = [d e] f = 1 2 5 6 3 4 7 8 octave-3.0.0.exe:83> g = [d; e] g = 1 2 3 4 5 6 7 8 octave-3.0.0.exe:84> h= [d; -1 -2] h = 1 2 3 4 -1 -2 Operacje na macierzach Ï% W przypadku macierzy dostpnych jest wicej operacji ni| w przypadku skalarów Ï% Ten sam operator mo|e mie nieco inne dziaBanie w przypadku kiedy dziaBa na skalarach, macierzach, bdz skalarach i macierzach jednocze[nie Ï% Ró|ne mo|e by te| dziaBanie funkcji w zale|no[ci czy argumentem jest skalar, wektor (macierz jednowymiarowa) czy macierz (wielowymiarowa) Operacje na macierzach Ï% * mno|enie macierzy Ï% / mno|enie przez odwrotno[ macierzy z prawej strony Ï% \ mno|enie odwrotno[ci macierzy z lewej strony Ï% .* ./ .\ mno|enie i dzielenie tablicowe Ï% * / mno|enie i dzielenie przez skalar Ï% + - dodawanie i odejmowanie macierzy Ï% + - dodawanie i odejmowanie macierzy i skalara Ï% ' transpozycja octave-3.0.0.exe:26> a = [1 2; 3 4] a = 1 2 3 4 octave-3.0.0.exe:27> b = [5 6; 7 8]; octave-3.0.0.exe:28> c = [1 2 3; 4 5 6]; octave-3.0.0.exe:29> a*b ans = 19 22 43 50 octave-3.0.0.exe:30> a.*b ans = 5 12 21 32 octave-3.0.0.exe:31> a*c ans = 9 12 15 19 26 33 octave-3.0.0.exe:32> a.*c error: product: nonconformant arguments (op1 is 2x2, op2 is 2x3) error: evaluating binary operator `.*' near line 32, column 2 octave-3.0.0.exe:32> c*a error: operator *: nonconformant arguments (op1 is 2x3, op2 is 2x2) error: evaluating binary operator `*' near line 32, column 2 octave-3.0.0.exe:34> c'*a ans = 13 18 17 24 21 30 octave-3.0.0.exe:35> a+b ans = 6 8 10 12 octave-3.0.0.exe:36> a+5 ans = 6 7 8 9 octave-3.0.0.exe:37> a*5 ans = 5 10 15 20 Funkcje macierzy Ï% Funkcje normalnie dziaBajce na skalarach po podaniu macierzy oblicz swoj warto[ dla ka|dego elementu macierzy (np. sin) Ï% Funkcje z zasady dziaBajce na macierzach/wektorach mog si zachowywa odmiennie (np. sum) octave-3.0.0.exe:43> a = [0.1 0.2; 0.3 0.4]; octave-3.0.0.exe:44> sin(a) ans = 0.099833 0.198669 0.295520 0.389418 octave-3.0.0.exe:45> b = [1 2 3]; octave-3.0.0.exe:46> sum(b) ans = 6 octave-3.0.0.exe:47> sum(b') ans = 6 octave-3.0.0.exe:48> sum(a) ans = 0.40000 0.60000 octave-3.0.0.exe:49> sum(a') ans = 0.30000 0.70000 Informacje o macierzach Ï% Funkcja size zwraca rozmiar macierzy, jako wektor n-elementowy Ï% size(x, 1) zwróci liczb wierszy macierzy Ï% size(x, 2) zwróci liczb kolumn macierzy octave-3.0.0.exe:52> size(b) ans = 1 3 octave-3.0.0.exe:53> size(b, 1) ans = 1 octave-3.0.0.exe:54> size(b, 2) ans = 3 Manipulacje macierzami Ï% Macierz mo|na rozszerzy podajc warto[ nieistniejcego elementu octave-3.0.0.exe:73> a = [1 2] a = 1 2 octave-3.0.0.exe:74> a(9) = 8 a = 1 2 0 0 0 0 0 0 8 Manipulacje macierzami Ï% Macierz mo|na zawzi wpisujc macierz pust octave-3.0.0.exe:80> a a = 1 2 0 0 0 0 0 0 8 octave-3.0.0.exe:81> a(3:8)=[] a = 1 2 8 Manipulacje macierzami Ï% Macierz mo|na:  przeksztaBci w macierz o innej liczbie wierzy i kolumn: reshape  obróci: rot90  odbi wzdBu| osi: fliplr, flipud  przeksztaBci w macierz o elementach przesunitych koBowo: circshift  sortowa: sort, sortrows m-pliki Ï% m-pliki mog zawiera  skrypty  funkcje Ï% Skrypty pracuj na zmiennych aktualnie istniejcych w [rodowisku Ï% Funkcje pracuj na przekazanych argumentach; zmienne tworzone w funkcji s lokalne dla tej funkcji Ï% WywoBanie skryptu lub funkcji nastpuje po podaniu nazwy m-pliku (bez rozszerzenia) oraz argumentów (tylko dla funkcji) Funkcje Ï% m-plik o nazwie nazwa_funkcji zawierajcy na pocztku deklaracj: function [rezultat1, rezultat2, ...]= nazwa_funkcji(argument1,argument2, ...) i opcjonalnie koDczcy si instrukcj return Funkcje - przykBad Ï% Zawarto[ pliku circle.m function [area, circumference] = circle(radius) area = pi * radius^2; circumference = 2 * pi * radius;  WywoBan ie octave-3.0.0.exe:5> [a, c] = circle(5) a = 78.540 c = 31.416 octave-3.0.0.exe:6> x = circle(5); octave-3.0.0.exe:7> x x = 78.540 Funkcje Ï% Aby funkcja mogBa zosta wywoBana, musi by  w aktualnym katalogu  w katalogu na [cie|ce dostpu Matlaba Ï% Aktualny katalog mo|na sprawdzi komend pwd, zmieni komend cd Ï% Zcie|k dostpu mo|na sprawdzi komend path, modyfikowa komendami addpath, rmpath Ï% Aktualny katalog jest zawsze przeszukiwany pierwszy Komentarze Ï% Komentarz mo|na umie[ci znakiem % Ï% Tekst od % do koDca linii jest traktowany jako komentarz Ï% Komentarz zawarty na pocztku pliku funkcji (przed deklaracj) mo|e by wy[wietlany komend help % function calculating area and circumference of a circle % inputs: circle radius function [area, circumference] = circle(radius) area = pi * radius^2; % compute area circumference = 2 * pi * radius;% compute circumference octave-3.0.0.exe:14> [a, c] = circle(5) a = 78.540 c = 31.416 octave-3.0.0.exe:15> help circle function calculating area and circumference of a circle inputs: circle radius Instrukcje sterujce if warunek1 instrukcje1 elseif warunek2 instrukcje2 else instrukcje3 end switch zmienna case warto[1 instrukcje1 case warto[2 instrukcje2 ... otherwise instrukcjeN end function result = testif(first, second) if first > second result = first; else result = second; end function result = testswitch(condition, first, second, third) switch condition case 1 result = first; case 2 result = second; case 3 result = third; otherwise result = 0; end Ptle Ï% Matlab pozwala korzysta z ptli typu for i while for zmienna = warto[_pocztkowa:przyrost:warto[_koDcowa instrukcje end while warunek instrukcje end function result = testfor(start, stop) result = []; for i = start : 1 : stop result = [result circle(i)]; end octave-3.0.0.exe:25> testfor(5, 10) ans = 78.540 113.097 153.938 201.062 254.469 314.159 octave-3.0.0.exe:26> x = testfor(5, 10); octave-3.0.0.exe:27> x x = 78.540 113.097 153.938 201.062 254.469 314.159 function result = testwhile(start, max) result = []; r = start; area = circle(r); while area <= max result = [result area]; r = r + 1; area = circle(r); end octave-3.0.0.exe:33> testwhile(5, 1000) ans = Columns 1 through 7: 78.540 113.097 153.938 201.062 254.469 314.159 380.133 Columns 8 through 13: 452.389 530.929 615.752 706.858 804.248 907.920 octave-3.0.0.exe:34> testwhile(50, 1000) ans = [](0x0) Ptle Ï% Matlab umo|liwia stosowanie sBów kluczowych break i continue Typy Ï% Podstawowym typem jest warto[ zmiennoprzecinkowa Ï% Format wyprowadzania danych (ale nie precyzj obliczeD) mo|na zmieni poleceniem format AaDcuchy tekstowe Ï% AaDcuchy tekstowe s traktowane jako wektory Ï% LiteraBy tekstowe umieszcza si w pojedynczych cudzysBowach octave-3.0.0.exe:49> text = 'ala ma kota' text = ala ma kota octave-3.0.0.exe:50> text(3) ans = a octave-3.0.0.exe:51> text(5:11) ans = ma kota octave-3.0.0.exe:52> 2 * text ans = 194 216 194 64 218 194 64 214 222 232 194 Grafika Ï% Wykres we wspóBrzdnych kartezjaDskich tworzy si instrukcj plot Ï% Je[li argument jest jeden, jako odcite przyjmuje si indeksy wektora Ï% Je[li argumenty s dwa, pierwszy to wektor odcitych, drugi - rzdnych octave-3.0.0.exe:59> x = [1 2 3 7 8 9]; octave-3.0.0.exe:60> y = x.^2; octave-3.0.0.exe:61> plot(x, y); octave-3.0.0.exe:62> plot(y); Grafika Ï% Aby zmieni wygld linii mo|na u|y argumentu format, np. octave-3.0.0.exe:71> plot(x, y, '-o'); octave-3.0.0.exe:72> plot(x, y, 'x'); Grafika 3D Ï% Wykres w 3 wymiarach mo|na uzyska komend plot3 Ï% Argumentami s wektory zawierajce wspóBrzdne (x, y, z) kolejnych punktów wykresu octave-3.0.0.exe:52> z = [0:0.05:5]; octave-3.0.0.exe:53> plot3 (cos(2*pi*z), sin(2*pi*z), z, ";helix;"); Grafika 3D Ï% Aby wykre[li powierzchni w trzech wymiarach, nale|y u|y instrukcji mesh Ï% Argumentami s:  wektor indeksów dla osi x (rozmiar m)  wektor indeksów dla osi y (rozmiar n)  macierz zawierajca warto[ci dla wszystkich par indeksów x i y (rozmiar m na n) octave-3.0.0.exe:65> x = [0:0.05:5]'; octave-3.0.0.exe:66> y = x'; octave-3.0.0.exe:67> z = sin(x*y); octave-3.0.0.exe:68> mesh(x, y, z) Operacje na plikach Ï% Matlab mo|e czyta i zapisywa wiele formatów plików Ï% Podstawowym plikiem jest plik binary, w którym znajduj si zmienne (macierze) Ï% Do zapisu sBu|y polecenie save, do odczytu - load Ï% save nazwa_pliku zmienna1 zmienna2 zmienna3 Ï% load nazwa_pliku octave-3.0.0.exe:17> a = [1 2; 3 4]; octave-3.0.0.exe:18> b = 7; octave-3.0.0.exe:19> save test.dat a b octave-3.0.0.exe:20> clear octave-3.0.0.exe:21> a error: `a' undefined near line 21 column 1 octave-3.0.0.exe:21> b error: `b' undefined near line 21 column 1 octave-3.0.0.exe:21> load test.dat octave-3.0.0.exe:22> a a = 1 2 3 4 octave-3.0.0.exe:23> b b = 7 Operacje na plikach Ï% Alternatywnie mo|na stosowa zapis/odczyt w formacie tekstowym Ï% Jest to wygodne przy imporcie danych z innych zródeB Ï% W przypadku zapisu nie s zapisywane nazwy zmiennych, poszczególne zmienne nie s od siebie oddzielane octave-3.0.0.exe:36> save -ascii test.dat a b octave-3.0.0.exe:37> clear octave-3.0.0.exe:38> a error: `a' undefined near line 38 column 1 octave-3.0.0.exe:38> b error: `b' undefined near line 38 column 1 octave-3.0.0.exe:38> load test.dat error: load: test.dat: inconsistent number of columns near line 3 error: load: unable to extract matrix size from file `test.dat' 1.00000000e+000 2.00000000e+000 3.00000000e+000 4.00000000e+000 7.00000000e+000 octave-3.0.0.exe:45> a = [1 2; 3 4]; octave-3.0.0.exe:46> c = [5 6; 7 8]; octave-3.0.0.exe:47> save -ascii test.dat a c octave-3.0.0.exe:48> clear octave-3.0.0.exe:49> a error: `a' undefined near line 49 column 1 octave-3.0.0.exe:49> c error: `c' undefined near line 49 column 1 octave-3.0.0.exe:49> load test.dat octave-3.0.0.exe:50> ans octave-3.0.0.exe:51> test test = 1 2 3 4 5 6 7 8 1.00000000e+000 2.00000000e+000 3.00000000e+000 4.00000000e+000 5.00000000e+000 6.00000000e+000 7.00000000e+000 8.00000000e+000

Wyszukiwarka

Podobne podstrony:
barcz,metody numeryczne, opracowanie wykładu
Metody numeryczne, wykład z DMCSu
Metody numeryczne wykład
METODY NUMERYCZNE wszystko co trzeba do zadan z wykładu
Metody numeryczne w11
metody numeryczne i w1
metody numeryczne i w2
Metody numeryczne7
metody numeryczne w1
metody numeryczne cw 1
Metody numeryczne macierze
Metody numeryczne aproksymacja
3 Metody numeryczne rozwiązywania równań algebraicznych
Metody numeryczne w6
KRAJOZNAWSTWO wyklad 5 Metodyka organizowania imprez krajoznawczych

więcej podobnych podstron