Numerické řešení diferenciálních rovnic Alex Markopoulos
motivační příklad - kytarová struna f(x) L0 DL L - Struna je předepnuta – natažena o délku DL - Ve struně vznikne tzv. předepínací síla T
motivační příklad - kytarová struna f(x) L x h 𝑢(𝑥) T a(x) h a(x+h) x před deformací po deformaci f(x) 𝑢(𝑥) T
motivační příklad - kytarová struna a(x) h a(x+h) x před deformací po deformaci f(x) T 𝑢(𝑥) −𝑇𝑢′′ =𝑓 rovnice rovnováhy v libovolném bodě struny
motivační příklad - lano x h x h F(x) plocha průřezu A(x) L ℎ 𝑓 𝜉 𝑑𝜉 F(x+h) diferenciál objemové síly 𝑑𝑄=𝑔𝑑𝑚=𝑔𝜌𝐴 𝜉 𝑑𝜉= 𝑓 𝜉 𝑑𝜉 𝜉∈ 𝑥,𝑥+ℎ
motivační příklad - lano x h rovnice rovnováhy (1) F(x) 𝐹=0= −𝐹 𝑥 +𝐹 𝑥+ℎ + ℎ 𝑓 𝜉 𝑑𝜉 vyjádření síly pomocí napětí 𝒑= 𝑭 𝑨 𝐹 𝑥 =𝜎 𝑥 𝐴 𝑥 = 𝜎𝐴 𝑥 ℎ 𝑓 𝜉 𝑑𝜉 věta o střední hodnotě 1 ℎ 𝑥 𝑥+ℎ 𝑓 𝜉 𝑑𝜉=𝑓 𝑥 pro ℎ→0 rovnice rovnováhy (2) 0= − 𝜎𝐴 𝑥 + 𝜎𝐴 𝑥+ℎ +𝑓 𝑥 ℎ F(x+h) rovnice rovnováhy (3) poměrná deformace − 𝜎𝐴 ′=𝑓 𝜀= Δ𝐿 𝐿 𝜎=𝐸𝜀
motivační příklad - lano 𝜀= Δ𝐿 𝐿 x h F(x) x u ℎ 𝑓 𝜉 𝑑𝜉 h u+du F(x+h) 𝜀= 𝑢+𝑑𝑢+ℎ−𝑢−ℎ ℎ = 𝑑𝑢 ℎ =𝑢′
motivační příklad - lano x h F(x) rovnice rovnováhy (3) - 𝜎𝐴 ′=𝑓 poměrná deformace 𝜀=𝑢′ ℎ 𝑓 𝜉 𝑑𝜉 rovnice rovnováhy (4) - 𝐸𝐴𝑢′ ′=𝑓 rovnice rovnováhy (5), EA = konst. −𝐸𝐴 𝑢 ′ ′=𝑓 F(x+h)
motivační příklady −𝑇𝑢′′=𝑓 −𝐸𝐴 𝑢 ′ ′=𝑓 struna lano a(x) h a(x+h) x F(x) F(x+h) ℎ 𝑓 𝜉 𝑑𝜉 a(x) h a(x+h) x před deformací po deformaci f(x) T −𝑇𝑢′′=𝑓 −𝐸𝐴 𝑢 ′ ′=𝑓
numerické řešení – metoda sítí x0 x1 x2 xi-1 xi xi+1 xn-2 xn-1 xn −𝑇 𝑢 ′′ =𝑓 𝑢 0 =𝑢 𝐿 =0 h h h h h h L Po délce struny (lana) se vloží tzv. uzly sítě. Uzly jsou rozloženy s konstantním krokem h (konstantní krok není podmínkou).
numerické řešení – metoda sítí x0 x1 x2 xi-1 xi xi+1 xn-2 xn-1 xn −𝑇 𝑢 ′′ =𝑓 𝑢 0 =𝑢 𝐿 =0 h h h h h h L přibližné vztahy pro derivace u(x) z Taylorova rozvoje 𝑢 𝑥+ℎ =𝑢 𝑥 +𝑢′ 𝑥 ℎ+ 1 2 𝑢′′ 𝑥 ℎ 2 + 𝐶 1 ℎ 3 𝑢 𝑥−ℎ =𝑢 𝑥 −𝑢′ 𝑥 ℎ+ 1 2 𝑢′′ 𝑥 ℎ 2 + 𝐶 2 ℎ 3 𝑢′ 𝑥 ≈ −𝑢 𝑥−ℎ +𝑢 𝑥+ℎ 2ℎ I. derivace 𝑢′′ 𝑥 ≈ 𝑢 𝑥−ℎ −2𝑢 𝑥 +𝑢 𝑥+ℎ ℎ 2 II. derivace
numerické řešení – metoda sítí x0 x1 x2 xi-1 xi xi+1 xn-2 xn-1 xn −𝑇 𝑢 ′′ =𝑓 𝑢 0 =𝑢 𝐿 =0 h h h h h h L označme 𝑥= 𝑥 𝑖 = 𝑥 0 +𝑖ℎ, 𝑖=(0,1,…,𝑛) potom bude platit a 𝑥 𝑖−1 =𝑥−ℎ 𝑥 𝑖+1 =𝑥+ℎ 𝑢′′ 𝑖 ≈ 𝑢 𝑖−1 − 2𝑢 𝑖 + 𝑢 𝑖+1 ℎ 2 −𝑇 𝑢′′ 𝑖 = 𝑓 𝑖 𝑢′ 𝑖 ≈ − 𝑢 𝑖−1 + 𝑢 𝑖+1 2ℎ
numerické řešení – metoda sítí x0 x1 x2 xi-1 xi xi+1 xn-2 xn-1 xn −𝑇 𝑢 ′′ =𝑓 𝑢 0 =𝑢 𝐿 =0 h h h h h h L −𝑇 𝑢 𝑖−1 − 2𝑢 𝑖 + 𝑢 𝑖+1 ℎ 2 = 𝑓 𝑖 −𝑢 𝑖−1 + 2𝑢 𝑖 − 𝑢 𝑖+1 = ℎ 2 𝑇 𝑓 𝑖
numerické řešení – metoda sítí −𝑢 𝑖−1 + 2𝑢 𝑖 − 𝑢 𝑖+1 = ℎ 2 𝑇 𝑓 𝑖 −𝑇 𝑢 ′′ =𝑓 𝑢 0 =𝑢 𝐿 =0 x0 x1 x2 xi-1 xi xi+1 xn-2 xn-1 xn h h h h h h 𝑥 1 : −𝑢 0 + 2𝑢 1 − 𝑢 2 = ℎ 2 𝑇 𝑓 1 𝑥 2 : −𝑢 1 + 2𝑢 2 − 𝑢 3 = ℎ 2 𝑇 𝑓 2 ⋮ 𝑥 𝑛−2 : −𝑢 𝑛−3 + 2𝑢 𝑛−2 − 𝑢 𝑛−1 = ℎ 2 𝑇 𝑓 𝑛−2 𝑥 𝑛−1 : −𝑢 𝑛−2 + 2𝑢 𝑛−1 − 𝑢 𝑛 = ℎ 2 𝑇 𝑓 𝑛−1
numerické řešení – metoda sítí −𝑢 0 + 2𝑢 1 − 𝑢 2 = ℎ 2 𝑇 𝑓 1 −𝑇 𝑢 ′′ =𝑓 𝑢 0 =𝑢 𝐿 =0 −𝑢 1 + 2𝑢 2 − 𝑢 3 = ℎ 2 𝑇 𝑓 2 ⋮ −𝑢 𝑛−3 + 2𝑢 𝑛−2 − 𝑢 𝑛−1 = ℎ 2 𝑇 𝑓 𝑛−2 −𝑢 𝑛−2 + 2𝑢 𝑛−1 − 𝑢 𝑛 = ℎ 2 𝑇 𝑓 𝑛−1 −1 2 −1 0 0 −1 2 −1 ⋱ 0 −1 2 ⋱ ⋱ ⋱ ⋱ 2 −1 0 −1 2 −1 𝑢 0 𝑢 1 𝑢 2 𝑢 3 ⋮ 𝑢 𝑛−2 𝑢 𝑛−1 𝑢 𝑛 = ℎ 2 𝑇 𝑓 0 𝑓 1 𝑓 2 𝑓 3 ⋮ 𝑓 𝑛−2 𝑓 𝑛−1 𝑓 𝑛 n+1 n-1
numerické řešení – metoda sítí 2𝑢 1 − 𝑢 2 = ℎ 2 𝑇 𝑓 1 +𝑢 0 −𝑇 𝑢 ′′ =𝑓 𝑢 0 =𝑢 𝐿 =0 −𝑢 1 + 2𝑢 2 − 𝑢 3 = ℎ 2 𝑇 𝑓 2 ⋮ −𝑢 𝑛−3 + 2𝑢 𝑛−2 − 𝑢 𝑛−1 = ℎ 2 𝑇 𝑓 𝑛−2 −𝑢 𝑛−2 + 2𝑢 𝑛−1 = ℎ 2 𝑇 𝑓 𝑛−1 + 𝑢 𝑛 n-1 2 −1 0 ⋯ 0 −1 2 −1 0 ⋮ 0 −1 2 −1 ⋱ 0 −1 ⋱ ⋱ 0 ⋮ ⋱ ⋱ 2 −1 0 ⋯ 0 −1 2 𝑢 1 𝑢 2 𝑢 3 ⋮ 𝑢 𝑛−2 𝑢 𝑛−1 = ℎ 2 𝑇 𝑓 1 𝑓 2 𝑓 3 ⋮ 𝑓 𝑛−2 𝑓 𝑛−1 + 𝑢 0 0 0 ⋮ 0 𝑢 𝑛 n-1
numerické řešení – metoda sítí function struna(N) % -u’’=1, u(0)=u(1)=0 % N ... pocet elementu n=N+1; h=1/N; n_in=n-2; e=ones(n_in,1); A=spdiags([-e,2*e,-e],[-1,0,1],n_in,n_in); b=ones(n_in,1)*h^2; u=A\b; U=[0;u;0]; x=(0:h:1)'; U_ex=@(x) -1/2*x.*(x-1); plot(x,U,'o',x,U_ex(x)) norm(U-U_ex(x))