Metody numeryczne i statystyka RozwiÄ…zywanie równaÅ„ ró\niczkowych Wersja robocza Ró\niczkowanie numeryczne metoda ró\niczkowania jednopunktowego w przód Pierwsza pochodna funkcji f (x) zdefiniowana jest jako Chcemy obliczyć pochodnÄ… funkcji f (x). f (x + h) - f (x) f '(x) = lim h0 h Zagadnienie to mo\na rozwiÄ…zać numerycznie poprzez proste przybli\enie przy ustalonej wielkoÅ›ci kroku h y(x0 + h) - y(x0 ) y'(x0 ) H" h Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 2 Ró\niczkowanie numeryczne metoda ró\niczkowania jednopunktowego w przód Pierwsza pochodna funkcji f (x) zdefiniowana jest jako Chcemy obliczyć pochodnÄ… funkcji f (x). f (x + h) - f (x) f '(x) = lim h0 h Zagadnienie to mo\na rozwiÄ…zać numerycznie poprzez proste przybli\enie przy ustalonej wielkoÅ›ci kroku h y(x0 + h) - y(x0 ) y'(x0 ) H" h W celu analizy popeÅ‚nianego bÅ‚Ä™du wyra\enie y (x0+ h) mo\na rozwinąć w szereg Taylora w zale\noÅ›ci od x0 h2 h3 y(x0 + h)= y(x0)+ h Å" y'(x0)+ Å" y''(x0 ) + Å" y'''(x0 ) + ... 2! 3! Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 3 Ró\niczkowanie numeryczne metoda ró\niczkowania jednopunktowego w przód Pierwsza pochodna funkcji f (x) zdefiniowana jest jako Chcemy obliczyć pochodnÄ… funkcji f (x). f (x + h) - f (x) f '(x) = lim h0 h Zagadnienie to mo\na rozwiÄ…zać numerycznie poprzez proste przybli\enie przy ustalonej wielkoÅ›ci kroku h y(x0 + h) - y(x0 ) y'(x0 ) H" h W celu analizy popeÅ‚nianego bÅ‚Ä™du wyra\enie y (x0+ h) mo\na rozwinąć w szereg Taylora w zale\noÅ›ci od x0 h2 h3 y(x0 + h)= y(x0)+ h Å" y'(x0)+ Å" y''(x0 ) + Å" y'''(x0) + ... 2! 3! Po odjÄ™ciu od obu stron y (x0) i podzieleniu obu stron przez h otrzymujemy y(x0 + h)- y(x0) h h2 = y'(x0)+ Å" y''(x0) + Å" y'''(x0) + ... h 2 3! Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 4 Ró\niczkowanie numeryczne metoda ró\niczkowania jednopunktowego w przód Pierwsza pochodna funkcji f (x) zdefiniowana jest jako Chcemy obliczyć pochodnÄ… funkcji f (x). f (x + h) - f (x) f '(x) = lim h0 h Zagadnienie to mo\na rozwiÄ…zać numerycznie poprzez proste przybli\enie przy ustalonej wielkoÅ›ci kroku h y(x0 + h) - y(x0 ) y'(x0 ) H" h W celu analizy popeÅ‚nianego bÅ‚Ä™du wyra\enie y (x0+ h) mo\na rozwinąć w szereg Taylora w zale\noÅ›ci od x0 h2 h3 y(x0 + h)= y(x0)+ h Å" y'(x0)+ Å" y''(x0 ) + Å" y'''(x0) + ... 2! 3! Po odjÄ™ciu od obu stron y (x0) i podzieleniu obu stron przez h otrzymujemy y(x0 + h)- y(x0) h h2 = y'(x0)+ Å" y''(x0 ) + Å" y'''(x0 ) + ... = y'(x0)+ O(h) , gdzie O(h) bÅ‚Ä…d obciÄ™cia h 2 3! Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 5 Ró\niczkowanie numeryczne metoda ró\niczkowania trójpunktowego Przybli\one wartoÅ›ci pochodnej funkcji mo\na tak\e obliczyć posÅ‚ugujÄ…c siÄ™ algorytmem ró\niczkowania trójpunktowego. Mo\na z niego skorzystać gdy wartoÅ›ci zmiennej niezale\nej podawane sÄ… ze staÅ‚ym krokiem h i znane sÄ… wartoÅ›ci zmiennej zale\nej y(x0 - h), y(x0), y(x0 + h) Wartość pochodnych okreÅ›la siÄ™ w przybli\eniu jako 1 y'(x0 - h) = [- 3y(x0 - h) + 4y(x0 ) - y(x0 + h)] 2h 1 y'(x0 ) = [- y(x0 - h) + y(x0 + h)] 2h 1 y'(x0 + h) = [y(x0 - h) - 4y(x0 ) + 3y(x0 + h)] 2h Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 6 Ró\niczkowanie numeryczne metoda ró\niczkowania trójpunktowego W praktyce korzysta siÄ™ ze wzorów zapisanych iteracyjnie: 1 ' y1 = [- 3y1 + 4y2 - y3] - pierwszy punkt 2h 1 yi' = [- yi-1 + yi+1] , i = 2,3,...,n -1 - pozostaÅ‚e punkty 2h 1 ' yn = [yn-2 - 4yn-1 + 3yn] - ostatni punkt 2h Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 7 RozwiÄ…zywanie równaÅ„ ró\niczkowych metoda Eulera Poszukiwane jest rozwiÄ…zanie równania ró\niczkowego postaci: dy = f (x, y(x)), x "[x0 ,b] dx z warunkiem poczÄ…tkowym y(x0 ) = y0 RozwiÄ…zaniem omawianego problemu jest poszukiwana wartość funkcji y = y(x) w x = x1 = x0 + h Przyjmijmy, \e y* = y (x1) i krzywa (A0A1*) sÄ… rozwiÄ…zaniem zadania. ZnajÄ…c punkt A0(x0, y0) (warunek poczÄ…tkowy) mo\na obliczyć wartość funkcji f w tym punkcie. Jest to współczynnik kierunkowy stycznej do y (x) w punkcie x0. NastÄ™pnie wyznaczany jest punkt przeciÄ™cia tej stycznej z prostÄ… x = x1 i oznaczany przez A1(x1, y1). Takie postÄ™powanie prowadzi do powstania bÅ‚Ä™du metody przy wyznaczaniu wartoÅ›ci yi Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 8 RozwiÄ…zywanie równaÅ„ ró\niczkowych metoda Eulera Spróbujmy sformalizować sposób obliczania yi w postaci wzoru. Z trójkÄ…ta (A0A1P) mamy: y1 - y0 = f (x0 , y0 ) h stÄ…d y1 = y0 + h Å" f (x0 , y0 ) ChcÄ…c wyznaczyć wartość funkcji y2 w punkcie x2 = x1 + h = x0 + 2 h postÄ™pujemy analogicznie, tylko zamiast korzystać z warunku poczÄ…tkowego korzystamy z uprzednio obliczonych wartoÅ›ci (x1, y1). UogólniajÄ…c takie postÄ™powanie mo\na zapisać: yi = yi-1 + h Å" f (xi-1, yi-1), i = 1,2,... gdzie yi jest wartoÅ›ciÄ… funkcji stanowiÄ…cej rozwiÄ…zanie równania ró\niczkowego w xi Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 9 Metoda Eulera MetodÄ™ Eulera mo\na otrzymać w inny sposób. ZastÄ™pujÄ…c funkcjÄ™ y = y (x) w x = x0 + h jej rozwiniÄ™ciem w szereg Taylora otrzymujemy: h2 y(x0 + h)= y(x0)+ h Å" y'(x0)+ Å" y''(x0 ) + ... 2! WykorzystujÄ…c dwa pierwsze wyrazy rozwiniÄ™cia w szereg Taylora: y(x0 + h) E" y(x0 )+ h Å" y'(x0 ) co mo\na inaczej napisać: y1 = y0 + h Å" f (x0 , y0 ) Podany wzór jest identyczny jak uzyskany uprzednio. PowtarzajÄ…c takie postÄ™powanie jak w poprzednim wyprowadzeniu wzór ten mo\na uogólnić Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 10 Metoda Rungego-Kutty rzÄ™du II Przypuśćmy, \e znamy y (xi -1) i chcemy wyznaczyć przybli\enie yi wartoÅ›ci y (xi -1+ h) . Idea metod Rungego-Kutty polega na obliczeniu wartoÅ›ci f (x, y) w pewnych szczególnie dobranych punktach le\Ä…cych w pobli\u krzywej rozwiÄ…zania w przedziale (xi -1, xi -1+ h) oraz utworzeniu takiej kombinacji tych wartoÅ›ci, która z dobrÄ… dokÅ‚adnoÅ›ciÄ… daje przyrost yi yi -1 Rozwa\my metodÄ™ Rungego-Kutty II rzÄ™du, opartÄ… na przybli\eniu rozwiÄ…zania równania ró\niczkowego za pomocÄ… krzywej opisanej wielomianem stopnia II (parabolÄ…). Równanie ró\niczkowe ma postać dy = f (x, y(x)) , y(x0) = y0 dx Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 12 Metoda Rungego-Kutty rzÄ™du II KorzystajÄ…c z wÅ‚asnoÅ›ci paraboli, dla której współczynnik kierunkowy siecznej T równy Å›redniej arytmetycznej współczynników kierunkowych stycznych i w punktach o współrzÄ™dnych odpowiednio (x0, y0), (x1, y1). Pozwala to na przybli\enie rozwiÄ…zania równania ró\niczkowego Å‚amanÄ… utworzonÄ… z siecznych, a nie stycznych jak miaÅ‚o to miejsce w metodzie Eulera. Poniewa\ nie jest znana postać rozwiÄ…zania rzÄ™dnÄ… y1 przybli\a siÄ™ E y1 wartoÅ›ciÄ… wyznaczonÄ… z metody Eulera Mo\na zapisać przybli\enie poszukiwanego rozwiÄ…zania w punkcie o współrzÄ™dnych (x1, y1) w sposób nastÄ™pujÄ…cy S0 + S1 öÅ‚ y1 = y0 + hëÅ‚ ìÅ‚ ÷Å‚ 2 íÅ‚ Å‚Å‚ PodstawiajÄ…c za współczynnik kierunkowy stycznej S0 wyra\enie f (x0, y0 ) oraz za współczynnik kierunkowy stycznej S1 wyra\enie E y1 f (x1, ) otrzymuje siÄ™ 1 E y1 = y0 + h[f (x0, y0)+ f (x1, y1 )] 2 Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 13 Metoda Rungego-Kutty rzÄ™du II PamiÄ™tajÄ…c o tym, \e: E x1 = x0 + h oraz y1 = hf (x0, y0) wyra\enie na y1 mo\na zapisać nastÄ™pujÄ…co 1 y1 = y0 + [h Å" f (x0, y0)+ hÅ" f (x0 + h, y0 + hÅ" f (x0, y0))] 2 OznaczajÄ…c k1 = hf (x0, y0) Wyra\enie przyjmuje postać 1 y1 = y0 + [k1 + hÅ" f (x0 + h, y0 + k1)] 2 h Å" f (x0 + h, y0 + k1) ZastÄ™pujÄ…c wyra\enie współczynnikiem k2 otrzymuje siÄ™ wzór na metodÄ™ Rungego-Kutty II w postaci 1 y1 = y0 + [k1 + k2] 2 k1 = hf (x0, y0) k2 = hf (x0 + h, y0 + k1) Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 14 Metoda Rungego-Kutty rzÄ™du II WyznaczajÄ…c kolejne wartoÅ›ci poszukujemy funkcji yi stanowiÄ…cej przybli\one rozwiÄ…zanie równania ró\niczkowego w oparciu o sieczne wedÅ‚ug przedstawionej metodyki wzór metody Rungego-Kutty II przyjmuje ogólnÄ… postać: 1 yi = yi-1 + [k1 + k2] 2 k1 = hf (xi-1, yi-1) k2 = hf (xi-1 + h, yi-1 + k1) dla i = 1,2,..., N Ogólnie metody Rungego-Kutty polegajÄ… na takim dobraniu współczynników a, b, & , Ä…, ², Å‚,& oraz liczb R1, R2,& tak aby wartość yi okreÅ›lona przez ciÄ…g równaÅ„ byÅ‚a mo\liwie jak najbli\sza dokÅ‚adnej wartoÅ›ci: yi = yi-1 + R1k1 + R2k2 +...+ Rnkn , i =1,2..., n =1,2,... k1 = hf (xi-1, yi-1) k2 = hf (xi-1 + ah, yi-1 +Ä…k1) k3 = hf (xi-1 + bh, yi-1 + ²k1 + Å‚k2) ... Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 15 Metoda Rungego-Kutty rzÄ™du IV Najbardziej znana jest metoda Rungego-Kutty czwartego rzÄ™du opisana zale\noÅ›ciÄ… 1 yi = yi-1 + (k1 + 2 Å" k2 + 2 Å" k3 + k4 ) 6 gdzie k1 = h Å" f (xi-1, yi-1) k1 h k2 = h Å" f (xi-1 + , yi-1 + ) 2 2 h k2 k3 = h Å" f (xi-1 + , yi-1 + ) 2 2 k4 = h Å" f (xi-1 + h, yi-1 + k3 ) Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 16 RozwiÄ…zywanie równaÅ„ ró\niczkowych pierwszego rzÄ™du PrzykÅ‚ad 1 - RozÅ‚adowanie kondensatora przez opornik Rozpatrzmy obwód elektryczny w którym kondensator W o pojemnoÅ›ci C zostaÅ‚ naÅ‚adowany do napiÄ™cia U =U0. W chwili t = 0 zostaÅ‚ zwarty wÅ‚Ä…cznik W i nastÄ…piÅ‚o rozÅ‚adowanie kondensatora przez oporność R Q dQ dU U = , I = = C , Q - Å‚adunek C dt dt dU U C + = 0 dt R Jest to równanie ró\niczkowe zwyczajne rzÄ™du I . Aby je rozwiÄ…zać dzielimy obie strony równania przez C oraz po lewej stronie pozostawiamy najwy\szÄ… pochodnÄ… U dU U = - dt RC Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 17 Algorytm metody Eulera Etap: Start 1. Zdefiniowanie funkcji f (x, y (x)), przyjÄ™cie granic f (x, y (x)), x0, xk, N, y0 badanego przedziaÅ‚u [x0, xk], liczby kroków N, wartoÅ›ci poczÄ…tkowej y0 h = (xk - x0) / N 2. Obliczenie dÅ‚ugoÅ›ci kroku h, dyskretyzacja przedziaÅ‚u xi=h·i, i=1,2,...,N [x0, xk] nie id"N tak 3. PÄ™tla obliczajÄ…ca rekurencyjnie i-te wartoÅ›ci yi na yi+1=yi+h·f(xi,y(xi)) podstawie wzoru Eulera yi = yi-1 + h Å" f (xi-1, yi-1), i = 1,2,..., N i=i+1 y(xi) 4. Wynik dyskretna funkcja y (xi ) bÄ™dÄ…ca przybli\eniem rozwiÄ…zania równania ró\niczkowego Koniec Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 18 RozwiÄ…zywanie równaÅ„ ró\niczkowych pierwszego rzÄ™du RozwiÄ…zanie metodÄ… Eulera dla danych: napiÄ™cie poczÄ…tkowe U0 = 10 [V] w chwili t0 = 0 [s], oporność R = 10 [&!], pojemność C = 0,1 [F], czas koÅ„cowy tk = 2 [s], ilość kroków N = 4 Dla równania ró\niczkowego o postaci dy = f (x, y(x)), x "[x0 , xk ] dx Wzór iteracyjny Eulera ma postać: yi = yi-1 + h Å" f (xi-1, yi-1), i = 1,2,..., N Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 19 RozwiÄ…zywanie równaÅ„ ró\niczkowych pierwszego rzÄ™du RozwiÄ…zanie metodÄ… Eulera dla danych: napiÄ™cie poczÄ…tkowe U0 = 10 [V] w chwili t0 = 0 [s], oporność R = 10 [&!], pojemność C = 0,1 [F], czas koÅ„cowy tk = 2 [s], ilość kroków N = 4 Dla równania ró\niczkowego o postaci dy = f (x, y(x)), x "[x0 , xk ] dx Wzór iteracyjny Eulera ma postać: yi = yi-1 + h Å" f (xi-1, yi-1), i = 1,2,..., N Za funkcjÄ™ f (x, y(x)) mo\na podstawić: 1 a = - = -1 , y(x) = U (t) , gdzie f (x, y(x)) = a Å" y(x) RC W przedziale [x0,xk] rozwiÄ…zanie jest badane dla wartoÅ›ci xi = xi-1+ h, gdzie x0 = 0, xk = 2, h = 0,5 Wartość poczÄ…tkowa y0 = U0 = 10 Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 20 RozwiÄ…zywanie równaÅ„ ró\niczkowych pierwszego rzÄ™du Dla pierwszego kroku obliczeÅ„ (i=1): y1 = y0 + h Å" a Å" y0 = 0 - 0,25 Å"1Å"10 = 10 Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 21 RozwiÄ…zywanie równaÅ„ ró\niczkowych pierwszego rzÄ™du Dla pierwszego kroku obliczeÅ„ (i=1): y1 = y0 + h Å" a Å" y0 = 0 - 0,25 Å"1Å"10 = 10 Dla drugiego kroku obliczeÅ„ (i=2): y2 = y1 + h Å" a Å" y1 = 10 - 0,5 Å"1Å"10 = 5 Dla trzeciego kroku obliczeÅ„ (i=3): y3 = y2 + h Å" a Å" y2 = 5 - 0,25Å"1Å" 5 = 0,25 Dla czwartego kroku obliczeÅ„ (i=4): y4 = y3 + h Å" a Å" y3 = 0,25 - 0,25 Å"1Å"10 = 0.625 Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 22 RozwiÄ…zywanie równaÅ„ ró\niczkowych pierwszego rzÄ™du Dla pierwszego kroku obliczeÅ„ (i=1): y1 = y0 + h Å" a Å" y0 = 0 - 0,25 Å"1Å"10 = 10 Dla drugiego kroku obliczeÅ„ (i=2): y2 = y1 + h Å" a Å" y1 = 10 - 0,5 Å"1Å"10 = 5 Dla trzeciego kroku obliczeÅ„ (i=3): y3 = y2 + h Å" a Å" y2 = 5 - 0,25Å"1Å" 5 = 0,25 Dla czwartego kroku obliczeÅ„ (i=4): y4 = y3 + h Å" a Å" y3 = 0,25 - 0,25 Å"1Å"10 = 0.625 Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 23 RozwiÄ…zywanie równaÅ„ ró\niczkowych wy\szych rzÄ™dów Przedstawione wczeÅ›niej metody pozwalajÄ… na rozwiÄ…zywanie równaÅ„ ró\niczkowych zwyczajnych I rzÄ™du. Równanie ró\niczkowe wy\szego rzÄ™du mo\na rozwiÄ…zać po sprowadzaniu go do ukÅ‚adu równaÅ„ ró\niczkowych rzÄ™du I W przypadku rozwiÄ…zywania równaÅ„ ró\niczkowych wy\szego rzÄ™du ( y(n) = f (x, y, y',..., y(n-1)), y(x0 ) = y0 , y'(x0 ) = y'0 ,..., y(n-1) (x0 ) = y0n-1) równanie zostaje sprowadzone do ukÅ‚adu równaÅ„ rzÄ™du I przy wykorzystaniu metody podstawienia zmiennych. StosujÄ…c notacjÄ™ y1 = y, y2 = y', y3 = y'', .... , yn = y(n-1) równowa\ny ukÅ‚ad równaÅ„ przybiera postać y1'= y2 Å„Å‚ ôÅ‚y '= y3 ôÅ‚ 2 òÅ‚ ... ôÅ‚ ôÅ‚yn '= f y1, y2 ,..., yn (x, ) ół Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 24 RozwiÄ…zywanie równaÅ„ ró\niczkowych wy\szych rzÄ™dów PrzykÅ‚ad 2 Rozpatrzmy ukÅ‚ad drgajÄ…cy o jednym stopniu swobody x (t), masie m, współczynniku sprÄ™\ystoÅ›ci k, współczynniku tÅ‚umienia b. Wymuszeniem jest siÅ‚a harmoniczna F(t)=F·sin(Ét) , gdzie F oznacza amplitudÄ™, É czÄ™stość drgaÅ„ Równanie ruchu opisujÄ…ce ten ukÅ‚ad ma postać: && & mx + bx + kx = F(t) Jest to równanie ró\niczkowe zwyczajne rzÄ™du II. Aby je sprowadzić do ukÅ‚adu dwóch równaÅ„ ró\niczkowych rzÄ™du I dzielimy je stronami przez m b k F(t) && & x + x + x = m m m Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 25 RozwiÄ…zywanie równaÅ„ ró\niczkowych wy\szych rzÄ™dów Po lewej stronie pozostawiamy najwy\szÄ… pochodnÄ… x b k F(t) && - x - x + & x = m m m Dokonujemy nastÄ™pujÄ…cego podstawienia: x = x1 Å„Å‚ òÅ‚x = x2 &1 ół Równanie ró\niczkowe mo\na zapisać jako ukÅ‚ad dwóch równaÅ„ rzÄ™du I: & x1 = x2 Å„Å‚ ôÅ‚ òÅ‚ k b F(t) &2 ôÅ‚x = - m x1 - m x2 + m ół UkÅ‚ad równaÅ„ zapisany w postaci macierzowej: 0 1 îÅ‚ Å‚Å‚ & x1 x1 îÅ‚ 0 Å‚Å‚ îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ ïÅ‚ śł ïÅ‚ = Å" + F(t)śł ïÅ‚x śł ïÅ‚x śł ïÅ‚- k - b śł ïÅ‚ śł &2 ðÅ‚ ûÅ‚ ðÅ‚ 2 ûÅ‚ ðÅ‚ m m ðÅ‚ m ûÅ‚ ûÅ‚ & X = A Å" X + B Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 26 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych Dane: Masa m = 1 [kg], sprÄ™\ystość k = 100, tÅ‚umienie b = 0,1. Wymuszenie siÅ‚a harmoniczna F (t) = F·sin(Ét) o amplitudzie F = 1 [N]. Szukane jest przemieszczenie x masy m w okolicy czÄ™stoÅ›ci rezonansowej ukÅ‚adu w przedziale czasu [t0 = 0, tk = 10 ] przy zadanych warunkach poczÄ…tkowych x0 = 0, x 0 = 0 Aby rozwiÄ…zać ukÅ‚ad przy pomocy funkcji Å›rodowiska Matlab nale\y: & X 1. Napisać m-plik funkcyjny zwracajÄ…cy wartoÅ›ci funkcji f (x, t ) zapisanej macierzowo jako ,w którym: " PrzyjÄ™te zostajÄ… staÅ‚e parametry opisujÄ…ce ukÅ‚ad m, k, F, b " Na podstawie wyznaczonego wczeÅ›niej ukÅ‚adu równaÅ„ ró\niczkowych (zapisanego w postaci macierzowej) obliczane sÄ… wartoÅ›ci prawej strony równania 0 1 0 îÅ‚ Å‚Å‚ îÅ‚ Å‚Å‚ & x1 îÅ‚ Å‚Å‚ x1 îÅ‚ Å‚Å‚ , & ïÅ‚ śł ïÅ‚ X = = A Å" X + B A = , X = , B = F(t)śł, ïÅ‚x śł ïÅ‚x śł ïÅ‚- k - b śł ïÅ‚ śł &2 ðÅ‚ 2 ûÅ‚ ðÅ‚ ûÅ‚ ðÅ‚ m m ðÅ‚ ûÅ‚ ûÅ‚ m 2. Napisać m-plik skryptowy definiujÄ…cy warunki poczÄ…tkowe oraz rozwiÄ…zujÄ…cy równanie ró\niczkowe, w którym: " OkreÅ›lony jest przedziaÅ‚ argumentów rozwiÄ…zania [t0, tk] " Wprowadzone sÄ… warunki poczÄ…tkowe x0 , x 0 " RozwiÄ…zane jest ukÅ‚ad równaÅ„ zapisany w pliku funkcyjnym przy wykorzystaniu funkcji Å›rodowiska (ode23, ode45) " Przedstawione jest rozwiÄ…zanie w postaci wykresu funkcji x(t) Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 27 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych SkÅ‚adnia funkcji (ode23, ode45,& ) rozwiÄ…zujÄ…cej równania ró\niczkowe zwyczajne (ODE ang. ordinary differential equations) rzÄ™du I jest nastÄ™pujÄ…ca (w MATLAB 6.5): [X,Y] = solver(odefun,tspan,y0,options) gdzie solver oznacza nazwÄ™ funkcji reprezentujÄ…cej algorytm rozwiÄ…zania. Funkcje ode23 i ode45 korzystajÄ… z par metod Rungego-Kutty odpowiednio: rzÄ™du 2 i 3 (ode23) oraz 4 i 5 (ode45). Funkcje te zwracajÄ… wektor Y stanowiÄ…cy rozwiÄ…zanie równania oraz X wektor argumentów funkcji, który wyznaczany jest adaptacyjnie na podstawie zaÅ‚o\onej tolerancji bÅ‚Ä™du odefun odwoÅ‚anie poÅ›rednie do funkcji znajdujÄ…cej siÄ™ po prawej stronie równania ró\niczkowego przy pomocy znaku @, na przykÅ‚ad - @nazwa, gdzie nazwa oznacza nazwÄ™ funkcji tspan - wektor okreÅ›lajÄ…cy granice przedziaÅ‚u w którym rozwiÄ…zywane jest równanie [x0 xk] y0 wektor okreÅ›lajÄ…cy warunki poczÄ…tkowe y(x0) options opcjonalny parametr zawierajÄ…cy parametry caÅ‚kowania, stworzony przy pomocy funkcji odeset options = odeset('name1',value1,'name2',value2,...) AaÅ„cuch tekstowy 'name1', 'name2',& okreÅ›la parametr, natomiast value1, value2,& jego wartość. PrzykÅ‚adowo za name1 , name2 ,& mo\na przyjąć AbsTol okreÅ›lajÄ…cy tolerancjÄ™ bÅ‚Ä™du bezwzglÄ™dnego, domyÅ›lna wartość to 1·10-6 RelTol okreÅ›lajÄ…cy tolerancjÄ™ bÅ‚Ä™du wzglÄ™dnego, domyÅ›lna wartość to 1·10-3 Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 28 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych W celu stworzenia pliku funkcyjnego o nazwie NazwaFunkcji.m w oknie poleceÅ„ (Command Window) nale\y wpisać >> edit NazwaFunkcji Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 29 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych Otwarte zostaje okno edytora, w którym nale\y umieÅ›cić kod pliku funkcyjnego Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 30 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych m-plik funkcjny NazwaFunkcji.m opis Wyra\enie definiujÄ…ce funkcjÄ™ o nazwie function Xprim = NazwaFunkcji(t,x) NazwaFunkcji w której parametry wejÅ›ciowe to t, x oraz parametrem wyjÅ›ciowym jest Xprim m=1 % masa [kg] PrzyjÄ™cie staÅ‚ych parametrów równania F=1 % amplituda siÅ‚y [N] k=100 % wsp. sprÄ™\ystoÅ›ci b=.2 % wsp. tÅ‚umienia PrzyjÄ™cie czÄ™stoÅ›ci wymuszenia równej omega=sqrt(k/m) % czÄ™stość [rad/s] czÄ™stoÅ›ci drgaÅ„ wÅ‚asnych ukÅ‚adu A=[ 0 1 Wprowadzenie macierzy opisujÄ…cych równanie -k/m -b/m]; ruchu ukÅ‚adu X=[ x(1) x(2)]; B=[ 0 F*sin(omega*t)/m]; Xprim=A*X+B; % wynik Obliczenie Xprim Kolor zielony komentarz Kolor niebieski wyra\enie Matlab Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 31 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych Po wprowadzeniu kodu plik nale\y zapisać w katalogu roboczym File -> Save (lub Ctr+S) Wa\ne! Nazwa podana przy definiowaniu funkcji musi być nazwÄ… m-pliku Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 32 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych W celu stworzenia pliku skryptowego o nazwie NazwaSkryptu w oknie poleceÅ„ nale\y wpisać >> edit NazwaSkryptu co powoduje, \e w kolejnej zakÅ‚adce otwarty jest nowy plik tekstowy o nazwie NazwaSkryptu Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 33 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych m-plik skryptowy NazwaSkryptu.m opis t0=0 %czas poczÄ…tkowy PrzyjÄ™cie przedziaÅ‚u czasu oraz parametrów poczÄ…tkowych równania tk=10 %czas koÅ„cowy x0=0 %przemieszczenie poczÄ…tkowe xprim0=0 %prÄ™dkość poczÄ…tkowa RozwiÄ…zanie równania ró\niczkowego przy [T,X]=ode45(@NazwaFunkcji,[t0 tk],... pomocy funkcji ode45, przy ustawieniach [x0 xprim0]); domyÅ›lnych dla funkcji zapisanej w pliku NazwaFunkcji.m figure(1) %nowe okno graficzne Otworzenie okna graficznego. Narysowanie plot(T,X(:,1)) %wykres funkcji x(t) wykresu funkcji przemieszczeÅ„ x(t) xlabel('t - czas [s]') Opisanie osi wykresu ylabel('x - przemieszczenie [m]') Kolor zielony komentarz Kolor czerwony Å‚aÅ„cuch tekstowy Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 34 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych Po wprowadzeniu kodu plik nale\y zapisać w katalogu roboczym File -> Save (lub Ctr+S) Program uruchamia siÄ™ wybierajÄ…c w menu Debug -> Run (lub klawisz funkcyjny F5) Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 35 Zastosowanie funkcji Å›rodowiska MATLAB do rozwiÄ…zywania równaÅ„ ró\niczkowych Efektem dziaÅ‚ania programu jest wykres przemieszczeÅ„ x w zale\noÅ›ci od czasu t Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 36 BezpoÅ›rednie caÅ‚kowanie równaÅ„ ruchu. Metoda Newmarka W roku 1956 Newmark zaproponowaÅ‚ rodzinÄ™ metod umo\liwiajÄ…cych jednokrokowe rozwiÄ…zywanie liniowych dynamicznych równaÅ„ ruchu o postaci && & Mxt + Cxt + Kxt = Ft & xt Przy zaÅ‚o\eniu obliczeÅ„ w chwilach czasu "t, 2"t, 3"t,& rozwiniÄ™cie wyra\enia xt oraz w szereg Taylora w punkcie t prowadzi do uzyskania równaÅ„: 2 3 ("t) ("t) & &&t -"t &&&t -"t xt = xt -"t + "txt -"t + x + x + ... 2 6 2 ("t) & & && &&&t -"t xt = xt -"t + "txt -"t + x + ... 2 Newmark obciÄ…Å‚ pozostaÅ‚e wyrazy szeregu, wprowadziÅ‚ współczynniki ² i Å‚ oraz zapisaÅ‚ równania w postaci: 2 ("t) 3 & &&t -"t &&&t -"t xt = xt -"t + "txt -"t + x + ²("t) x 2 2 & & && &&&t -"t xt = xt -"t + "txt -"t + Å‚ ("t) x Je\eli zakÅ‚adamy, \e przyspieszenie jest liniowe w przedziale dÅ‚ugoÅ›ci kroku, mo\na zapisać zale\ność &&t &&t &&&t -"t x - x -1 x = "t Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 39 Metoda Newmarka &&&t -"t x Po podstawieniu otrzymywane sÄ… równania 2 && ("t) (xt - &&t-1 x ) 3 & &&t-"t xt = xt-"t + "txt-"t + x + ²("t) 2 "t && (xt - &&t-1 x ) 2 & & && xt = xt-"t + "txt-"t + Å‚ ("t) "t Po przeksztaÅ‚ceniach, otrzymywane sÄ… standardowe równania Newmarka 1 ëÅ‚ öÅ‚ 2 2 & &&t-"t &&t xt = xt-"t + "txt-"t + - ² ("t) x + ²("t) x ìÅ‚ ÷Å‚ 2 íÅ‚ Å‚Å‚ & & && && xt = xt-"t + (1- Å‚ )"txt-"t + Å‚"txt Zale\noÅ›ci te mo\na rozwiÄ…zać rekurencyjnie dla ka\dego kroku czasowego, dla ka\dego &&t x stopnia swobody ukÅ‚adu bÄ™dÄ…cego przemieszczeniem. Wyraz wyznacza siÄ™ z równania ruchu po podzieleniu jego obu stron przez masÄ™ K Ft &&t C & x + xt + xt = M M M C K &&t Ft - xt - xt & x = M M M Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 40 Metoda Newmarka bezpoÅ›rednie rozwiÄ…zanie równaÅ„ w pojedynczym kroku Równania Newmarka mo\na przeksztaÅ‚cić do postaci &&t & && x = b1(xt - xt-"t )+ b2xt-"t + b3xt-"t & & & & && xt = b4(xt - xt-"t )+ b5xt-"t + b6xt-"t gdzie poszczególne współczynniki wynoszÄ… 1 1 1 b1 = , b2 = - , b3 = 1- , b4 = Å‚"tb1, b5 = 1+ Å‚b2"t, b6 = "t(1+ Å‚b3 - Å‚ ) 2 ²"t 2² ²("t) Po podstawieniu do równania ruchu ukÅ‚adu otrzymuje siÄ™ zale\ność && & Mxt + Cxt + Kxt = Ft & && & && (b1M + b4C + K)xt = Ft + M(b1xt-"t - b2xt-"t - b3xt-"t ) + C(b4xt-"t - b5xt-"t - b6xt-"t ) Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 41 Stabilność metody Newmarka W przypadku zerowego tÅ‚umienia metoda Newmarka jest warunkowo stabilna je\eli 1 1 1 Å‚ Å‚ e" , ² d" oraz "t d" - ² 2 2 Émax 2 gdzie Émax jest maksymalnÄ… czÄ™stoÅ›ciÄ… ukÅ‚adu strukturalnego Metoda Newmarka jest bezwarunkowo stabilna je\eli speÅ‚niony jest warunek 1 2² e" Å‚ e" 2 Jednak w momencie gdy Å‚ jest wiÄ™ksza ni\ 0,5 wprowadzone zostajÄ… bÅ‚Ä™dy zwiÄ…zane z tÅ‚umieniem numerycznym oraz wydÅ‚u\aniem okresu czasu Zazwyczaj przyjmuje siÄ™ 1 1 Å‚ = , ² = 4 2 Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 42 Metoda Newmarka algorytm obliczeÅ„ Dla ukÅ‚adu o jednym stopniu swobody o masie M, sztywnoÅ›ci K, tÅ‚umieniu C przy wymuszeniu siÅ‚Ä… Ft 1. Obliczenia wstÄ™pne 1. Przyjąć wartoÅ›ci M, K i C 2. Przyjąć parametry caÅ‚kowania ² oraz Å‚ 3. Obliczyć współczynniki (staÅ‚e caÅ‚kowania) b1, b2, b2, b3, b4, b5, b6 4. Wyznaczyć efektywnÄ… sztywność K = K + b1M + b4C & &&0 5. Przyjąć warunki poczÄ…tkowe: x0, x0, x t = "t, 2"t, 3"t,... 2. Obliczenia dla ka\dego kroku czasu: 1. Obliczyć efektywne wymuszenie & && & && Ft = Ft + M(b1xt-"t - b2xt-"t - b3xt-"t ) + C(b4xt-"t - b5xt-"t - b6xt-"t ) 2. Wyznaczyć przemieszczenie dla czasu t Ft Kxt = Ft Ò! xt = K 3. Obliczyć przyspieszenie i prÄ™dkość dla czasu t &&t & && x = b1(xt - xt-"t )+ b2xt-"t + b3xt-"t & & & & && xt = b4(xt - xt-"t )+ b5xt-"t + b6xt-"t 4. Przejść do kroku 2.1 wraz z t = t + "t Metody numeryczne i statystyka - RozwiÄ…zywanie równaÅ„ ró\niczkowych 43