Laboratorium #10: Równanie dyfuzji
Transkrypt
Laboratorium #10: Równanie dyfuzji
Metody komputerowe w równaniach ró»niczkowych - laboratorium Laboratorium #10: Równanie dyfuzji Rozwa»amy zagadnienie pocz¡tkowo-brzegowe dla równania dyfuzji: ut = (D(x) · ux )x , x ∈ [0, L], t 0, u(0, x) = u0 (x) i warunkiem brzegowym typu Dirichleta lub Neumanna. Funkcja D(x) jest danym wspóªczynnikiem dyfuzji. Na zaj¦ciach zaimplementowali±my funkcj¦ DiffusionEquation, która rozwi¡zywaªa podane zagadnienie z warunkiem brzegowym typu Dirichleta na obu brzegach. Zadanie polega na zmodykowaniu tej funkcji tak, by mo»na byªo rozwi¡za¢ podane zagadnienie dla dowolnej kombinacji typów warunków brzegowych na ka»dym brzegu, np. (a) warunek Dirichleta na lewym brzegu u(t, 0) = fL (t) i warunek Neumanna na prawym brzegu ux (t, 0) = fR (t), (b) warunek Neumanna na obu brzegach, itd. Nagªówek funkcji powinien mie¢ posta¢ DiffusionEquation(D, u0, fL, fR, boundary, t, x, mu, h) gdzie boundary jest dwuelementowym wektorem komórkowym postaci, np. boundary = {'Dirichlet', 'Neumann'} dla warunków brzegowych jak w punkcie (a) powy»ej. Uwaga na typ nawiasów ten typ wektora jest umieszczony w nawiasach klamrowych (odwoªanie si¦ do kolejnych elementów dziaªa standardowo). Jaka jest interpretacja zyczna ka»dego z typów warunku brzegowego? Nast¦pnie zbadaj rozwi¡zania uzyskane za pomoc¡ tej funkcji dla nast¦puj¡cych danych: D(x) = 2, L = 10, oraz dla ró»nych staªych warunków brzegowych (wszystkich mo»liwych typów, fL ≡ const, fR ≡ const). Jako u0 nale»y dobra¢ tak¡ funkcj¦ (sinusoidaln¡), dla której warunki brzegowe b¦d¡ zgodne z warunkiem pocz¡tkowym. Przyjmij nast¦puj¡ce parametry oblicze«: h = µ= 1 4 1 , 20 i rozwi¡» równanie w przedziale t ∈ [0, T ] dobranym tak, by mo»na byªo zaobserwowa¢ stabilizacj¦ rozwi¡zania. Metody komputerowe w równaniach ró»niczkowych - laboratorium Aby wykona¢ zadanie, nale»y zmodykowa¢ plik DiffusionEquation.m (dost¦pny na stronie) w miejscach, które s¡ w nim odpowiednio zaznaczone. Prac¦ domow¡ nale»y odda¢ w formie spakowanego katalogu .zip zawieraj¡cego tylko dwa M-pliki plik funkcji DiffusionEquation.m oraz plik skryptu lab10.m, w którym b¦dzie zawarty kod do przeprowadzenia testów i wy±wietlenia wykresów (odpowied¹ na postawione pytanie nale»y napisa¢ w postaci komentarza w pliku). Termin oddania: 16 stycznia (gr. poniedziaªkowa) lub 13 stycznia (gr. pi¡tkowa). Przydatne funkcje: for end, plot, surf (i inne).