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

Podobne dokumenty