Príklad 1. Odhadnite funkčné hodnoty distribučnej funkcie štandardizovaného normálneho rozdelenia f(x) = 1 √ 2π x −∞ e−1 2 t2 dt. Vzhľadom k tomu, že platí f (x) = 1 √ 2π e−1 2 x2 , f (x) = 1 √ 2π e−1 2 x2 · (−x), je funkcia f(x) riešením lineárnej diferenciálnej rovnice druhého rádu f (x) + xf (x) = 0. Funkčné hodnoty odhadneme na intervale [0, 5]. Nech x0 = 0, x1, . . . , xn−1, xn = 5 je n+1 ekvidištantných uzlov na tomto intervale. Prvú a druhú deriváciu funkcie f vo vnútorných uzloch x1, . . . , xn−1 aproximujeme pomocou jej funkčných hodnôt f0, . . . , fn a pomocou nasledujúcich formúl: f (xi) ≈ fi+1 − fi−1 2h , f (xi) ≈ fi−1 − 2fi + fi+1 h2 , i ∈ {1, . . . , n − 1}. To nás privedie k n−1 lineárnym rovniciam pre n+1 neznámych funkčných hodnôt f0, . . . , fn: f (xi) + xif (xi) = 0, fi−1 − 2fi + fi+1 h2 + xi fi+1 − fi−1 2h = 0, (2 − hxi)fi−1 − 4fi + (2 + hxi)fi+1 = 0, i ∈ {1, . . . , n − 1}. Zvyšné dve rovnice dostaneme z okrajových podmienok: f0 = 1/2 a vzhľadom k tomu, že limx→∞ f(x) = 1, môžeme použiť fn = 1. Stačí už len zvoliť n a príslušný systém rovníc vyriešiť. function[x]= int_exp_dif(n,a) h=a/n; A=-4*eye(n+1) +2* diag ([ ones(1,n-1) 0],-1)-h*diag ([h:h:(a-h) 0],-1) +2* diag ([0 ones(1,n-1)],1)+h*diag ([0 h:h:(a-h)],1); A(1,1) =1; A(n+1,n+1) =1; b=zeros(n+1,1); b(1,1) =1/2; b(n+1,1) =1; x=linsolve(A,b); end x=int_exp_dif (5,5); t=linspace (0,5,6); plot(t,x,'r-','LineWidth ' ,1.5) 1 hold on x=int_exp_dif (10 ,5); t=linspace (0,5,11); plot(t,x,'-','Color ','[0.929 0.694 0.125] ','LineWidth ' ,1.5) x=int_exp_dif (20 ,5); t=linspace (0,5,21); plot(t,x,'g-','LineWidth ' ,1.5) legend('n=5','n=10','n=20','Location ','southeast ') t=linspace (0 ,5 ,100); plot(t,erf(t/sqrt (2))/2+1/2 ,'b-','DisplayName ','Phi(x)',' LineWidth ' ,1.5); 0 1 2 3 4 5 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 n=5 n=10 n=20 Phi(x) v Príklad 2. Odhadnite funkčné hodnoty Fresnelových integrálov x(t) = t 0 cos(s2 ) ds, y(t) = t 0 sin(s2 ) ds. Vzhľadom k tomu, že platí x (t) = cos(t2 ), x (t) = −2t sin(t2 ), y (t) = sin(t2 ), y (t) = 2t cos(t2 ), 2 sú funkcie x(t) a y(t) riešením systému dvoch lineárnych diferenciálnych rovníc druhého rádu x (t) + 2ty (t) = 0, y (t) − 2tx (t) = 0. Funkčné hodnoty odhadneme na intervale [−7, 7]. Nech t−n, . . . , tn je 2n + 1 ekvidištantných uzlov na tomto intervale. Prvú a druhú deriváciu funkcií x a y vo vnútorných uzloch aproximujeme rovnako ako v predošlom príklade. To nás privedie k nasledujúcemu systému 4n − 2 lineárnych rovníc pre 4n + 2 neznámych funkčných hodnôt x−n, . . . , xn a y−n, . . . , yn: xi−1 − 2xi + xi+1 h2 + 2ti yi+1 − yi−1 2h = 0, i ∈ {−n + 1, . . . , n − 1} yi−1 − 2yi + yi+1 h2 − 2ti xi+1 − xi−1 2h = 0, i ∈ {−n + 1, . . . , n − 1}, ktorý má po úprave tvar xi−1 − 2xi + xi+1 + hti(yi+1 − yi−1) = 0, i ∈ {−n + 1, . . . , n − 1} yi−1 − 2yi + yi+1 − hti(xi+1 − xi−1) = 0, i ∈ {−n + 1, . . . , n − 1}, Vďaka limitným vzťahom lim t→±∞ x(t) = ± π 8 , lim t→±∞ y(t) = ± π 8 môžeme dodefinovať zvyšné štyri rovnice nasledujúcim spôsobom: x−n = − π 8 , xn = π 8 , y−n = − π 8 , yn = π 8 . function[x]= fresnel_num_dif(n,a) h=a/n; A11=( diag ([ ones (1,2*n-1) 0],-1)+diag ([1 -2*ones (1,2*n-1) 1])+diag ([0 ones (1,2*n-1)],1)); A12=-h*diag ([((-a+h):h:(a-h)) 0],-1)+h*diag ([0 ((-a+h):h:(a-h)) ],1); A=[A11 A12;-A12 A11]; b=zeros (4*n+2,1); b(1,1)=-sqrt(pi/8); b(2*n+1,1)=sqrt(pi/8); b(2*n+2,1)=-sqrt(pi/8); b(4*n+2,1)=sqrt(pi/8); x=linsolve(A,b); end 3 x=fresnel_num_dif (25 ,7); plot(x(1:(2*25+1) ,1),x((2*25+2) :(4*25+2) ,1),'r-') hold on x=fresnel_num_dif (50 ,7); plot(x(1:(2*50+1) ,1),x((2*50+2) :(4*50+2) ,1),'-','Color ','[0.929 0.694 0.125] ') x=fresnel_num_dif (1000 ,7); plot(x(1:(2*1000+1) ,1),x((2*1000+2) :(4*1000+2) ,1),'g-') legend('n=50','n=100 ','n=1000 ','Location ','northwest ') t=linspace (-7,7,800); plot(sqrt(pi/2)*fresnelc(sqrt (2/pi)*t),sqrt(pi/2)*fresnels(sqrt (2/pi)*t),'b-','DisplayName ','Fresnel '); -1.5 -1 -0.5 0 0.5 1 1.5 -1.5 -1 -0.5 0 0.5 1 1.5 n=25 n=50 n=1000 Fresnel Fresnelove integrály evidentne konvergujú dosť pomaly a interval [−7, 7] nie je dosť široký na to, aby sme v jeho krajných bodoch mohli ako okrajové podmienky použiť ich limitné hodnoty. Navyše ak nás zaujíma len tvar počiatočnej časti krivky, môžeme odhadnúť hodnoty Fresnelových integrálov v krajných bodoch užšieho intervalu a tie použiť ako okrajovú podmienku. Zameriame sa na interval [−1, 1] a odhad uskutočníme pomocou Taylorovho rozvoja funkcií sin(x2 ) a cos(x2 ). Pripomeňme, že funkcia sínus sa dá na celom svojom definičnom obore rozvinúť do svojho Taylorovho radu: sin(x) = x − x3 3! + x5 5! − x7 7! + · · · = ∞ n=0 (−1)n (2n + 1)! x2n+1 . 4 Taylorov rad funkcie sin(x2 ) má preto tvar T(x) = x2 − x6 3! + x10 5! − x14 7! + · · · = ∞ n=0 (−1)n (2n + 1)! x4n+2 . Dá sa ukázať, že v každom bode x ∈ R platí T(x) = sin(x2 ). Integrujme: 1 0 sin(t2 ) dt = 1 0 ∞ n=0 (−1)n (2n + 1)! t4n+2 dt = ∞ n=0 1 0 (−1)n (2n + 1)! t4n+2 dt = ∞ n=0 (−1)n (2n + 1)!(4n + 3) t4n+3 1 0 = ∞ n=0 (−1)n (2n + 1)!(4n + 3) . Uvedený rad je alternujúci a pre chybu aproximácie n-tým čiastočným súčtom máme horný odhad: 1 0 sin(t2 ) dt − sn < |an+1| . Zvoľme presnosť 10−4 , takže potrebujeme nájsť n, pre ktoré platí |an+1| < 10−4 : 1 (2n + 3)!(4n + 7) < 10−4 (2n + 3)!(4n + 7) > 104 Zrejme prvé n, pre ktoré táto rovnosť platí je n = 2. Určme teda približnú hodnotu integrálu: 1 0 sin(t2 ) dt ≈ 2 n=0 (−1)n (2n + 1)!(4n + 3) = 1 3 − 1 42 + 1 120 · 11 = 13 · 20 · 11 + 7 7 · 120 · 11 = 0, 310281385 ≈ 0, 31028. Podobne by sme sa dopracovali aj k odhadu x(1) ≈ 0, 90452. -1 -0.5 0 0.5 1 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 n=5 n=10 n=20 Fresnel Krivka (x(t), y(t)) sa používa pri stavbe ciest a železníc. v 5