Você está na página 1de 12

Método explícito

subistituindo

∂yiv yi,v+1 −yiv


= ∆τ
+ O(∆τ )
∂τ
2
∂ yiv yi+1,v −2yiv +yi−1,v
= ∆x2
+ O(∆x2 )
∂x2
em (4.2) e descartar os termos de erro leva à equação
wi,v+1 − wiv wi+1,v − 2wiv + wi−1,v
=
∆τ ∆x2
para a aproximação w. Resolvendo para wi,v+1 obtemos
∆τ
wi,v+1 = wiv + ∆x2
(wi+1,v − 2wiv + wi−1,v)
∆τ
com abraviação λ :=∆x2
resultado é escrito de forma compacta

wi,v+1 = λwi−1,v + (1 − 2λ)wiv + λwi+1,v (1)

A Figura 1 acentua os nós que são conectados por esta fórmula. Tal esquema gráco
ilustrando a estrutura da equação é chamado molécula.

Figure 1: Esquema de conexação do método explícito

A equação (1) e a Figura 1 sugerem uma avaliação organizada por níveis de tempo. Todos
os nós com o mesmo índice formam o v - ésimo nível de tempo. Para xo os valores wi,v+1 para
todo i do nível de tempo v + 1 são calculados. Então avançamos para o próximo nível de tempo.
A fórmula (1) é uma expressão explícita para cada um dos wi,v+1 ; os valores w no nível v + 1
não são acoplados. Já que (1) fornece uma fórmula explícita para todo wi,v+1 (i = 0, 1, . . . , m),
este método é chamado método explícito ou método diferença direta.
Início: Para v = 0 os valores de wi0 são dados pelas condições iniciais
wi0 = y(xi , 0) para y de (4.4), 0 ≤ i ≤ m .
Os w0v e wmv para 1 ≤ v ≤ vmax são xados por condições de contorno. Nas próximas
páginas, para simplicar, denimos articialmente w0v = wmv = 0. As condições de contorno
corretas são adiadas para a Seção 4.4.
Para a análise a seguir, é útil coletar todos os valores w do tempo nível v em um vetor,

w(v) := (w1v , . . . , wm−1,v )tr .

1
O próximo passo em direção a uma notação vetorial do método explícito é introduzir a
matriz tridiagonal constante (m − 1) × (m − 1)

 
1 − 2λ λ 0 ... 0
.. .. .
.
λ 1 − 2λ . .
 
 . 
.. .. ..
 
A:=Ampli:= 0 . . . 0 
 
. .. .. ..
.
 
 . . . . λ 
0 ... 0 λ 1 − 2λ
(2)

Agora, o método explícito na notação de matriz-vetor lê

(v+1)
w = Awv para v = 0, 1, 2, . . . (3)

A formulação de (2) com a matriz A e a iteração (3) são necessárias apenas para investigações
teóricas. Um programa de computador real preferiria usar a versão (1). O índice do loop
interno i não ocorre explicitamente no notação vetorial de (2). Para ilustrar o comportamento
do método explícito, realizamos um experimento com um exemplo articial, onde as condições
iniciais e as condições de contorno não são relacionadas a nanças.
Exemplo
yτ = yxx , y(x, 0) = sin πx, x0 = 0, xm = 1, condições de contorno y(0, τ ) = y(1, τ ) = 0 (ou
seja, w0v = wmv = 0). O objetivo é calcular uma aproximação w para um (x, τ ), por exemplo,
π2τ
para x = 0, 2 , τ = 0, 5. A solução exata é y(x, τ ) = e sin πx, tal que y(0.2, 0.5) = 0.004227....
Realizamos dois cálculos com o mesmo ∆x = 0, 1 (daí 0, 2 = x2 ), e dois ∆τ diferentes:
a) ∆τ = 0, 0005 ⇒ λ = 0, 05 0,5 = τ1000 , w2,1000 = 0.0, 00435(b)∆τ = 0, 01 ⇒ λ = 1, 0, 5 =
τ50 , w2 , 50 = 1, 5108 (os números reais dependem do computador)
Acontece que a escolha de ∆τ em (a) levou a uma aproximação razoável, considerando que
a escolha em (b) causou um desastre. Aqui temos um problema de estabilidade!

Método implícito

No método explícito na Subseção 4.2.3, aproximamos a derivada temporal com uma difer-
ença directa, forward como visto de o v -ésimo nível de tempo. Agora tentamos a diferença
retrógrada

∂yiv yiv −yi,v−1


= ∆τ
+ O(∆τ )
∂τ
que produz a alternativa para (1)

−λwi+1,v + (2λ + 1)wiv − λwi−1,v = wi,v−1 (4)

A equação (4) relaciona o nível de tempo com o nível de tempo v − 1. Para o transição de
v−1 para apenas o valor wi,v−1 no lado direito de (4) é conhecido, enquanto no lado esquerdo

2
da equação três incógnitas valores de w esperam para serem calculados. A equação (4) acopla
três incógnitas.
A molécula correspondente é mostrada na Figura 3. Não há fórmula explícita simples com
a qual o desconhecido pode ser obtido um após o outro. Mais do que um sistema devem ser
considerados, todas as equações simultaneamente. Uma notação vetorial revela a estrutura de
(4): Com a matriz

 
2λ + 1 −λ 0
.. ..
−λ . .
 
 
A := Ampli :=  .. .. ..

. . .
 
 
.. ..
0 . .

(v)
O vetor w é implicitamente denido como solução do sistema de equações lineares
(v)
Aw = wv−1 para v = 1, . . . , vmax

aqui novamente assumimos w0 = wm = 0. Para cada nível de tempo tal sistema de equações
deve ser resolvido. Este método às vezes é chamado de método implícito . Mas para distingui-lo
de outros métodos implícitos, nós o chamamos de totalmente implícito, ou método de diferença
retrógrada, ou, mais precisamente, tempo inverso esquema de espaço centrado (TIESC). O
método é incondicionalmente estável para todos ∆τ > 0. Isso é mostrado de forma análoga ao
caso explícito ( Exercício 4.2). Os custos deste método implícito são baixos, porque a matriz
A é constante e tridiagonal. Inicialmente, para v = 0, a LR-decomposição ( Apêndice C1) é
calculado uma vez. Então os custos para cada são apenas da ordem de O(m).

Figure 2: Esquema de conexação do método implícito

Método Crank-Nicolson
∂y
Para os métodos da seção anterior as discretizações de são da ordem O(∆τ ). Parece
∂τ
∂y 2
preferível usar um método em que a discretização do tempo tem a melhor ordem O(∆τ ),
∂τ
e a estabilidade é incondicional. Consideremos novamente a equação (4.2), o equivalente à
equação de Black-Scholes,

3
∂y ∂ 2y
=
∂τ ∂y 2

Crank e Nicolson sugeriram calcular a média do avanço e do recuo pelo método da diferença.
Para fácil referência, coletamos as abordagens subjacentes de cima:
Avançar para v:
wi,v+1 − wiv wi+1,v − 2wiv + wi−1,v
=
∆τ ∆x2
Recuar para:v +1
wi,v+1 − wiv wi+1,v − 2wi,v+1 + wi−1,v+1
=
∆τ ∆x2
Rendimentos de avanço:

wi,v+1 − wiv 1
= (wi+1,v − 2wiv + +wi−1,v + wi−1,v+1 − 2wi,v+1 + wi−1,v+1 )
∆τ 2∆x2
(5)

A equação (5) envolve em cada um dos níveis de tempo v e v+1 três valores w (Figura 3).
Esta é a base de um método eciente. Suas características estão resumidas no Teorema 4.4.

Figure 3: Molécula do método Crank-Nicolson (6)

Teorema 4.4 (Crank-Nicolson) Suponha que y seja suave no sentido y C 4. Então:

4
1. A ordem do método é O(∆τ 2 ) + O∆x2 ).

2. Para cada v um sistema linear de uma estrutura tridiagonal simples deve ser resolvido.

3. A estabilidade vale para todo ∆τ > 0.

Prova:

1. ordem: Uma notação prática para o quociente de diferença simétrica de segundo ordem
para yxx é

wi+1,v − 2wiv + wi−1,v


δx2 wix :=
∆x2
(6)

Aplique o operador δx2 à solução exata y. Então pela expansão de Taylor para y C 4 pode-se
mostrar

∂2 ∆x2 ∂ 4
δx2 yiv = 2
yiv + 4
yiv + O(∆x4 )
∂x 12 ∂x

O erro de discretização local descreve quão bem a solução exata y de (4.2) satisfaz o
esquema de diferença,

yi,v+1 − yiv 1 2
ε := − (δx yiv + δx2 yi,v+1 ).
∆τ 2

Aplicando o operador δx2 de (4.13) à expansão de yi,v+1 em τv e observando yτ = yxx leva


a

ε =O(∆τ 2 ) + O∆x2 ).

( Exercício 4.3)

∆τ
2. sistema de equações: Com λ := a equação (5) é reescrita
∆x2
λ λ λ λ
− wi−1,v+1 + (1 + λ)wi,v+1 − wi+1,v+1 = wi−1,v + (1 − λ)wiv + wi+1,v
2 2 2 2
(7)

Os valores do novo nível de tempo v+1 são dados implicitamente pelo sistema de equações
(8). Para as condições de contorno mais simples w0v = wmv = 0 A equação (8) é um
sistema de m−1 equações. Com matrizes

5
− λ2
 
1+λ 0
.. ..
− λ2 . .
 
A := ACN := 
 
.. ..

 . . − λ2 
0 − λ2 1+λ
λ
1−λ
 
2
0
λ .. ..
. .
 
A := BCN := 
 2 
.. ..

 . . λ 
2
λ
0 2
1−λ
(8)

o sistema (8) é rescrito

Aw(v+1) = Bw(v) (9)

Os autovalores de A são reais e estão entre 1 e 1 + 2λ. (Isto decorre de o Teorema de


Gerschgorin, ver Apêndice C1). Isso exclui um autovalor nulo e, portanto, A deve ser não
singular e a solução de (10) é exclusivamente denida.

3. estabilidade: As matrizes A e B podem ser reescritas em termos de uma matriz constante


tridiagonal,

−1
 
2 0
.. ..
λ  −1
 . .
 λ
A = I + G, G :=  ,B = I − G

2 .. .. 2
 . . −1 
0 −1 −2

Agora a equação (10) é lida

2I
| +{zλG} w
v+1
= (2I − λG)w(v)
= (AI − 2I − λG)w(v) (10)

= (AI − C)w(v)

(12)

o que leva à iteração formalmente explícita

6
w(v+1) = (4C −1 − I)w(v)
(13)

Os autovalores µC
k para k = 1, . . . , m − 1 são conhecidos do Lema 4.3,

kπ 2 kπ
µC G
k = 2 + λµk = 2 + λ(2 − 2 cos m ) = 2 + 4λ sin 2m

Em vista de (14) exigimos para um método estável que para todo k



4
µC − 1 < 1.

k

isso é garantido por causa de µC


k <2. Conseqüentemente, o Crank-Nicolson o método (9 e 10) é
incondicionalmente estável para todo λ > 0 (∆τ > 0).
Embora ainda faltem as condições de contorno corretas, faz sentido para formular a versão
básica do algoritmo Crank-Nicolson para o EDDP (4.2).

Algoritmo 4.5 (Crank-Nicolson)

Inicio: Escolha m, vmax ; calcular ∆x, ∆τ


wi0 = y(xi ; 0) com y de (4.4), 0

Calcule a LR-decomposição de A

ciclo: para v = 0, 1, . . . , vmax − 1 :

Calcule c := Bw(v) (preliminar)

Resolva Ax = c usando, por exemplo, a decomposição LR isto é, resolva Lz = Bw(v) e Rx = z


(+1)
w := x
A decomposição LR é o símbolo para a solução do sistema de equações. Mais tarde vere-
mos quando substituí-lo pela decomposição RL. É óbvio que as matrizes A e B não estão
armazenadas no computador.  A seguir, mostramos como o vetor c no Algoritmo 4.5 é mod-
icado para realizar o condições de contorno corretas.

Esquemas contra o vento e outros métodos

A instabilidade analisada para a combinação de modelos (6.15)/(6.16) ocorre quando o


número de Pclet da malha é alto e porque o simétrico e quociente de diferença centrado é
aplicado à derivada de primeira ordem. Em seguida, discutimoso caso extremo de um número
Peclet innito do problema do modelo, ou seja, b = 0. A EDDP resultante é a equação
prototípica

∂u ∂u
+a =0
∂t ∂x
7
Esquema contra o vento
A abordagem FTCS padrão para (6.21) não leva a um esquema estável. A EDDP (6.21)
tem soluções na forma de ondas viajantes,

u(x, t) = F (x − at),

onde F (ξ) = u0 (ξ) caso as condições iniciais u(x, 0) = u0 (x) sejam incorporadas. Para
a > 0, o perlF (ξ) utua na direção x positiva: o vento golpes para a direita. Visto de um
ponto da grade (j, v), o nó da vizinhança (j − 1, v) está a favor do vento e (j + 1, v) está a favor
do vento. Aqui o j indica o nó xj e v o instante de tempo tv . A informação ui de montante
para jusante nós. Assim, o esquema de diferença de primeira ordem

wj,v+1 − wji wji − wj − 1, v


+a =0 (14)
∆t ∆x
é chamada de discretização upwind (a > 0). O esquema (4) também é chamado de esquema
Forward Time Backward Space (FTBS). Aplicando a análise de estabilidade de von Neumann
ao esquema (4) leva aos fatores de crescimento dados por

Gk := 1 − γ + γe−ik ∆x (15)

a∆t (v)
Aqui γ = é o número de Courant de (6.18). O requisito de estabilidade é que ck k
∆x
permanece limitado para qualquer k e v → ∞. Então |Gk| ≤ 1 deve manter. É fácil ver que

γ ≤ 1 =⇒ |Gk| ≤ 1 (16)

(O leitor pode esboçar o plano G complexo para compreender a situação.) condição |γ| ≤ 1
é chamada de condição de Courant-Friedrichs-Lewy (CFL). A análise acima mostra que esta
condição é suciente para garantir estabilidade do esquema upwind (4) aplicado ao EDDP
(6.21) com condições iniciais prescritas.
Caso a ≤ 0, o esquema em (6.22) não é mais upwind. O esquema upwind para a≤0 é

wj,v+1 − wji wj+1,v − wj, v


+a =0 (17)
∆t ∆x
A análise de estabilidade de von Neumann leva à restrição |γ| ≤ 1, ou λ|β| ≤ 1 se expresso
em termos do número de Péclet da malha, ver (6.18).Esse novamente enfatiza a importância
de pequenos números de Péclet.
Notamos de passagem que o esquema FTCS para ut + aux = 0, qual é instável, pode ser
curado substituindo wjv pela média de suas duas vizinhanças. O esquema resultante

1 1
wj,v+1 = (wj+1,v + wj−1,v ) − γ(wj+1,v − wj−1,v ) (18)
2 2
é chamado esquema de Lax-Friedrichs. É estável se e somente se a condição CFL é satisfeito.
Um cálculo simples mostra que o esquema Lax-Friedrichs (6.25) pode ser reescrita na forma

wj,v+1 − wji wj+1,v − wj−1,v 1


= −a + (wj+1,v − 2wjv + wj−1,v ) (19)
∆t 2∆x 2∆t
Este é um esquema FTCS com o termo adicional

8
∆x2 2
δ wjv
2∆t x
representando o EDDP

ut + aux = ζuxx com ζ = ∆x2 /2∆t

Ou seja, a estabilização é realizada pela adição de difusão articial ζuxx. Diz-se que o
esquema (6.26) tem dissipação numérica.
∂u
Voltamos ao problema do modelo (6.15) com b > 0. Para a discretização do a termo
∂x
agora aplicamos o esquema upwind apropriado de (6.22) ou (6.24), dependendo do sinal da
constante de convecção a. Este não centrado esquema de diferença de primeira ordem pode ser
escrito

1 − sign(a) 1 + sign(a)
wj,v+1 = wjv − γ (wj+1,v − wji ) − γ (wjv−wj−1,v ) + λ(wj+1,v − 2wjv+wj−1,v )
2 2
(20)
com os parâmetros γ, λ denidos em (6.18). Para a > 0, os fatores de crescimento são

Figure 4: Esquema de upwind e outros metodos

9
Chamada europeia, k = 13, r = 0, 15, = 0, 01, T = 1. Aproximação V (S, 0), calculado
∂v
com esquema upwind para e ∆t = 0, 01, ∆S = 0, 1. Comparação com os valores exatos de
∂s
Black-Scholes (tracejado)

Gk = 1 − λ(2 + β)(1 − cos k∆x) − iλβ sin k∆x


A análise segue as linhas da Seção 6.4 e leva à estabilidade única critério

1
λ≤ (21)
1 + |β|
Esta desigualdade é válida para ambos os sinais de a ( Exercício 6.3). Para λ ≤ β a
1
desigualdade (6.28) é menos restritiva que (6.20). Por exemplo, uma hipótese valor de λ =
50
leva ao limite |β| ≤ 10 para o esquema FTCS (6.16) e ao limite |β| ≤ 48 para o esquema upwind
(6,27).
As Figuras 6.5 e 6.6 mostram a solução Black-Scholes (curva tracejada) e uma aproximação
obtida usando o esquema upwind como em (6.27). Não oscilações são visíveis, mas a ordem
baixa da aproximação pode ser vista do gradiente moderado, que não reete o gradiente ín-
greme do realidade. As ondulações espúrias desapareceram, mas o perl íngreme é fortemente
manchado. Portanto, o esquema upwind discutido acima é uma motivação para procurar mel-
hores métodos (na Seção 6.6).

Dispersão
As ondulações espúrias são atribuídas à dispersão. A dispersão é o fenômeno de diferentes
modos viajando em diferentes velocidades. Explicamos a dispersão para a EDP simples ut +
aux = 0. Considere para t=0 um perl inicial u representado por uma soma de modos de
Fourier, como em (6.17). Por causa da linearidade é suciente estudar como o k -ésimo modo
eikx é transmitido para t > 0. O equação diferencial ut + aux = 0 transmite o modo sem
ik[x−at]
mudança, porque e é uma solução. Para um observador que viaja com velocidade a ao
longo do eixo x, o modo aparece congelado.
isso não vale para o esquema numérico. Aqui a amplitude e a fase do modo k -ésimo pode
mudar. Ou seja, o perl inicial especial

ik[x−0]
1·e

pode mudar para

c(t) · eik[x−d(t)]
onde c(t) é a amplitude e d(t) a fase (até a distância do viajante no). Seus valores devem
ser comparados com os da solução exata. Para ser especíco, aplique a expansão de Taylor ao
esquema upwind para ut + aux = 0(a > 0),
w(x, t + ∆t) − w(x, t) w(x, t) − w(x − ∆x, t)
+a =0
∆t ∆x
para derivar a equação diferencial equivalente

wt + awx = ζwxx + ξxxx + O(∆2 ),


com
a
ζ := 2
− a∆t) = a2 ∆(1 − γ),
(∆x
ξ := a6 (−∆x2 + 3a∆t∆x − 2a2 ∆t2 ) = a6 ∆x2 (1 − γ)(2γ − 1).

10
Figure 5:

Uma solução pode ser obtida para o PDE truncado wt + awx = ζwxx + ξxxx . Substituindo
w = ei(ωt+kx) com frequência indeterminada ω dá ω e

w = exp (() − ζk 2 ) · exp ik[x − t(2 +a)]

so dene a amplitude relevante c(t) e a mudança de fase d(t), ou melhor


c(t) = exp−ζk 2 t
d(t) = ξk 2 t
ik[xatdk (t)]
O w = ck (t)e representa a solução do upwind aplicado esquema. É comparado com
ik[xat]
a solução exata u = e do problema do modelo, para o qual todos os modos se propagam
com a mesma velocidade a e sem decaimento da amplitude. A mudança de fase dk em w
devido a um ξ diferente de zero torna-se mais relevante se o número de onda k aumenta. Ou
seja, modos com diferentes ondas os números utuam na grade de diferenças nitas em taxas
diferentes. Consequentemente, um sinal inicial representado por uma soma de modos, muda
de forma à medida que viaja. As diferentes velocidades de propagação de diferentes modos
eikx dão origem a oscilações. Esse fenômeno é chamado de dispersão. (Observe que em nosso
1
cenário do problema de modelo simples com esquema upwind, para γ = 1 e γ = temos ξ = 0
2
e a dispersão desaparece.)
Um valor de |c(t)| < 1 equivale a dissipação. Se uma mudança de fase alta for compensada
pela dissipação pesada (c ≈ 0), então a dispersão é amortecida e pode ser quase imperceptível.

11
Para vários esquemas numéricos, valores relacionados de ζ e ξ foram investigados. Para a
inuência de dispersão ou dissipação ver, por exemplo, [St86], [Th95], [QSS00], [TR00]. A
dispersão é esperada para números esquemas que operam nas versões da equação de Black-
Scholes que tem um termo de convecção. Isso vale em particular para os métodos-θ descritos
na Seção 4.6.1 e para o esquema upwind. Esquemas numéricos para a versão livre de convecção
yτ = yxx não sofre dispersão.

References
[1] RUDIGER, U; Seydel; Tools for computational Finace: , Editora Spring, 2009,
rd
3 Edition

12

Você também pode gostar