Rovinné úlohy Klasická formulace úlohy −∇ · (p∇u) + qu = f v Ω kde −∇ · (p∇u) = − ∂ ∂x (p∂u ∂x ) − ∂ ∂y (p∂u ∂y ) = −(pux )x − (puy )y . Okrajové podmínky: Dirichletova: u = g na Γ1 Newtonova (Neumanova pro α = 0): −p∂u ∂n = αu − β na Γ2 Γ1 ∩ Γ2 = ∅, ¯Γ1 ∪ ¯Γ2 = Γ. Podmínky: hladkost funkcí podle potřeby, p(x, y) ≥ p0 > 0, q(x, y) ≥ 0. Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 1 / 9 Slabá formulace úlohy v = v(x, y) – testovací funkce, v = 0 na Γ1. Rovnici vynásobíme testovací funkcí v a integrujeme přes Ω. Za použití Greenovy formule a okrajových podmínek dostaneme Ω [p∇u · ∇v + quv]dxdy + Γ2 αuv ds = Ω fv dxdy + Γ2 βv ds Můžeme psát a(u, v) = Ω [p∇u · ∇v + quv]dxdy + Γ2 αuv ds L(v) = Ω fv dxdy + Γ2 βv ds, tedy a(u, v) = L(v) ∀v. Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 2 / 9 Metoda konečných prvků Oblast triangulujeme a pro každý uzel triangulace (vrchol) Pi je definována jedna bázová funkce wi nenulová na polygonu Ei tvořeném sousedními uzly. Přibližné řešení rovnice U je pak U = i Ui wi , kde Ui je hodnota U v uzlu Pi . Pro wi máme rovnici Ei [p∇U·∇wi +qUwi ]dxdy+ Γ2i αUwi ds = Ei fwi dxdy+ Γ2i βwi ds, kde ∇U a ∇wi jsou konstantní funkce na každém elementu, Γ2i je průnik Γ2 s hranicí Ei . Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 3 / 9 Pojmy a ozančení: Trojúhelníky triangulace: elementy (prvky), značíme je e, resp. ei , počet elementů označíme Ne, h maximální délka strany elementů. Vrcholy trojúhelníků: uzly, značíme je P, resp. Pi = (xi , yi ), volíme je tak aby ¯Γ1 ∩ ¯Γ2 byly uzly. Počet všech uzlů označíme NU, počet uzlů na ¯Γ1 označíme N1, počet zbývajících uzlů N0. Kvůli snadnějšímu zápisu můžeme uvažovat, že uzly mimo ¯Γ1 mají indexy 1, . . . , N0 uzly na ¯Γ1 mají indexy N0 + 1, . . . , NU. Strany na ¯Γ2 označíme S, resp. Si , jejich počet NS . Pro každý element e známe jeho vrcholy Pe 1 , Pe 3 , Pe 3 . Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 4 / 9 Například vrcholy elementu e3 jsou uzly P2, P6 a P7. Dále označme Ie (g) a IS (g) numerickou aproximaci integrálu z funkce g přes daný element e nebo danou stranu S. Pak a(u, v) ≈ ah(u, v) = Ne i=1 Iei (p∇u · ∇v + quv) + NS j=1 ISj (αuv), L(v) ≈ Lh(v) = Ne i=1 Iei (fv) + NS j=1 ISj (βv). Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 5 / 9 Hodnta přibližného řešení U v bodě Pi je Ui (neznámé hodnoty). Můžeme psát U = N0 i=1 Ui wi + NU i=N0+1 g(Pi )wi a váhová funkce V je rovna V = N0 i=1 Vi wi , pro Vi = V (Pi ). Položíme ah(U, V ) = Lh(V ) ⇒ 0 = ah(U, V ) − Lh(V ) = = N0 i=1 Vi N0 j=1 ah(wj , wi )Uj − Lh(wi ) − NU j=N0+1 ah(wj , wi )g(Pj ) = = N0 i=1 Vi N0 j=1 kij Uj − Fi = VT [KU − F]. Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 6 / 9 Protože vektor V je libovolný, musí platit KU = F. K – matice tuhosti, F – vektor zatížení. Vlastnosti matice K 1 K je symetrická: ah(wi , wj ) = ah(wj , wi ). 2 K je řídká: ah(wi , wj ) = 0, pokud uzly Pi a Pj nejsou vrcholy téhož trojúhelníka. 3 K je pozitivně definitní Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 7 / 9 Integrování přes trojúhelník P1 P2 P3 v1 v2 P1 = (x1, y1) P2 = (x2, y2) P3 = (x3, y3) v2 = P2 − P3 = (x2 − x3, y2 − y3) v1 = P1 − P3 = (x1 − x3, y1 − y3) Plocha trojúhelníka: S = 1 2 det  x1 − x3 x2 − x3 y1 − x3 y2 − y3  Těžiště: T + T = 1 3 (P1 + P2 + P3) Transformace na trojúhelník s vrcholy [0, 0], [0, 1], [1, 0]: P = (x, y) = P3 + sv1 + tv2, s ∈ [0, 1], t ∈ [0, 1 − s], |J| = 2S. Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 8 / 9 Základní kvadraturní formule S pomocí těžiště: e g(x, y)dxdy ≈ g(T) · S S pomocí vrcholů trojúhelníka: e g(x, y)dxdy ≈ 1 3 [g(P1) + g(P2) + g(P3)] · S Obě formule jsou přesné pro lineární polynomy. S pomocí středů stran trojúhelníka: Označme S1, S2 a S3 středy stran trojúhelníka, pak e g(x, y)dxdy ≈ 1 3 [g(S1) + g(S2) + g(S3)] · S Formule je přesná pro kvadratické polynomy. Jiří Zelinka Pokročilé numerické metody 1II rovinné úlohy II 9 / 9