Informatyka Podstawy Programowania 6/7 Proekt 7 7. METDA RÓŻNIC SKŃCZNYCH Część I 7. pis metody Metoda różnic skończonych est edną z naczęście stosowanych metod rozwiązywania równań różniczkowych cząstkowych. W metodzie różnic poszukue się rozwiązania poprzez zastąpienie równań różniczkowych równaniami różnicowymi rozwiązanie których dae przybliżone wartości poszukiwane funkci w punktach zwanych węzłami. Rozwiązanie przeprowadza się na siatce różnicowe dzięki temu zagadnienie brzegowe lub brzegowo-początkowe sprowadza się do układu równań algebraicznych. Istniee szereg sformułowań MRS które różnią się przede wszystkim rodzaem siatki i awnością zastosowanego schematu różnicowego. d wyboru schematu rodzau siatki sposobu aproksymaci pochodnych zależy stabilność dokładność i zbieżność metody numeryczne. Do dyskretyzaci równania różniczkowego o pochodnych cząstkowych naczęście wybierana est regularna siatka kwadratowa (prostokątna) dla zagadnień D lub sześcienna (prostopadłościenna) w zagadnieniach trówymiarowych. Na rysunku 7. przedstawiono przykład siatki prostokątne o wymiarach oczek x y na które aproksymowana est funkca u( x y ). Funkca ta będzie zależeć od współrzędnych dyskretnych wyrażonych ako u( i x y) gdzie i są numerami kolumny i wiersza. Identyfikuąc wartości funkci u( x y ) w węzłach siatki stosue się zwykle ich skrócony zapis przedstawiony na rysunku. u = u x y ( ) ( ) ( ) ( ) ( ) i Rys. 7.. Prostokątna siatka różnicowa u = u x + x y i+ u = u x x y i u = u x y + y i + u = u x y y. i
Informatyka Podstawy Programowania 6/7 7.. Bezpośrednia metoda tworzenia operatorów różnic skończonych. Klasyczną metodą konstruowania analogu różnicowego est rozwinięcie w szereg Taylora funkci u( x y) ciągłe i różniczkowalne w otoczeniu punktu x : x u x x! x!! x x ( ) ( ) u x + x y = u x y + + + +... (7.) k gdzie x ( x x x ) x u x x! x!! x x ( ) ( ) u x x y = u x y + +... = +. k (7.) Z równania (7.) można przez odrzucenie członów wyższego rzędu niż pierwszy wyprowadzić wzory na pierwszą pochodną i est to tak zwana różnica przednia: gdzie symbol ( x) u x ( + ) ( ) u x x y u x y ( x) = + x (7.) oznacza błąd obcięcia wynikaący z różnicy pomiędzy pochodną cząstkową a e różnicowym przedstawieniem. Błąd ten można oszacować przymuąc ego rząd w proporci do nawiększego pominiętego wyrazu w rozwinięciu Taylora: x δ = ( x) = x ζ x + x.! x ζ Na te podstawie możemy wnioskować że istniee dowolna dodatnia stała ε która est niezależna od x taka że δ ε x przy założeniu że x. Wzór na pierwszą pochodną można także otrzymać z równania (7.) i est to tak zwana różnica wsteczna: u dx x ( ) ( ) u x y u x x y ( x) = + x. (7.) Z odęcia równań (7.) i (7.) otrzymue się różnicę centralną:
Informatyka Podstawy Programowania 6/7 u dx x ( + ) ( ) u x x y u x x y ( x) = + x. (7.5) Graficzną interpretacę różnicy przednie wsteczne i centralne przedstawiono na rysunku 7.. Jak widać z rysunku nawiększą dokładność aproksymaci pierwsze pochodne uzyskue się z różnicy centralne zgodnie z omówionym wyże rzędem błędu obcięcia. u(x) różnica przednia różnica centralna styczna w A różnica wsteczna u(x x) x x A u(x ) x u(x + x) x x + x α u tan α = x x Rys. 7.. Interpretaca graficzna różnicy przednie wsteczne i centralne. W podobny sposób ale poprzez dodanie równań (7.) i (7.) można otrzymać aproksymacę drugie pochodne: dx ( + ) ( ) + ( ) u x x y u x y u x x y = + x x ( x). (7.6) Korzystaąc z równania (7.6) i oznaczeń ak na rysunku 7.. można zapisać operator Laplace`a dla funkci u( x y) dla prostokątne siatki przedstawione na rysunku 7..: lub proście u u u + u u u + u y x y i+ i i- i + i i - + = + i u u + u u u + u + = + y x y (7.7) (7.8)
Informatyka Podstawy Programowania 6/7 Rys. 7.. Gwiazda pięciopunktowa o środku w węźle i. Występuącą na rysunku 7. grupę węzłów nazywa się gwiazdą pięciopunktową o środku w węźle i. Rozwinięcie w szereg Taylora est nabardzie znanym sposobem wyprowadzania anologów różnicowych. Istniee ednakże szereg innych metod a edną z nich est wyrażenie pochodne funkci przez sumę wartości funkci w sąsiednich węzłach siatki przemnożonych przez nieznane współczynniki [Szymkiewicz ]: gdzie u i i i i+ m ( ) = au + bu + cu + x m a b c współczynniki które należy określić (7.9) dokładność przyętego schematu aproksymaci. Dla przykładu obliczmy tym sposobem wartość analogu dla pierwsze pochodne. Rozwiamy w szereg Taylora funkcę i u w otoczeniu punktu ( ) i otrzymuąc odpowiednie wyrażenia dla u i + oraz ui a następnie podstawiamy e do wzoru (7.9) i porządkuemy : = + + + + + + +... u u x u x u ( a b c) ui ( c a) x ( c a) ( c a) x i x i x 6 x i i (7.) Z porównania obu stron równania (7.) wynika natychmiast że ( a b c) ( c a) x ( c a) + + = = + = z których wyznaczamy wartości poszczególnych parametrów: a = b = c =. x x
Informatyka Podstawy Programowania 6/7 Podstawiaąc otrzymany wynik do równania (7.) otrzymuemy znane uż wyrażenie na różnicę centralną: u = +... dx x x u i+ i x u i 6 i wraz z oszacowaniem błędu obcięcia rzędu ( x ). (7.) pisaną procedurę można stosować z powodzeniem do wyznaczania analogów różnicowych pochodnych wyższych rzędów oraz do bardzie złożonych schematów niż dwu- i trzypunktowe. Podstawiaąc do wzoru (7.9) rozwinięcia funkci u i w węzłach ( i + ) oraz ( i ) + otrzyma się analog niesymetryczny pierwsze pochodne: 5 u + u 5 = +... dx x x u i i+ i+ x u i i maący błąd oszacowania również rzędu ( x ) (7.). Tego rodzau analogi wykorzystywane są do wyznaczania wartości brzegowych na podstawie punktów z wnętrza obszaru obliczeniowego. Inne użyteczne analogi różnicowe dla pierwszych i wyższych pochodnych zostały zestawione w tabeli 7.. Tabela 7.. Wybrane schematy aproksymaci operatorów rożniczkowania różnicami skończonymi. Pochodn a u u Aproksymaca u + u u i+ i+ i x u + 8u 8u + u i+ i+ i i x u u + u i+ i i x u + 6u u + 6u u i+ i+ i i i x u + u 5u + u i+ i+ i+ i x Błąd obcięcia 5
Informatyka Podstawy Programowania 6/7 u y u y u y u y u 5u + u u i i i i x u u + u u i+ i+ i i x 5u 8u + u u + u i i i i i x u u + 6u u + u i+ i+ i i i x u u u + u i+ i+ i i x y u u u + u i+ + i + i+ i x y u u u + u i+ + i i + i x y u u u + u i+ i+ i i x y ( x + y) ( x + y ) ( + ) x y ( + ) x y Do te pory rozważaliśmy analogi różnicowe budowane na podstawie siatki prostakątne ednakże czasem niezbędne może być zastosowanie innych schematów niż prostokątny. Poniże omówimy kilka takich przypadków. Dla węzłów leżących w pobliżu brzegu ak pokazano na rys.7.. wzór gwiazdy pięciopunktowe (7.7) musi ulec modyfikaci. 6
Informatyka Podstawy Programowania 6/7 Rys.7.. Schemat interpolacyny do obliczeń dla węzłów leżących na brzegu. Rozwiaąc funkcę u( x y ) w szereg Taylora w otoczeniu punktu wzdłuż kierunku osi y możemy napisać: oraz Eliminuąc z powyższych równań y w punkcie u A u ( ) ξ y ξ y u = u + + +...! y! y y = u + +... (7.) y u. (7.)! y! y u otrzymuemy wzór na drugą pochodną względem y u A u u = + y ξ + ξ y + y ξ y. (7.5) ( ) ( ξ ) Wyprowadzaąc analogicznie drugą pochodną wzdłuż kierunku x całkowite wyrażenie różnicowe dla operatora Laplace'a przedstawia się następuąco: u ua ub u u u u x y ξ ( + ξ ) y η ( + η ) x ( + η ) x ( + ξ ) y ξ y η x (7.6) + = + + +. Rozważmy następnie przykład siatki zagęszczone w kierunku osi y ak to zostalo przedstawione na schemacie obok. Stosuąc tę samą procedurę co poprzednio otrzymamy następuący analog różnicowy [Anderson 98]: u u u y" u u y ' = + + y y ' y" + y ' y" y" + y ' ( y ) i + i i i (7.7) W zagadnieniach ze złożonym geometrycznie brzegiem i nieednorodnym ośrodkiem w którym poszukuemy rozwiązania równania różniczkowego możemy zastosować siatkę nieregularną lub o innym niż prostokątna kształcie. Przykłady takich siatek zostały przedstawione na rys.7.5. 7
Informatyka Podstawy Programowania 6/7 Rys.7.5. Płaskie siatki różnicowe: a) trókątna b)heksagonalna c)lokalnie zagęszczona d) nieregularna e) kołowa. Różnicowe analogi dla siatek o dowolnych kształtach można wyprowadzić korzystaąc z metody aproksymaci wielomianami odpowiedniego stopnia zawieraących N nieznanych parametrów. Parametry wielomianu określa się z warunku zgodności funkci aproksymuące i poszukiwane w poszczególnych węzłach siatki różnicowe. W celu przedstawienia tego sposobu przymimy prostokątną siatkę różnicową oraz wielomian aproksymuący o postaci: \ u ( x) = a + bx + cx. (7.8) Wartości poszukiwane funkci zadane są w punktach i i i+. Stąd przymuąc dla wygody początek układu współrzędnych w punkcie i otrzymuemy: i i i+ = a ( ) ( ) u = a + b x + c x u u = a + b x + c x. (7.9) Rozwiązuąc ten układ równań znaduemy że : 8
Informatyka Podstawy Programowania 6/7 a = ui ui+ ui- b = x u c u + = u x i+ i i. (7.) bliczaąc następnie pierwszą i drugą pochodną równania (7.8) otrzymuemy wyrażenia: u u u = + = = x= x i i+ i ( b cx) b (7.) ui+ u i + ui = c = i x. (7.) Wynik obliczeń est zgodny z równaniami (7.5) i (7.6) otrzymanymi z rozwinięć Taylora. Uogólniaąc powyższe rozważania można stwierdzić iż eśli operator różniczkowy est w postaci: L = a + a + a + a + a 5 + a6... + x y (7.) y y to dla dostatecznie gładkie funkci u( x y ) można ą rozwinąć w szereg potęgowy w otoczeniu punktu ( ) x y siatki nieregularne: u ( x y) = b + b ( x xo ) + b ( y yo ) + b ( x xo ) + (7.) + b 5 ( x x o ) ( y yo ) + b6 ( y yo ) +.... Następnie podstawiaąc w miesce x y w równaniu (7.) kolene współrzędne x y punktów gwiazdy dla siatki nieregularne zbudować układ równań algebraicznych którego rozwiązaniem będzie poszukiwany wektor parametrów = [ b b b ] B... N. Jako przykład określmy postać analogu różnicowego dla operatora Laplace a dla elementu siatki heksagonalne. bliczaąc laplasan z wyrażenia (7.) otrzymuemy: i i Lu ( x y) = + = b + b6. (7.5) y Przymuąc oznaczenia i układ współrzędnych zgodnie z rysunkiem 7.6. zapisuemy równania dla poszczególnych węzłów siatki: 9
Informatyka Podstawy Programowania 6/7 Rys. 7.6. Numeraca i wspórzędne węzłów siatki heksagonalne o boku h. u = b u = b + hb + h b h u = b + hb + b + h b + h b5 + h b6 8 8 h u = b hb + b + h b h b5 + h b6 (7.6) 8 8 u = b hb + h b h u5 = b hb b + h b + h b5 + h b6 8 8 h u6 = b + hb b + h b h b5 + h b6 8 8 Dodaąc stronami wszystkie równania poza pierwszym otrzymuemy wyrażenie: u + u + u + u + u5 + u6 = 6b + h b + h b6 (7.7) a po uwzględnieniu że u = b i podstawieniu do (7.5) otrzymuemy wzór różnicowy dla operatora Laplace a dla siatki heksagonalne z błędem oszacowania ( h ) : u + u + u + u + u + u 6u =. (7.8) h 5 6 ( y ) Lu x Istnieą także inne sposoby formułowania równań różnicowych takie ak metoda całkowa oraz metoda macierzowa których opis można znaleźć w literaturze [Anderson98] [Szymkiewicz ] [Fortuna 5].
Informatyka Podstawy Programowania 6/7 Przykład. Rozwiążmy zadanie dopływu do wykopu ograniczonego pionowymi ściankami szczelnymi przez ednorodne izotropowe podłoże gruntowe przedstawione na rysunku 7.7. naziom woda gruntowa granica obszaru ścianka szczelna wykop dno wykopu granica obszaru oś symetrii Rys. 7.7. Schemat zagadnienia dopływu wody do wykopu. Postawione zadanie stanowi zagadnienie płaskiego przepływu potencalnego który dla ruchu ustalonego opisany est równaniem Laplace a: h h y + = (7.9) Z warunkami brzegowymi Dirichleta i Neumana w postaci : h = h na Γ D (7.) h = na Γ N n gdzie: h - wysokość piezometryczna zwierciadła wody Γ D - naziom oraz dno wykopu Γ N - granice obszaru i ścianka szczelna. Ze względu na symetrię zadanie można rozwiązywać do osi symetrii zakładaąc wzdłuż te osi również warunek Neumana. Schemat obliczeniowy przedstawiono na rysunku 9.8.
Informatyka Podstawy Programowania 6/7 5 5 6 7 poziom odniesienia 5 6 7 5 6 7 y=a Y 5 5 5 5 55 56 57 X x=a Rys. 7.8. Siatka obliczeniowa zagadnienia dopływu wody do wykopu. Korzystaąc z właściwości gwiazdy pięciopunktowe (7.8) dla siatki kwadratowe będziemy wyprowadzać równania dla poszczególnych węzłów obszaru. W przypadku gwiazdy które wszystkie węzły leżą wewnątrz obszaru laplasan wyraża się następuąco: ( h h h h ) h h + + + h + = = y a h + h + h + h h =. (7.) Jeśli węzły gwiazdy będą częściowo należeć do brzegu postać równania różnicowego musi ulec modyfikaci. Dla przykładu rozważmy węzeł leżący na lewym brzegu na którym założony est warunek =. Z wzoru różnicy centralne dla te pochodne określamy że h = h co pozwala nam zmodyfikować równanie (7.) następuąco: h + h + h h =. (7.) Podobnie możemy zapisać dla brzegu prawego: dla brzegu dolnego: dla brzegu górnego: h + h + h h = (7.) h + h + h h = (7.)
Informatyka Podstawy Programowania 6/7 dla lewego górnego naroża: dla lewego dolnego naroża: h + h + h h = (7.5) h + h h = (7.6) h + h h =. (7.7) ścianka szczelna Wyrażenia różnicowe dla pozostałych naroży wyznacza się analogicznie. Równanie różnicowe na końcu ścianki szczelne wyprowadza się korzystaąc z zależności (7.) (7.) i (7.5) uwzględniaąc osobno węzeł i węzeł aby następnie obliczyć ich średnią arytmetyczną ' '' h h + h h h h + h h h h h h + a y a y a co prowadzi do równania: ' '' ( ) h + h + h + h + h h =. (7.8) Poszczególne równania dla rozważanego przykładu zostały zestawione dla wszystkich węzłów obszaru: : h + h + h h = : h + h + h + h h = : h + h + h + h h = : h + h + h h = : h + h + h h = : h + h + h + h h = : h + h + h + h h = : h + h + h h = 5: h + h + h h = 6 : h + h + h + h h = 5 6 5 5 6 7 6 5 6 7 : h + h + h h = : h + h + h h = 7 6 7 7 5 : h + h + h + h h = : h + h + h + h h = 5 5 6 : h6 + h7 + h56 + h h6 = 7 : h7 + h6 + h57 h7 = 5: h + h h = 5 : h + h + h h = 5 5 5 5 5 5: h + h + h h = 5 : h + h + h h = 5 5 5 56 5 5 56 : h + h + h h = 57 : h + h h = 6 57 5 56 7 56 57 h + h5 + h6 + h5 + h h =. : 5 5
Informatyka Podstawy Programowania 6/7 Uwzględniaąc zależności wynikaące z warunków brzegowych: h = h = h = h = h = h = h = h h 5 6 7 = h 5 = h 5 55. Można układ równań różnicowych przedstawić w postaci macierzowe A H = b : - h - - h - - h - - h - - h - h - h - h - h5 - h6 - h7 = - h - h - h 5 5 - h - h6 - h7 - h5 - h5
Informatyka Podstawy Programowania 6/7 - h5 - h5 - h56 - h57 Macierz tego układu est rzadka i można ą bez trudu rozwiązać dowolną metodą numeryczną. Po rozwiązaniu tego układu równań otrzymuemy wektor wartości ciśnień piezometrycznych w węzłach siatki: h h h h h h h h h5 h6 h7 h 896 89 878 867 8 8 79 75 8 7 8 69 6 5 5 7 h h h h6 h7 h5 h5 h5 h5 h56 h57 7 67 9 7 7 78 8 7 686 6 79 7 6 9 5 Wyniki zostały przedstawione również na rysunku 7.9 w postaci linii ekwipotencalnych. - - - 5 Rys. 7.9. braz linii ekwipotencalnych obliczonych MRS. 5