1 11Numerické řešení parciálníc diferenciálníc rovnic Metoda sítí(finite difference metod) Připomeňme definici derivace funkce jedné proměnné Je-li bod x vnitřním bodem definičnío oborufunkce f,pakderivacefunkce fvbodě xjelimita f f(x+) f(x) (x)=lim 0 Platí f (x)= f(x+) f(x) +O(), kde O()jevýraz(cyba),kterýkonvergujek0,jakmile konvergujek0 (První) derivaci budeme narazovat přímoudiferencí(aproximací)čilidiferencívpřed f (x) f(x+) f(x), zpětnoudiferencí(aproximací)čilidiferencívzadf (x) f(x) f(x ), střednídiferencí(aproximací)čilicentrálnídiferencí f (x) f(x+) f(x ) 2 Druou derivaci budeme narazovat čili druou centrální diferencí(aproximací) f (x) f(x+) f(x) f(x) f(x ) = f(x+) 2f(x)+f(x ) 2 Metodu sítí vysvětlíme nejprve na jednodušším typu parciální diferenciální rovnice: Rovnice vedení tepla Uvažujme parciální diferenciální rovnici t = 2 f x 2 (T) Uvažujmedefiničníoborfunkce f(x,t)interval 0,1 0,T,tedy x 0,1, t 0,T Rozdělme interval 0,1 namintervalůdélkyδxainterval 0,T nanintervalůdélkyδtzískámesíťobsaující (M+1) (N+1)bodů Označme f i,j = f(iδx,jδt)pro i=0,1,,m, j=0,1,,n Uvažujme počáteční podmínku f(x,0)=u(x), a okrajové podmínky f(0,t)=v 1 (t), f(1,t)=v 2 (t),kde ujefunkcejednéproměnnédefinovanánaintervalu 0,1, v 1,v 2 jsoufunkce jedné proměnné definované na intervalu 0, T 1
2 EXPLICITNÍ METODA V rovnici(t) naradíme derivaci f podle t přímou aproximací Rovnici zapíšeme ve tvaru f i,j+1 f i,j δt = f i+1,j 2f i,j +f i 1,j δx 2 Označíme-li r= δt δx 2,lzerovnicinapsatvetvaru f i,j+1 = rf i 1,j +(1 2r)f i,j +rf i+1,j Říkáme, že metoda je konvergentní, pokud cyba(rozdíl mezi numerickým a přesným řešením) konvergujeknule,jakmiledélkykrokůkonvergujíknuleam, N konvergujíknekonečnu(síťse zjemňuje)explicitnímetodajekonvergentní,jakmileplatí r 1 2 Příklad1:Řešmeparciálnídiferenciálnírovnicinaintervalu 0,1 0;0,1 t = 2 f x 2 sokrajovýmipodmínkami f(0,t)=e 1 4 π2t, f(1,t)=0, apočátečnípodmínkou f(x,0)=cos( 1 2 πx), δx=0,2, δt=0,02 Označíme r= δt δx 2=1 2 Dosazenímdorovnicezískámerovnice f i,j+1 = 1 2 (f i 1,j+f i+1,j ) První a poslední sloupec získáme z okrajovýc podmínek, spodní řádek z počáteční podmínky Odspodu počítáme odnoty ve všec uzlec Napříkladvypočteme f 2,1 = 1 2 (f 1,0+f 3,0 )= 1 2 (0,95106+0,58779)=0,769425 0,76943 Výsledky zapíšeme do tabulky: 0, 78134 0, 74310 0, 632 0, 45926 0, 24145 0 j = 5 0, 78134 0, 74157 0, 63013 0, 45754 0, 24049 0 j = 4 0, 82087 0, 77927 0, 66227 0, 48099 0, 25282 0 j = 3 0, 86239 0, 81889 0, 69615 0, 50564 0, 26583 0 j = 2 0, 90602 0, 86064 0, 73177 0, 53167 0, 27951 0 j = 1 0, 95185 0, 90451 0, 76943 0, 55902 0, 29390 0 j = 0 1 0, 95106 0, 80902 0, 58779 0, 30902 0 i=0 i=1 i=2 i=3 i=4 i=5 V prvním řádku tabulky jsou odnoty přesnéo řešení v uzlovýc bodec 2
3 Příklad2:Řešmeparciálnídiferenciálnírovnicinaintervalu 0,1 0; 5 36 t = 2 f x 2 sokrajovýmipodmínkami f(0,t)=0, f(1,t)=0, apočátečnípodmínkou f(x,0)=1pro x=0,5, f(x,0)=0jinak, δx= 1 6, δt= 1 36 Označíme r= δt δx 2=1Dosazenímdorovnicezískámerovnice f i,j+1 = f i 1,j f i,j +f i+1,j Výsledky zapíšeme do tabulky: j = 5 0 25 44 51 44 25 0 j=4 0 9 16 19 16 9 0 j=3 0 3 6 7 6 3 0 j=2 0 1 2 3 2 1 0 j=1 0 0 1 1 1 0 0 j=0 0 0 0 1 0 0 0 i=0 i=1 i=2 i=3 i=4 i=5 i=6 Vidíme, že numerické řešení není stabilní, nekonverguje k řešení rovnice, není splněna podmínka r 1 2 Zpředcozíopříkladujepatrné,žepronezápornépočátečníaokrajovépodmínkymusí vycázet v uzlovýc bodec nezáporné odnoty numerickéo řešení IMPLICITNÍ METODA V rovnici(t) naradíme derivaci f podle t zpětnou aproximací Rovnici zapíšeme ve tvaru f i,j f i,j 1 δt = f i+1,j 2f i,j +f i 1,j δx 2 Označíme-li r= δt δx 2,lzerovnicinapsatvetvaru rf i 1,j +(1+2r)f i,j rf i+1,j = f i,j 1 Prokaždé j= N 1,N 2,,0řešímesoustavu M 1lineárnícrovnic,kteroulzezapsatjako maticovou rovnici 3
4 1+2r r 0 0 0 0 0 0 0 r 1+2r r 0 0 0 0 0 0 0 r 1+2r r 0 0 0 0 0 0 0 0 0 0 0 r 1+2r r 0 0 0 0 0 0 0 r 1+2r Metoda je stabilní pro jakoukoli volbu r f 1,j rf 0,j f 2,j 0 f = 3,j 0 + f M 2,j 0 f M 1,j rf M,j f 1,j+1 f 2,j+1 f 3,j+1 f M 2,j+1 f M 1,j+1 = Příklad3:Řešmeparciálnídiferenciálnírovnicinaintervalu 0, 4 6 0; 4 36 = 0,2 3 0;1 9 t = 2 f x 2 sokrajovýmipodmínkami f(0,t)=0, f( 4 6,t)=0, apočátečnípodmínkou f(x,0)=1pro x= 2 6 = 1 3, f(x,0)=0jinak, δx= 1 6, δt= 1 36 Označíme r= δt δx 2=1Dosazenímdorovnicezískámerovnice f i+1,j +3f i,j f i 1,j = f i,j 1 Máme M, N=4Prokaždé j=0,1,2,3řešímesoustavu3lineárnícrovnic,kteroulzezapsat jako maticovou rovnici 3 1 0 1 3 1 f 1,j+1 f 2,j+1 = f 1,j f 2,j + f 0,j 0 0 1 3 f 3,j+1 f 3,j f 4,j Protože v našem příkladě jsou okrajové podmínky nulové, jsou členy poslední matice samé nuly Označíme-li A= 3 1 0 1 3 1, X j = f 1,j f 2,j, 0 1 3 f 3,j lze rovnici psát ve tvaru AX j+1 = X j odtud X j+1 = A 1 X j Pronašimatici Aje A 1 = 1 8 3 1 8 24 8 1 3 8 Zpočátečnípodmínkyzískáme X 0 = f 1,0 f( 1 6,0) f 2,0 = f( 2 6,0) = 0 1 f 3,0 f( 3 6,0) 0 Vypočteme 4
X 1 = A 1 X 0 = 1 8 3 1 8 24 8 0 1 0,14286 1, 14286, 1 3 8 0 0, 14286 5 X 2 = A 1 X 1 = 1 8 3 1 8 24 8 0,14286 1, 14286 0,22449 1, 41497, 1 3 8 0, 14286 0, 22449 X 3 = A 1 X 2 = 1 8 3 1 8 24 8 0,22449 1, 41497 0,29835 0, 37348, 1 3 8 0, 22449 0, 29835 X 4 = A 1 X 3 = 1 8 3 1 8 24 8 0,29835 0, 37348 0,18118 0, 65381 1 3 8 0, 29835 0, 18118 Výsledky zapíšeme do tabulky: j = 4 0 0, 18118 0, 65381 0, 18118 0 j = 3 0 0, 29835 0, 37318 0, 29835 0 j = 2 0 0, 22449 1, 41497 0, 22449 0 j = 1 0 0, 14286 1, 14286 0, 14286 0 j=0 0 0 1 0 0 i=0 i=1 i=2 i=3 i=4 Výodou implicitní metody je její bezpodmínečná stabilita Numerické řešení při zjemnění sítě konverguje k přesnému řešení rovnice Naopak nevýodou je značná výpočetní náročnost oproti explicitní metodě 5
6 Black-Scolesova rovnice Řešme parciální diferenciální rovnici t +rs S +1 2 σ2 S 2 2 f S2= rf (BS) V oblasti, ve které ledáme řešení, zvolíme konečnou množinu(síť) bodů(uzlů) Derivace naradíme lineárními kombinacemi funkčníc odnot v uzlec Dostaneme soustavu konečně mnoa rovnic pro odnoty v uzlec Mějmesíť 0,S max 0,T,rozdělmeinterval 0,S max nastejnédílydélky δsa 0,T nastejné díly délky δt Hledejme přibližné vyjádření funkce f(s, t), která vystupuje v parciální diferenciální rovnici, neboli ledejmejejíodnotyvuzlovýcbodec[iδs,jδt], i=0,1,2,,m, k=0,1,2,,n Označme f i,j = f(iδs,jδt) APROXIMACE DERIVACÍ Aproximace parciálníc derivací 1řádu: Přímádiference: t = f i,j+1 f i,j δt S = f i+1,j f i,j δs Zpětnádiference: t = f i,j f i,j 1 δt S = f i,j f i 1,j δs Střednídiference: t = f i,j+1 f i,j 1 2δt S = f i+1,j f i 1,j 2δS Aproximace parciální derivace 2řádu: 2 fi+1,j fi,j f S 2= δs δs Okrajové podmínky: pro evropskou call opci: fi,j fi 1,j δs f(s,t)=max{s K,0}, f(0,t)=0, f(s max,t)=s max Ke r(t t), pro evropskou put opci: f(s,t)=max{k S,0}, f(0,t)=ke r(t t), f(s max,t)=0 = f i+1,j 2f i,j +f i 1,j δs 2 6
EXPLICITNÍ METODA V rovnici(sb) aproximujeme parciální derivaci prvnío řádu f podle S střední diferencí, podle t zpětnou diferencí: 7 f i,j f i,j 1 δt +riδs f i+1,j f i 1,j 2δS + 1 2 σ2 i 2 δs 2f i+1,j 2f i,j +f i 1,j δs 2 = rf i,j Okrajové podmínky: Například pro americkou put opci: f i,n =max{k iδs,0}, i=0,1,,m, f 0,j = K, j=0,1,,n, f M,j =0, j=0,1,,n pro evropskou call opci: f i,n =max{iδs K,0}, i=0,1,,m, f 0,j =0, j=0,1,,n, f M,j = S max Ke r(n j)δt j=0,1,,n, pro evropskou put opci: f i,n =max{k iδs,0}, i=0,1,,m, f 0,j = Ke r(n j)δt, j=0,1,,n, f M,j =0, j=0,1,,n Rovnici(SB) lze zapsat ve tvaru f i,j 1 = a i f i 1,j +b i f i,j +c i f i+1,j, i=1,2,,m 1, j= N 1,N 2,,1,0, kde a i = 1 2 δt(σ2 i 2 ri), b i =1 δt(σ 2 i 2 +r), c i = 1 2 δt(σ2 i 2 +ri) Explicitnímetodajezajistýcpodmínekstabilní,napřpokud a i 0, b i 0, c i 0, i = 1,2,,M 1,aδt 1 σ 2 M Nenítedypravda,žesezvětšujícímse M,tedysezmenšujícímse δsči 2 sezvětšujícímse S max,jemetodapřesnější IMPLICITNÍ METODA V rovnici(sb) aproximujeme parciální derivaci prvnío řádu f podle S střední diferencí, podle t přímou diferencí: f i,j+1 f i,j δt +riδs f i+1,j f i 1,j 2δS + 1 2 σ2 i 2 δs 2f i+1,j 2f i,j +f i 1,j δs 2 = rf i,j Rovnici(SB) lze zapsat ve tvaru f i,j+1 = a i f i 1,j +b i f i,j +c i f i+1,j, i=1,2,,m 1, j= N 1,N 2,,1,0, kde a i = 1 2 δt(ri σ2 i 2 ), b i =1+δt(σ 2 i 2 +r), c i = 1 2 δt(σ2 i 2 +ri) 7
8 Prokaždé j= N 1,N 2,,0řešímesoustavu M 1lineárnícrovnic,kteroulzezapsatjako maticovou rovnici MATLAB b 1 c 1 0 0 0 0 0 0 0 f 1,j a 2 b 2 c 2 0 0 0 0 0 0 f 2,j 0 a 3 b 3 c 3 0 0 0 0 0 f 3,j = 0 0 0 0 0 0 a M 2 b M 2 c M 2 f M 2,j 0 0 0 0 0 0 0 a M 1 b M 1 f M 1,j f 1,j+1 a 1 f 0,j f 2,j+1 0 f = 3,j+1 0 f M 2,j+1 0 f M 1,j+1 c M 1 f M,j K numerickému řešení parciálníc diferenciálníc rovnic je k dispozici speciální Toolbox či doplňky MATLABu, např program FEMLAB 8