Вы находитесь на странице: 1из 169

Métodos Numéricos em Finanças

Maria do Rosário Grossinho

4
3 20
2
1 15
0

10
5

10
5
15

20

Figura 1:

ISEG
2009

i
ii
Conteúdo

Introdução vii

1 Conceitos básicos 1
1.1 Formulação do problema . . . . . . . . . . . . . . . . . . . . . 1
1.2 Arbitragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Tipos de investidores e utilidade das opções . . . . . . . . . . 6
1.4 Outros tipos de opções . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Taxas de juro e valor actual . . . . . . . . . . . . . . . . . . . 7
1.6 Noções básicas de opções . . . . . . . . . . . . . . . . . . . . 8
1.6.1 O valor de uma opção . . . . . . . . . . . . . . . . . . 8
1.6.2 Estratégias e diagramas de payoff . . . . . . . . . . . . 9
1.6.3 Paridade Put - Call . . . . . . . . . . . . . . . . . . . 10

2 Opções europeias. Solução exacta 13


2.1 Transformação da equação de Black-Scholes . . . . . . . . . . 14
2.1.1 Problema de difusão equivalente . . . . . . . . . . . . 24
2.1.2 Solução exacta da equação de difusão . . . . . . . . . 26
2.1.3 Comportamento assintótico da solução exacta . . . . . 30
2.2 Retorno à equação de Black-Scholes . . . . . . . . . . . . . . 35
2.2.1 Put europeia . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.2 Observação numérica . . . . . . . . . . . . . . . . . . . 38
2.3 Códigos em C . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.1 Prog21 . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.2 Prog22 . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3 Soluções numéricas. Método explícito 47


3.1 Derivação numérica . . . . . . . . . . . . . . . . . . . . . . . . 48
3.1.1 Derivadas parciais . . . . . . . . . . . . . . . . . . . . 56
3.2 Resolução numérica da equação de difusão . . . . . . . . . . . 57

iii
iv CONTEÚDO

3.3 Aplicação ao caso Black-Scholes (call europeia) . . . . . . . . 65


3.4 Códigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.4.1 Programa prog42 . . . . . . . . . . . . . . . . . . . . . 67

4 Diferenças finitas: método implícito 73


4.1 Método implícito . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2 Resolução do sistema . . . . . . . . . . . . . . . . . . . . . . . 76
4.2.1 Decomposição L · U . . . . . . . . . . . . . . . . . . . 76
4.2.2 Caso tri-diagonal . . . . . . . . . . . . . . . . . . . . . 80
4.3 Método de Crank-Nicholson . . . . . . . . . . . . . . . . . . . 82
4.3.1 O método θ . . . . . . . . . . . . . . . . . . . . . . . . 84

5 Opções americanas 87
5.1 O problema de fronteira livre e as opções americanas . . . . . 88
5.2 Problema do obstáculo e as opções americanas . . . . . . . . 90
5.2.1 O problema do obstáculo . . . . . . . . . . . . . . . . 91
5.2.2 A formulação linear de complementaridade . . . . . . 92
5.2.3 Opções americanas e a equação de difusão . . . . . . . 93
5.2.4 Opções americanas e a formulação de complementari-
dade . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6 Modelo binomial 103


6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.2 Modelo binomial . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.2.1 Determinação de p, u e d . . . . . . . . . . . . . . . . 104
6.2.2 Triângulo dos preços futuros . . . . . . . . . . . . . . 108
6.2.3 Triângulo do valor das opções . . . . . . . . . . . . . . 110
6.3 Opções europeias . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.3.1 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.3.2 Valor esperado do payoff na maturidade . . . . . . . . 115
6.4 Opções Americanas . . . . . . . . . . . . . . . . . . . . . . . . 116
6.4.1 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 119

7 Introdução ao Método de Monte Carlo 121


7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.2 Cálculo de áreas e valor esperado . . . . . . . . . . . . . . . . 122
7.3 Método de Monte Carlo . . . . . . . . . . . . . . . . . . . . . 125
7.4 Monte Carlo e o cálculo de áreas . . . . . . . . . . . . . . . . 127
7.5 Opções financeiras . . . . . . . . . . . . . . . . . . . . . . . . 131
CONTEÚDO v

7.5.1 Call europeia . . . . . . . . . . . . . . . . . . . . . . . 131


7.5.2 Opção asiática . . . . . . . . . . . . . . . . . . . . . . 133
7.6 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

8 Séries Pseudo-Aleatórias 139


8.1 Gerador de números aleatórios . . . . . . . . . . . . . . . . . 139
8.1.1 Congruências . . . . . . . . . . . . . . . . . . . . . . . 139
8.1.2 Geração de números pseudo-aleatórios . . . . . . . . . 143
8.1.3 Distribuição uniforme e séries pseudo-aleatórias . . . . 144
8.2 Geração de variáveis aleatórias . . . . . . . . . . . . . . . . . 147
8.2.1 Método da inversa da função distribuição . . . . . . . 147
8.2.2 Geração da distribuição exponencial . . . . . . . . . . 148

9 Vectores Aleatórios Normais 149


9.1 Geração de variável aleatória normal . . . . . . . . . . . . . . 149
9.2 Geração de vectores aleatórios normais . . . . . . . . . . . . . 151
9.2.1 Vector normal de dimensão 2 . . . . . . . . . . . . . . 151
9.2.2 Método de Box — Muller . . . . . . . . . . . . . . . . . 152
9.2.3 Vector aleatório normal de dimensão n . . . . . . . . . 154
9.2.4 Factorização de Cholesky . . . . . . . . . . . . . . . . 155

A Apêndice 157
A.1 Convergência de variáveis aleatórias . . . . . . . . . . . . . . 157
A.2 Lei Forte dos Grandes Números. Teorema do Limite Central 158

B Bibliografia 161
vi CONTEÚDO
Introdução

Métodos Numéricos em Finanças é uma disciplina que emerge da aplicação


da Análise Numérica e da Teoria das Probabilidades às Finanças. Com
efeito, os modelos matemáticos das finanças geram frequentemente proble-
mas complexos de resolução muito difícil pelos meios analíticos tradicionais.
As técnicas numéricas revelam-se eficientes ao permitirem contornar essas
dificuldades fornecendo soluções implementáveis computacionalmente.

O presente texto resulta de notas primeiramente escritas para apoio à dis-


ciplina do mesmo nome, leccionada no curso de pós-graduação em Gestão de
Risco e Derivados, recentemente ampliadas para a leccionação no Mestrado
de Matemática Financeira. Não deixando de enquadrar a matéria de forma
fundamentada, o enfoque é contudo de carácter numérico, complementando,
na vertente calculatória, conhecimentos teóricos integrados em disciplinas de
análise estocástica das finanças.

Os primeiros capítulos tratam de aspectos analíticos e numéricos do mo-


delo de Black-Scholes para opções financeiras europeias e americanas. É
exposta a resolução analítica dos problemas de equações de derivadas par-
ciais subjacentes, incluindo problemas de fronteira livre. Passa-se então à
resolução numérica. Introduz-se o método o método de diferenças finitas
– explícito, implícito e de Crank-Nicholson. Em seguida, apresenta-se o
modelo binomial, ao nível descritivo e calculatório. Finalmente, faz-se uma
introdução ao método de Monte Carlo pondo em evidência a sua utilidade
na estimação de valores esperados e aplicando-o à simulação de opções fi-
nanceiras. É abordada a questão de geração de amostras de populações
que seguem determinadas distribuições, nomeadamente as distribuições uni-
forme, exponencial e normal.

Ao longo da exposição são apresentados exemplos numéricos e tabelas


ilustrativas, algumas das quais incluindo o código dos programas de cál-
culo, sendo outros deixados para apresentação em aula. São utilizados, com

vii
viii INTRODUÇÃO

alguma frequência, termos em inglês. Isso deve-se à circunstância de a res-


pectiva tradução, que também se inclui, revelar perda de expressividade e
comunicação. Acresce também o facto de ser esse o uso corrente, quer em
documentos escritos quer nas exposições orais da especialidade, o que leva
a que os estudantes devam estar familiarizados com a nomenclatura.
Sendo um documento de apoio à leccionação, este texto constitui uma
etapa de um projecto didáctico mais amplo que se encontra em desenvolvi-
mento.

ISEG, 2009
Maria do Rosário Grossinho
Capítulo 1

Conceitos básicos

Apreçamento, Cobertura de Risco e Arbitragem

1.1 Formulação do problema


Neste capítulo vamos tratar de derivados, com especial interesse em opções.
A designação de derivado decorre do facto de o seu valor depender de
activos subjacentes. Ao longo do texto utilizaremos com muita frequência
termos em inglês pelo facto de, na prática, o seu uso se ter tornado quase
universal.

O objectivo é o estudo de modelos que permitam determinar o valor


de derivados, bem como salientar o seu interesse na utilização de cobertura
de riscos. Estes dois aspectos são comummente designados por pricing e
hedging. Apresentaremos modelos discretos e contínuos. Antes, porém,
vamos introduzir algumas noções básicas bem como aflorar o interesse da
aplicação dos conhecimentos fornecidos no processo de pricing e hedging.
Comecemos por ver um exemplo que suscita o uso de opções:

Exemplo Uma empresa no ramo da indústria alimentar assumiu com


uma cadeia de supermercados o compromisso de manter inalterados até à
data de entrega os preços dos seus produtos fabricados a partir dos cereais
trigo e milho. Uma vantagem desse contrato é que a empresa tem à partida
a garantia do escoamento da sua produção. Contudo, um dos problemas
é o facto de a empresa correr o risco de ter de enfrentar um eventual au-
mento do preço de matéria-prima básica, o trigo e o milho, sem que possa

1
2 CAPÍTULO 1. CONCEITOS BÁSICOS

introduzir correcções nos preços dos seus produtos no momento da entrega.


Para se defender deste risco a indústria alimentar pode fazer um contrato
com os fornecedores de trigo e milho em que adquire o direito (mas não
a obrigação) de comprar trigo e milho aos seus fornecedores por um preço
pre-fixado (preço de exercício) numa data estipulada (maturidade).

Assim se o preço da matéria prima subir no mercado acima do acordado, ela


exerce o direito de opção adquirindo-a ao preço pre-fixado. Com isso, poderá
fabricar os seus produtos dentro dos cálculos financeiros previamente feitos,
estando defendida do aumento do preço do trigo e do milho. Se o preço
baixar não exerce o direito de compra, pois seria prejudicada. E nem pre-
cisa, pois neste caso o compromisso assumido inicialmente não terá prejuízo.
Há aqui um pormenor a ter em conta. É que o direito de opção entre poder
ou não comprar tem um preço inicial, o prémio. Embora seja um valor a pa-
gar, é um valor fixo, sem risco, o que permite fazer cálculos financeiros certos.

No exemplo apresentado, estamos perante uma opção de compra con-


tratada entre a empresa de indústria alimentar e os fornecedores de trigo e
milho.

Exemplo Suponhamos agora que uma empresa de investimentos vende


um fundo garantindo aos seus clientes que o valor desse fundo não cairá
abaixo de um certo plafond. Neste contrato, a empresa está a correr o risco
de, no caso de vir a verificar-se uma queda assinalável no valor dos activos,
assistir a uma descida do valor do fundo abaixo do mínimo valor contratado.
Para realizar uma estratégia de defesa, o gerente do fundo poderá fazer o
contrato em que adquire, junto de alguém interessado, o direito(mas não a
obrigação) de vender activos que compõem o fundo por um preço pre-fixado
(preço de exercício), dentro das suas conveniências, numa data estipulada
(maturidade).

Assim, se o preço dos activos cair abaixo do preço de exercício, ele poderá
vender esses activos pelo preço de exercício, o que, de acordo com a avaliação
da situação previamente feita, lhe permitirá cumprir o compromisso com os
seus clientes sem ter prejuízo. Mais uma vez há que ter em conta a despesa
fixa que constitui a aquisição do direito de venda (o prémio).
1.1. FORMULAÇÃO DO PROBLEMA 3

Neste caso, estamos perante uma opção de venda.

Poderemos dizer que a compra de opções pode ser uma forma de criar
um mecanismo de cobertura para o risco assumido.

Tipicamente há a considerar dois tipos de opções:

• Opção de Compra – Call Option – C(S, t), que confere o direito de


comprar um activo dentro, ou no fim, de um certo período de tempo,
por um preço fixado, cabendo à outra parte contratante o dever de o
vender.

• Opção de Venda – Put Option, P (S, t), que confere o direito de


vender um activo dentro, ou no fim de um certo período de tempo,
por um preço fixado, cabendo à outra parte contratante o dever de o
comprar.

O preço e a data de exercício da opção são fixados no momento do estabe-


lecimento do contrato e designam-se, respectivamente, por preço de exercício
K (strike price ou exercise price) e maturidade, expiração ou data de exe-
cução T (maturity ou expiration date). As opções americanas podem ser
exercidas em qualquer momento até à maturidade enquanto as opções eu-
ropeias só podem ser exercidas na maturidade. Sublinha-se que a aquisição
de uma opção confere ao seu detentor (holder ) um direito e não um dever.
Por outro lado, a outra parte contratante (writer ) é obrigada a vender ou
comprar, caso se trate de call ou put, respectivamente, se o detentor da
opção quiser exercer o seu direito.
O valor de uma call no momento da expiração, isto é, o payoff, é dado
por
C(S, T ) = max(S − E, 0);
isto é ⎧

⎨ S − E se S ≥ E
C (S, T ) =


0 se S < E.
Analogamente, o payoff de uma put, no momento da expiração, é
P (S, T ) = max(E − S, 0),

isto é, ⎧

⎨ E − S se S ≤ E
P (S, T ) =


0 se S > E
4 CAPÍTULO 1. CONCEITOS BÁSICOS

As opções são produtos derivados na medida em que o seu valor depende de


activos subjacentes. São transaccionadas em mercados de opções em todo o
mundo e os activos subjacentes podem ser de muitos tipos, desde acções a
moeda estrangeira, ou produtos agrícolas, por exemplo.

Um outro tipo de derivados são os futuros. Nestes, o comprador não


pode optar por exercer, ou não, o contrato. Este tem mesmo de ser exercido.
Daí resulta que um contrato de futuros não tem custos no momento do seu
estabelecimento. Pelo contrário, como já foi referido, as opções têm preço
de aquisição denominado premium, cujo cálculo constitui uma questão del-
icada.

Referindo uma lista de exemplos de derivados, temos.

• Calls e puts europeias

• Opções americanas

• Futuros

• Obrigações

Formulamos agora os dois principais problemas que abordaremos neste


capítulo
Problemas principais. Tomemos um derivado

• Qual é o preço adequado para o contrato, isto é, o fair price do


premium?

• Suponhamos que vendemos um derivado, por exemplo, uma call sobre


opções. Recebemos o premium. Mas, por outro lado, expusemo-nos,
portanto, a um certo risto no momento da maturidade, em que teremos
de possuir as referidas acções para vender, não sabendo que preço terão
nessa altura Como é que nos protejemos contra esse risco?

Os problemas enunciados são respectivamente referidos na literatura por

• Pricing – apreçamento

• Hedging – cobertura de risco

Teremos de ter presentes algumas ideias principais, tais como:


1.2. ARBITRAGEM 5

• Um derivado financeiro define-se em termos de activos subjacentes, já


existentes no mercado

• O valor do derivado não pode ser determinado arbitrariamente em re-


lação aos preços subjacentes, para evitar discrepâncias entre os valores
dos derivados e dos activos subjacentes

• Temos, portanto, de determinar o valor do derivado de modo consis-


tente com os activos subjacentes

• Não podemos calcular o preço dos derivados de forma absoluta, mas


sim tendo em conta o preço que estes têm no mercado.

1.2 Arbitragem
Um dos conceitos fundamentais inerentes à teoria de option pricing é o de
arbitragem. Ausência de arbitragem consiste em afirmar que não existem
oportunidades de lucro instantâneo sem risco, ou mais correctamente, a sua
existência será sempre num período de tempo não significativo pois a actu-
ação dos agente intervenientes levará a que os preços se movam no mercado
de forma a eliminarem essa situação.
O conceito de risk-free – sem risco – é um elemento base na teoria
actual dos modelos das finanças. Um investimento sem risco é aquele cujo
retorno é dado pelo que decorre da aplicação da taxa de juro ao montante
investido quando colocado no banco.
Em arbitragem as palavras chave são "instantâneo"e "risk-free". Num
investimento, poderemos vir a obter um retorno superior ao que o banco
daria pelo valor investido, mas não o sabemos à partida. Quanto maior for
o lucro que procurarmos obter maior será o risco a correr. Com efeito, se
soubessemos de antemão que o retorno seria superior ao da aplicação da
taxa de juro bancário, valeria a pena, de forma garantida, que contraísse-
mos empréstimos junto da banca para aplicar no referido investimento. Este
facto, pela certeza inerente, levaria muitos investidores a fazer o mesmo. O
aumento da procura de empréstimos bancários conduziria ao aumento da
taxa de juro, o que a certa altura faria com que já não fosse vantajoso,
recorrer ao crédito para investir. O mercado tinha corrigido naturalmente a
situação.A não existência de oportunidades de lucros instântaneos sem risco
remete-nos para a conhecida expressão "não há almoços grátis". O exem-
plo apresentado documenta o facto de a existência de tais oportunidades
6 CAPÍTULO 1. CONCEITOS BÁSICOS

ser extremamente instável, pois o mercado encarregar-se-á de as eliminar


naturalmente através de mecanismos de procura e oferta.
É preciso também ter em conta alguns aspectos dissipativos na con-
tracção de empréstimos tais como despesas de transação, diferença das taxas
de juro do empréstimo e do pagamento, problemas de liquidez, taxas legais,
etc, mas o que é facto é que existem no mercado arbitragers (muitíssimo
bem pagos) sempre prontos a aproveitar ainda que por tempo pouco sig-
nificativo, irregularidades ou anomalias de pricing que possam dar "lucros
instantâneos".

1.3 Tipos de investidores e utilidade das opções

Os mercados de derivados revelam grande sucesso na medida em que atraem


tipos bastante diferentes de investidores e apresentam uma liquidez elevada.
Quando um investidor pretende assumir uma parte de um contrato (por
exemplo, a compra de uma put option) não é dificil encontrar um outro
investidor disponível para assegurar a outra parte do contrato.
Existem três grandes categorias de investidores:

• Hedgers – analistas e controladores de risco — estabelecem contratos


com vista a eliminarem ou controlarem o risco resultante de possíveis
condições adversas em investimentos previamente feitos. Os exemplos
dados anteriormente são exemplos de hedging.

• Speculators – especuladores – fazem investimentos de compra e


venda de activos na convicção de que os valores subam, o que lhes
permitirá mais valias entre o preço de compra e o de venda. Há spe-
culators cujos investimentos duram apenas minutos, outros um dia e
também os há com horizontes dilatados.

• Arbitragers – investidores em arbitragem – são investidores que


tentam aproveitar deficiências na determinação do valor de activos
(misspricing) que lhes permitam lucros imediatos sem risco. Têm de
ter atenção continuada ao mercado pois, como já foi referido, estas
anomalias estão sempre a ser corrigidas pela oferta e procura, o que
leva a que as oportunidades de arbitragem sejam muito breves.
1.4. OUTROS TIPOS DE OPÇÕES 7

1.4 Outros tipos de opções


Para além das opções europeias e americanas já referidas, existem outros
tipos de opções, tais como as exóticas ou "path-dependent". Os seus
valores não dependem somente do preço de exercício mas também da história
do activo subjacente. Referimos:

• opções barreira - a opção pode surgir ou perder o valor consoante o


activo subjacente atinja algum valor pre-fixado antes da expiração.

• opções asiáticas - o preço depende de algum tipo de média (arit-


mética, geométrica, por exemplo).

• opções "lookback" - o preço depende do preço máximo ou mínimo


do activo subjacente.

1.5 Taxas de juro e valor actual


Iremos considerar quase sempre que a taxa de juro é função conhecida do
tempo, não necessariamente constante. Esta hipótese é razoável na medida
em que o valor das opções tem um tempo de vida de aproximadamente
nove meses, o que leva a que pequenas variações na taxa de juro não se
revelem significativas. Contudo, em investimentos de longa duração, títulos
do tesouro, por exemplo, o tempo de duração é tipicamente 10 ou 20 anos,
pelo que se deve entrar em conta com taxa de juro como variável aleatória.
Na determinação do valor das opções, o conceito mais importante que
faz intervir taxas de juro é o de valor actual ou descontado (present value
ou discounting) posto em evidência na pergunta seguinte

• Quanto deverá ser pago agora, t = 0, para que num tempo futuro T
seja recebida garantidamente a quantia K?

Assumindo que a taxa de juro é constante, obtém-se o valor actual de-


scontando no valor K o juro composto contínuo durante o tempo T . Se M
for uma quantia de dinheiro depositada no banco e sujeita continuamente a
uma taxa de juro constante r, o seu valor evolui de acordo com a equação
diferencial
dM
= rM.
dt
8 CAPÍTULO 1. CONCEITOS BÁSICOS

A solução é dada por

M (t) = cert , com c ∈ R.

Como para t = T a quantia de dinheiro é dada por M (T ) = K, tem-se

K = cerT

donde
c = Ke−rT

e, portanto,
M (t) = Ke−r(T −t) .

Se a taxa de juro não for constante mas seguir uma evolução dada por um
função r(t), a resolução da equação diferencial de primeira ordem leva a que
UT
M (t) = Ke− t r(s)ds
.

Por exemplo, aplicando à opções put, poderemos dizer que, sob a condição
de a taxa de juro r permanecer constante, temos

P (0, t) = Ke−r(T −t) .

1.6 Noções básicas de opções


1.6.1 O valor de uma opção
O valor de uma opção designa-se genericamente por V. Trata-se de uma
função de duas variáveis, V (S, t), nomeadamente o valor do activo subja-
cente S e o instante t. No caso de querermos precisar que se trata de uma
call ou uma put, escrever-se-á C(S, t) e P (S, t). O valor da opção depende
de parâmetros (alguns já referidos ao longo do texto) que enumeramos em
seguida:

• σ, a volatilidade do activo subjacente;

• K, o preço de exercício (exercise ou strike price)

• T, a expiração ou maturidade (expiry ou maturity)


1.6. NOÇÕES BÁSICAS DE OPÇÕES 9

• r, a taxa de juro

Num contrato de opção há dois intervenientes: o comprador, ou detentor,


do direito de opção (holder) e o vendedor desse direito (writer). Na gíria
financeira, diz-se que o primeiro adquiriu uma posição longa (long position)
enquanto o segundo tomou uma posição curta (short position). O writer
recebe dinheiro no momento do contrato (premium) mas pode vir a ter
perdas mais tarde, no momento do exercício. O comprador lucrará se o
vendedor perder e reciprocamente.

1.6.2 Estratégias e diagramas de payoff


Vejamos mais de perto o que se passa com os dois tipos de opções, call e
put. Comecemos por analisar o caso das opções europeias

Call
Suponhamos que o investidor compra uma call com preço de exercício
100 euros para adquirir, passados quatro meses, 100 shares de acções de
uma empresa X de computadores. Suponhamos que o preço actual de cada
share é de 98 euros e que o preço de uma opção para adquirir 1 share é
5 euros, o que corresponde a um investimento inicial de 500 euros. Se, na
maturidade, o valor de cada share for inferior a 100 euros, não vale a pena
exercer o direito de compra, pois pagaria directamente no mercado, pelo
mesmo share, um valor inferior. Nesse caso, contudo, o investidor perderia
o investimento inicial de 500 euros
Se na maturidade o preço for superior a 100 euros, a opção deverá ser
exercida. Por exemplo se for de 115 euros, o investidor exerce o seu direito
comprando cada share por 100 euros e pode vender de imediato no mercado
por 115, com um diferencial positivo de 15 euros em cada e, na totalidade,
de 1500. Subtraindo o investimento inicial, e esquecendo eventuais taxas de
transacção, o lucro final será de 1000 euros.
O exemplo anterior ilustra a fórmula já apresentada no início


⎨ S − K se S ≥ K
C (S, T ) =


0 se S < K.

Put
Contrariamente ao que acontece com o investidor numa call, cujo desejo
é que o valor do activo subjacente suba, o investidor numa put espera que
10 CAPÍTULO 1. CONCEITOS BÁSICOS

ele decresça. Com efeito, suponhamos que um investidor compra uma put
para vender 100 shares de uma empresa Y por um preço de exercício 70
euros. Suponhamos que o preço actual de cada share é de 65 euros, o preço
de cada opção é de 7 euros e a maturidade é de 3 meses. O investimento
inicial é de 700 euros. Na maturidade, a opção só deverá ser exercida se o
preço de cada share for inferior a 70 euros, pois, se for superior, é preferível
ir vender directamente no mercado. Repare-se que neste caso, o investidor
perde o investimento inicial, ou seja, 700 euros.
Suponhamos que, pelo contrário, no exercício o preço de cada share é
de 55 euros. Então, exercendo o direito de opção, isto é, vendendo por 70
euros, há um diferencial de 15 euros em cada e, portanto, 1500 na totalidade.
Descontando, novamente o investimento inicial, e não entrando em conta
com eventuais taxas de transacção, o lucro será de 800 euros.

Como podemos ver este exemplo ilustra a fórmula já apresentada no


início ⎧

⎨ K − S se K ≥ S
P (S, T ) =


0 se S > K.

Exercício antecipado
Nos exemplos que acabámos de expor, as opções consideradas eram eu-
ropeias, isto é, só podiam ser exercidas na maturidade. As opções ameri-
canas podem ser exercidas até à maturidade. Ver-se-á mais tarde que exis-
tem circunstâncias que aconselham ao exercício da opção americana antes
da maturidade

1.6.3 Paridade Put - Call


A paridade put-call exprime-se pela equação finita

C − P = S − K · e−r(T −t) .

Trata-se de um princípio importante em opções. Traduz a relação entre o


activo subjacente e as respectivas opções call e put, em cada momento t.
Com efeito, suponhamos que constituimos um portfolio π adquirindo um
activo e uma put sobre esse activo (long) e vendendo uma call (short) sobre
o mesmo activo, isto é
π = S + P − C.
1.6. NOÇÕES BÁSICAS DE OPÇÕES 11

Suponhamos que ambas as opções C e P têm o mesmo valor de exercício


e a mesma maturidade. O valor do payoff deste portfolio no momento da
expiração é dado por

π(T ) = S + max(K − S, 0) − max(S − K, 0)

= K,

isto é, é precisamente K, quer S seja maior ou menor do que K. Este facto


constitui um exemplo de eliminação do risco num investimento através da
transacção de um activo e de opções.
Sendo K o payoff do portfolio π no momento da expiração T, um valor
adequado para este portfolio em cada momento t será então

K · e−r(T −t) ,

isto é, o valor de K descontado da taxa de juro r pelo tempo (T − t). Este


facto mostra que a valorização do portfolio coincide com a que seria obtida
por depósito bancário (risk free). A expressão "valor adequado"traduz o
facto de esse valor não permitir que seja gerada uma oportunidade de fazer
um lucro instantâneo sem risco, através de aquisição ou venda de opções e
activos usando empréstimos bancários, isto é, não permite arbitragem.
12 CAPÍTULO 1. CONCEITOS BÁSICOS
Capítulo 2

Opções europeias. Solução


exacta

A equação de Black-Scholes para uma call europeia C, cujo valor no instante


t e para um certo valor do activo subjacente S, se designa por C (S, t),
escreve-se
∂C 1 2 2 ∂ 2 C ∂C
+ σ S 2
+ rS − rC = 0, (2.1)
∂t 2 ∂S ∂S
onde S ∈]0, +∞[ e t ∈]0, T [
Sendo K o preço de exercício da opção e T a maturidade, C deverá
verificar as condições seguintes:
- condição final
C (S, T ) = max {S − K, 0} (2.2)

- condição de fronteira
C (0, t) = 0 (2.3)

- e condição assintótica (ou de fronteira no infinito)

C (S, t) v S quando S → ∞ (2.4)

Interpretaremos esta última condição como significando exactamente

C (S, t)
lim = 1. (2.5)
S→∞ S
Referimos ainda que o tempo é medido em qualquer unidade (de tempo),
mas com preferência absoluta pela unidade ano 1
1
O ano é a unidade de tempo mais usada em análise financeira, a começar pela taxa
de juro que exprime uma fracção de capital a pagar por ano.

13
14 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

2.1 Transformação da equação de Black-Scholes


Nesta secção vamos transformar a equação (2.1) numa equação equivalente
que tem a vantagem de ser matematicamente mais simples. É possível in-
dicar a solução exacta desta equação transformada e, partindo desta solução
exacta, inverter o percurso de modo a encontrar a solução exacta da call eu-
ropeia.
Tomemos K e T definidos anteriormente e designemos por σ a vola-
tilidade e por r a remuneração do capital sem risco. Façamos a seguinte
mudança das variáveis S e t, para as novas variáveis x e τ :

S = K · ex
τ
t = T− 1 2

e escrevamos
τ
C(S, t) = C(K · ex , T − 1 2) = K · v (x, τ ) (2.6)

ou, reciprocamente,
µ ¶
S
x = log (2.7)
K
1 2
τ = σ (T − t)
2
tendo-se
C (S, t)
v= .
K
É claro que (S, t) ∈]0, +∞[ ×]0, T [ se e só se (x, τ ) ∈] − ∞, +∞[ ×]0, 12 σ 2 T [.
Em consequência, iremos reescrever a equação (2.1). Comecemos por
exprimir as derivadas usando como habitualmente a regra da cadeia:
∂C ∂v dτ ∂v 1 2
= K· = −K · σ
∂t ∂τ dt ∂τ 2

∂C ∂v dx ∂v 1
= K· =K· ·
∂S ∂x dS ∂x S

µ ¶
∂2C ∂ 2 v dx 1 ∂v 1
= K· · · − ·
∂S 2 ∂x dS S ∂x S 2
2

µ 2 ¶
∂ v 1 ∂v 1
= K· · − ·
∂x2 S 2 ∂x S 2
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 15

Substituindo ficará
µ ¶
∂v 1 2 1 2 2 ∂2v 1 ∂v 1 ∂v 1
−K · σ + σ S K· 2
· 2− · + rSK · · − rKv = 0
∂τ 2 2 ∂x S ∂x S 2 ∂x S

ou seja,

1 ∂v 1 2 ∂ 2 v 1 2 ∂v ∂v
− σ2 + σ · 2− σ · +r· − rv = 0,
2 ∂τ 2 ∂x 2 ∂x ∂x
ou ainda
∂v ∂2v ∂v r ∂v r
− 2+ − 1 2· + 1 2 v = 0,
∂τ ∂x ∂x 2σ
∂x 2σ
o que pode escrever-se
à !
∂v ∂2v r ∂v r
− 2+ 1− 1 2 · + 1 2 v = 0.
∂τ ∂x 2σ
∂x 2σ

Se definirmos a quantidade
r
k1 = 1 2 (2.8)

encontra-se finalmente
∂v ∂2v ∂v
= + (k1 − 1) − k1 v, (2.9)
∂τ ∂x2 ∂x
com (x, τ ) ∈] − ∞, +∞[ ×]0, 12 σ 2 T [, que é a forma que a equação (2.1) toma
após a mudança de variáveis.
Prosseguiremos a simplificação da equação. Porém, de imediato teremos
que ver qual o efeito desta mudança de variáveis nas condições inicial e de
fronteira.

Condições inicial e de fronteira Com estas mudanças de variáveis,


a condição inicial e as condições de fronteira modificam-se naturalmente.
Dividindo ambos os membros de (2.2) por K ficará
½ ¾
C (S, T ) S−K
= max ,0
K K

ou seja, nas novas variáveis e dado que t = T equivale a τ = 0,


½ ¾
K · ex − K
v (x, 0) = max ,0
K

ou seja,
v (x, 0) = max {ex − 1, 0} (2.10)
16 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

Por outro lado, C (S, t) escreve-se como


à !
τ
C Kex , T − 1 2 ,

e para encontrar a expressão equivalente a C (0, t) = 0 temos que ter em


conta que C (0, t) = lim C (S, t) , uniformemente em t, o que aliás corres-
S→0
ponde à realidade financeira. Ora, sendo S = K · ex , tem-se que S → 0 se e
só se x → −∞, isto é,
lim Kex = 0
x→−∞

donde
C (0, t) = 0

é equivalente a
à !
τ
lim C (S, t) = lim C Kex , T − 1 2 =0

S→0 x→−∞

o que é o mesmo que escrever

lim v (x, τ ) = 0, (2.11)


x→−∞

o que mostra que a condição de fronteira (2.3) de que partimos é transfor-


mada numa condição assintótica .
Finalmente, consideremos a condição assintótica (2.5) que se pode escre-
ver desde logo
³ ´
C Kex , T − 1 τσ2
2
lim =1
x→+∞ K · ex
isto é,
³ ´
1 τ
E · C Kex , T − 1 2
σ
2
lim =1
x→+∞ ex
donde se obtem a expressão para a segunda condição assintótica

v (x, τ )
lim =1 (2.12)
x→+∞ ex

nas novas variáveis.


2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 17

Dimensões das quantidades

Na equação (2.1) temos a considerar 3 variáveis C, S, t dotadas de dimen-


são. De facto, C é um preço, uma variável cujo valor depende do padrão
monetário escolhido. Logo, podemos dizer que tem a dimensão de um preço.
O mesmo ocorre com S. Por outro lado, t tem a dimensão do tempo. Para
formalizar o que acabamos de dizer, escreve-se

dim [C] = P
dim [S] = P
dim [t] = T

As constantes que entram na equação de Black-Scholes (2.1) são r e σ.


Consideremos a dimensão de r. Sendo, num empréstimo, Q a quantidade de
dinheiro emprestada, q a remuneração e p o período de tempo do emprés-
timo, a taxa r determina-se pela expressão

r = (q/Q) /p

ou seja
q
Q q
r= =
p Q·p
o que nos indica qual a dimensão de r:

P
dim [r] = = T−1
P×T
Para determinar a dimensão da volatilidade σ vamos atender à definição
desta. Sabemos que a variância da variável aleatória
µ ¶
S (y + h)
X = log (2.13)
S (y)

é igual a hσ 2 , logo o desvio-padrão respectivo vale σ h. Por outro lado,
a variável (2.13) é adimensional, o mesmo acontecendo com o seu desvio-
padrão. Sendo assim, h √ i
dim σ h = 1

donde, visto que h tem a dimensão do tempo,


1
dim [σ] = h√ i = T−1/2
dim h
18 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

logo, em conclusão,
£ ¤
dim σ 2 = T−1

Com esta informação, podemos examinar a própria equação de Black-


Scholes
∂C 1 2 2 ∂ 2 C ∂C
+ σ S 2
+ rS − rC = 0
∂t 2 ∂S ∂S
sob o ponto de vista dimensional. Temos
∙ ¸
∂C
dim = P × T−1
∂t

porque ∂C
∂t é o quociente entre um “preço” e um “tempo”. Por razões análo-
gas tem-se ∙ ¸
∂C P
dim = = P0 = 1
∂S P
(quantidade adimensional) e
∙ ¸
∂2C P
dim 2
= 2 = P−1
∂S P

Sendo assim,
∙ 2
¸
2 2∂ C
dim σ S = T−1 × P2 × P−1 = T−1 × P
∂S 2
∙ ¸
∂C
dim rS = T−1 × P × P0 = T−1 × P
∂S
dim [rC] = T−1 × P

o que significa que a equação tem homogeneidade dimensional, uma vez


que todas as parcelas apresentam a mesma dimensão. Esta questão tem
importância decisiva quando se procede a uma mudança de variáveis como
na situação que estamos a tratar.

Por outro lado, a equação obtida após a mudança de variáveis é adimen-


sional. Constatemos esse facto.
C
O parâmetro K tem a dimensão de um preço, logo o quociente é
K
adimensional, isto é, o seu valor é independente da unidade monetária (ou
de qualquer outro padrão). Como temos

C (S, t)
v=
K
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 19

concluímos que v também é uma quantidade adimensional. O mesmo ocorre


com x uma vez que S é também um preço e daí a as quantidades
µ ¶
S S
e x = log
K K
serem independentes do padrão monetário.
Por outro lado, t é uma variável de tempo, ou seja, tem a dimensão do
tempo porque mede o tempo decorrido desde o instante do contrato até ao
instante particular que se considere. O seu intervalo de variação é

0≤t≤T

em que, como sabemos, T designa o instante do exercício da opção. A nova


variável τ relaciona-se com t pela equação
1
τ = σ 2 (T − t)
2
Ora,
£ ¤
dim [τ ] = dim σ 2 × dim [T − t] = T−1 × T = T0
logo, τ é uma variável adimensional.
Finalmente, no tocante a k1 tem-se
dim [r] T−1
dim [k1 ] = = = T0
dim [σ 2 ] T−1
logo, k1 é adimensional. Então, na equação (2.9) somente entram quanti-
dades (variáveis ou não) adimensionais.

Expressão final

Retomemos a equação (2.9):


∂v ∂2v ∂v
= 2
+ (k1 − 1) − k1 v
∂τ ∂x ∂x
e passemos a uma nova mudança da variável dependente:

v (x, τ ) = eα·x+β·τ · u (x, τ ) .

Como veremos em seguida, uma escolha adequada dos parâmetros α e β,


permitirá reduzir a equação anterior a uma outra mais simples. Derivemos
∂v ∂u
= β · eα·x+β·τ · u (x, τ ) + eα·x+β·τ
∂τ ∂τ
µ ¶
α·x+β·τ ∂u
= e β · u (x, τ ) +
∂τ
20 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

e
∂v ∂u
= α · eα·x+β·τ · u (x, τ ) + eα·x+β·τ
∂x ∂x
µ ¶
α·x+β·τ ∂u
= e α · u (x, τ ) +
∂x

donde se calcula a 2a derivada


∂2v ∂u
= α2 · eα·x+β·τ · u (x, τ ) + α · eα·x+β·τ · +
∂x2 ∂x

∂u ∂ 2u
+α · eα·x+β·τ · + eα·x+β·τ · 2 ,
∂x ∂x
cuja forma final fica
µ ¶
∂2v ∂u ∂ 2 u
= eα·x+β·τ 2
α · u + 2α · + .
∂x2 ∂x ∂x2

Substituamos na equação (2.9):


µ ¶
∂u 2 ∂u ∂ 2 u ∂u
β·u+ = α · u + 2α · + + (k1 − 1) · αu + − k1 u,
∂τ ∂x ∂x2 ∂x

donde
∂u ∂ 2u ∂u £ 2 ¤
= + [2α + (k1 − 1)] · + α + (k1 − 1) · α − k1 − β · u.
∂τ ∂x2 ∂x
A expressão anterior mostra que podemos escolher α e β de modo a eliminar
∂u
as parcelas contendo u e . Bastará que sejam respectivamente cumpridas
∂x
as seguintes igualdades:

α2 + (k1 − 1) · α − k1 − β = 0

2α + (k1 − 1) = 0

Resolvendo a segunda temos


1
α = − (k1 − 1)
2
e substituindo na primeira virá
1
β = − (k1 + 1)2 .
4
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 21

Assim, a mudança de variável dependente v → u referida no princípio deste


parágrafo assume a forma
³ ´
v (x, τ ) = exp − 12 (k1 − 1) x − 14 (k1 + 1)2 τ · u (x, τ ) , (2.14)

ou seja,
³ ´
u (x, τ ) = exp 1
2 (k1 − 1) x + 14 (k1 + 1)2 τ · v (x, τ ) (2.15)

e podemos escrever a equação na forma simplificada (equação do calor )

∂u ∂2u
= . (2.16)
∂τ ∂x2

Condições iniciais e de fronteira Com a última mudança de variá-


veis, as condições (2.10) (2.11) e (2.12) transformam-se respectivamente nas
seguintes:
- condição inicial
u (x, 0) = u0 (x) , (2.17)

em que ½ ¾
1 1
u0 (x) = max e 2 (k1 +1)x − e 2 (k1 −1)x , 0

- condição assintótica em −∞
∙ ¸
1 1 2
lim e− 2 (k1 −1)x− 4 (k1 +1) τ · u (x, τ ) = 0, (2.18)
x→−∞

- e condição assintótica em +∞

u (x, τ )
lim = 1. (2.19)
x→+∞ 1
(k +1)x+ 14 (k+1)2 τ
e 2 1

Observemos que, em particular, a condição (2.18) implica lim u (x, τ ) = 0.


x→−∞
Vejamos como se deduzem as condições acima referidas.

Condição inicial. Na condição (2.10)

v (x, 0) = max {ex − 1, 0}

multipliquemos ambos os membros por


1
e 2 (k1 −1)x > 0
22 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

Esta operação dá-nos


½ ¾
1 1 1
e 2 (k1 −1)x · v (x, 0) = max e 2 (k1 −1)x x
· e − e2 (k1 −1)x
,0

e, visto que
1
e 2 (k1 −1)x · v (x, 0) = u (x, 0) ,

teremos ½ ¾
1 1
(k1 +1)x (k1 −1)x
u (x, 0) = max e 2 − e2 ,0 .

Consequentemente, a condição inicial (2.10) é equivalente a

u (x, 0) = u0 (x)

em que os dados iniciais u0 (x) têm a expressão seguinte:


½ ¾
1 1
(k1 +1)x (k1 −1)x
u0 (x) = max e 2 − e2 , 0

ou seja, escrevendo como uma função contínua definida por ramos,


⎧ 1 1
(k1 +1)x

⎨ e2 − e 2 (k1 −1)x se x ≥ 0
u0 (x) = (2.20)


0 se x < 0,
uma vez que
1 1
e 2 (k1 +1)x ≥ e 2 (k1 −1)x

se e só se
1 1 1 1
k1 x + x ≥ k1 x − x,
2 2 2 2
isto é,
1 1
x≥− x
2 2
o que se verifica se e só se
x ≥ 0.

O gráfico de u0 (x) está representado na figura 2.1.

Condição assintótica em −∞. É claro que, por (2.14), escrever a


condição (2.11)
lim v (x, τ ) = 0
x→−∞
é o mesmo que escrever
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 23

15

10

-1 -0.5 0.5 1 1.5 2

Figura 2.1: Gráfico da função u0 (x) traçado para o valor típico de k1 = 2, 5

µ ¶
1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ
lim e · u (x, τ ) = 0
x→−∞

Daqui podemos deduzir que, se k1 > 1,

lim u (x, τ ) = 0,
x→−∞

uma vez que

1 1 2
lim e− 2 (k1 −1)x− 4 (k1 +1) τ
= +∞.
x→−∞

Em contrapartida, o facto de

lim u (x, τ ) = 0
x→−∞

não implica, por si só, a condição (2.18). Deste modo, a função u (x, τ ),
solução da equação de difusão (2.16), terá que satisfazer no quadro do mo-
delo de Black-Scholes à condição assintótica (2.18).

Condição assintótica em +∞. Quanto à segunda condição assin-


tótica
v (x, τ )
lim =1
x→+∞ ex
1 1 2
multipliquemos ambos os termos da fracção por e 2 (k1 −1)x+ 4 (k+1) τ . Então
1 1 2
e 2 (k1 −1)x+ 4 (k+1) τ
· v (x, τ )
lim = 1,
x→+∞ 1
(k −1)x+ 14 (k+1)2 τ
e 2 1 · ex
24 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

ou seja,
u (x, τ )
lim = 1,
x→+∞ 1
(k −1)x+ 14 (k+1)2 τ
ex ·e 2 1

o que dá, finalmente,

u (x, τ )
lim = 1,
x→+∞ 1
(k +1)x+ 14 (k+1)2 τ
e 2 1

como condição assintótica em +∞.

2.1.1 Problema de difusão equivalente


Como conclusão dos cálculos efectuados anteriormente, podemos dizer que:

O modelo de Black-Scholes para uma call europeia é equivalente ao pro-


blema de Cauchy para a equação de difusão seguinte (equação do calor):

∂u ∂2u
= ,
∂t ∂τ 2
com a condição inicial respectiva

u (x, 0) = u0 (x) , − ∞ < x < +∞,

em que, por (2.20),


⎧ 1 1
(k1 +1)x

⎨ e2 − e 2 (k1 −1)x se x ≥ 0
u0 (x) =


0 se x < 0,

juntamente com as condições assintóticas


- em −∞
µ ¶
1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ
lim e · u (x, τ ) = 0
x→−∞

- em +∞

u (x, τ )
lim = 1.
x→+∞ 1
(k +1)x+ 14 (k+1)2 τ
e 2 1

Vamos em seguida estudar a existência de solução deste problema e, a partir


dela, derivar a solução do problema de Black-Scholes que dará a expressão
da call europeia C (S, t) .
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 25

Fórmula de Poisson para a equação do calor

Vamos neste parágrafo sair do quadro estrito da equação de Black-Scholes


e considerar a teoria geral da equação do calor. Seja a equação
∂u ∂2u
= a2 2 (2.21)
∂t ∂x
(a > 0), juntamente com os dados iniciais a que deve estar sujeita a solução
u (x, t),
u (x, 0) = u0 (x) , − ∞ < x < +∞
Procuramos uma solução definida para t > 0, sob a hipótese de que a função
u0 (x) é contínua e dominada por uma função de crescimento exponencial.
A teoria das equações de difusão garante o seguinte resultado de existência
e unicidade.

Teorema 1 Seja u0 (x) uma função contínua em R tal que, para certas
constantes M0 ≥ 0 e b ≥ 0, se verifique

|u0 (x)| ≤ M0 eb|x| , ∀x ∈ R.

Então a função
Z ∞
1 (s−x)2
u (x, t) = √ u0 (s) · e− 4a2 t ds (2.22)
2a πt −∞

tem derivadas de todas as ordens a respeito de x e de t, para t > 0, e é a


única solução da equação (2.21) com a condição inicial

u (x, t) = u0 (x)

para −∞ < x < +∞.

A expressão (2.22) é designada por fórmula de Poisson para a equação


do calor.

Tome-se a expressão da solução


Z ∞
1 (s−x)2
u (x, t) = √ u0 (s) .e− 4a2 t ds. (2.23)
2a πt −∞
Considerando a mudança de variável s → y tal que

s = x + y 2at,


ds = 2at dy,
26 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

tem-se
s−x
y= √ ,
2at
donde,
y2 (s − x)2
= .
2a 4a2 t
Em consequência, a partir de (2.23)
Z ∞
1 (s−x)2
u (x, t) = √ u0 (s) .e− 4a2 t ds
2a πt −∞
Z ∞ ³ √ ´
1 y2 √
= √ u0 x + y 2at .e− 2a . 2at dy,
2a πt −∞
isto é, Z
1 ∞ ³ √ ´ y2
u (x, t) = √ u0 x + y 2at .e− 2a dy, (2.24)
2aπ −∞

que é uma nova forma de apresentar esta solução da equação de difusão. É


claro que
u (x, t) > 0.

2.1.2 Solução exacta da equação de difusão


Retomemos a equação de difusão, obtida da equação Black-Scholes, (2.16)
∂u ∂2u
= ,
∂t ∂τ 2
com a condição inicial respectiva

u (x, 0) = u0 (x) , − ∞ < x < +∞,

em que, por (2.20),


⎧ 1 1
(k1 +1)x

⎨ e2 − e 2 (k1 −1)x se x ≥ 0
u0 (x) =


0 se x < 0.
Como vimos na subsecção anterior, sendo a = 1, a solução da equação de
difusão é dada por
Z +∞
1 −(s−x)2
u (x, τ ) = √ u0 (s) .e 4τ ds,
2 πτ −∞
ou, na forma equivalente (2.24),
Z ∞ ³ √ ´
1 y2
u (x, τ ) = √ u0 x + y 2τ .e− 2 dy. (2.25)
2π −∞
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 27

em que a expressão dos dados iniciais se torna:

⎧ 1 √ √ x

⎪ e[ 2 (k1 +1)·(x+y 2τ )] − e[ 12 (k1 −1)·(x+y 2τ )] , se y ≥ − √

³ √ ´ ⎨ 2τ
u0 x + y 2τ =

⎪ x

⎩ 0, se y < − √ ,

¡ √ ¢
Esta expressão de u0 x + y 2τ , substituída em (2.25), conduz-nos a es-
crever
u (x, τ ) = I1 (x, τ ) − I2 (x, τ ) (2.26)
sendo
Z +∞ √
1 1 y2
I1 (x, τ ) = √ √ e 2 (k1 +1)·(x+y 2τ )
· e− 2 · dy,
2π −x/ 2τ
Z +∞ √
1 1 y2
I2 (x, τ ) = √ √ e 2 (k1 −1)·(x+y 2τ )
· e− 2 · dy.
2π −x/ 2τ

Tratando de forma adequada os integrais de I1 (x, τ ) e I2 (x, τ ) , veremos em


seguida que
1 1 2 1 1 2
u (x, τ ) = e 2 (k1 +1)x+ 4 (k1 +1) τ
· N (q1 ) − e 2 (k1 −1)x+ 4 (k1 −1) τ
· N (q2 ) (2.27)

onde N (y) é a função gaussiana


Z y
1 1 2
N (y) = √ e− 2 q dq
2π −∞

e
x 1 √
q1 = √ + (k1 + 1) · 2τ ,
2τ 2
x 1 √
q2 = √ + (k1 − 1) · 2τ .
2τ 2

Tratamento de I1

Mostremos que
Z +∞ √ 2
1 1
2τ )− y2
I1 (x, τ ) = √ √ e 2 (k1 +1)·(x+y dy
2π −x/ 2τ
Z +∞ 1

1 √ 2
1 1 1 2 − 2 y− 2 (k1 +1) 2τ
= √ e 2 (k1 +1)x · e 4 (k1 +1) τ · √ e dy.
2π −x/ 2τ
(2.28)
28 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

De facto, a primeira passagem é trivial pois


1 √ y2 1 √ 2
2τ )− y2
e 2 (k1 +1)·(x+y 2τ )
× e− 2 = e 2 (k1 +1)·(x+y .

Agora, consideremos o expoente que iremos reorganizar:

1 ³ √ ´ y2
(k1 + 1) x + y 2τ − =
2 2

h √ i
= 1
2 (k1 + 1) x + 1
2 (k1 + 1) y 2τ − y 2

h √ i
= 1
2 (k1 + 1) x − 1
2 y2 − (k1 + 1) y 2τ

h √ i
= 1
2 (k1 + 1) x − 1
2 y2 − (k1 + 1) y 2τ + 14 (k1 + 1)2 2τ − 14 (k1 + 1)2 2τ ,

o que se obteve somando e subtraindo

1
(k1 + 1)2 · 2τ .
4
Continuando,
1 ³ √ ´ y2
(k1 + 1) · x + y 2τ − =
2 2

∙³ ¸
1 11
√ ´2 1 2
= 2 (k1 + 1) · x − y − 2 (k1 + 1) 2τ − 2 (k1 + 1) · τ
2

³ √ ´2
= 1
2 (k1 + 1) · x + 14 (k1 + 1)2 · τ − 1
2 y − 12 (k1 + 1) 2τ ,

o que mostra a validade da igualdade (2.28).


Posto isto, para melhorar a expressão do integral, façamos uma nova
mudança de variável:

q = y − 12 (k1 + 1) 2τ ,

isto é,

y = q + 12 (k1 + 1) 2τ .

Logo os diferenciais são iguais,

dq = dy
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 29

e, quanto ao limite inferior de integração, fica


x √
y = − √ = q + 12 (k1 + 1) 2τ

donde
x 1 √
q = − √ − (k1 + 1) 2τ
2τ 2
Assim, pondo como notação
x 1 √
q1 = q1 (x, τ ) = √ + (k1 + 1) 2τ ,
2τ 2
temos Z +∞
1 1 1 2 1 2
I1 = √ e 2 (k1 +1)x+ 4 (k1 +1) τ × e− 2 q dq.
2π −q1

É simples verificar que


Z +∞ Z q1
1 2 1 2
e− 2 q dq = e− 2 q dq.
−q1 −∞

donde, considerando a função gaussiana


Z y
1 1 2
N (y) = √ e− 2 q dq,
2π −∞
podemos escrever finalmente
1 1 2
I1 (x, τ ) = e 2 (k1 +1)x+ 4 (k1 +1) τ
· N (q1 ) . (2.29)

Tratamento de I2

Passemos ao cálculo da expressão de I2 (x, τ ). Adoptando a mesma sequên-


cia de cálculos utilizada no tratamento de I1 e escrevendo
x 1 √
q2 = √ + (k1 − 1) · 2τ ,
2τ 2

chegamos a
1 1 2
I2 (x, τ ) = e 2 (k1 −1)x+ 4 (k1 −1) τ
· N (q2 ) . (2.30)

Algoritmo de cálculo de N (y)

Na definição da função gaussiana


Z y
1 1 2
N (y) = √ e− 2 q dq,
2π −∞
30 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

a função integranda não é primitivável no sentido em que não é conhecida


uma primitiva expressa por combinação de funções elementares. Todos os
livros de Probabilidades contêm tabelas de N (y) para 0 ≤ y ≤ 3, 5, com
passo igual a 0, 01 e quatro casas decimais. Para os valores no intervalo
[−3, 5; 0] usa-se a equação

N (y) = 1 − N (−y)

Para fins de programação é preferível dispôr de uma expressão algébrica que


nos dê o valor aproximação de N (y) como a que vamos apresentar. Seja,
para y ≥ 0, a função
1 y2 ¡ ¢
Φ (y) = 1 − √ e− 2 · a1 z + a2 z 2 + a3 z 3 + a4 z 4 + a5 z 5

sendo
1
z =
1 + 0, 2316419 · y
a1 = 0, 319381530
a2 = −0, 356563782
a3 = 1.781477937
a4 = −1.821255978
a5 = 1.330274429

A partir de Φ (y) podemos dar a expressão aproximada, exacta a 6 casas


decimais, de N (y):


⎨ Φ (y) se y ≥ 0
N (y) = (2.31)


1 − Φ (−y) se y < 0

2.1.3 Comportamento assintótico da solução exacta


Recordemos que o modelo de uma call europeia, dado pela equação de Black-
Scholes (2.1) com as condições (2.2), (2.3) e (2.4), assume a forma da
equação de difusão (2.16) com a condição inicial (2.17) e com as condições
assintóticas (2.18) e (2.19). Vimos anteriormente que a solução da equação
de difusão referida satisfaz a condição inicial (2.17). A questão óbvia (cuja
resposta não decorre directamente da teoria das equações de difusão) é a
seguinte: será que a solução também satisfaz as condições assintóticas? A
resposta é afirmativa como veremos em seguida.
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 31

Como sabemos a solução da equação de difusão associada à equação de


Black-Scholes tem a expressão (2.26)

u (x, τ ) = I1 (x, τ ) − I2 (x, τ )

onde, por (2.29) e (2.30),

1 1 2
I1 (x, τ ) = e 2 (k1 +1)x+ 4 (k1 +1) τ
· N (q1 )

1 1 2
I2 (x, τ ) = e 2 (k1 −1)x+ 4 (k1 −1) τ
· N (q2 ) ,

sendo N (y) a função gaussiana


Z y
1 1 2
N (y) = √ e− 2 q dq
2π −∞

e
x 1 √
q1 = √ + (k1 + 1) · 2τ ,
2τ 2

x 1 √
q2 = √ + (k1 − 1) · 2τ .
2τ 2
Tem-se, evidentemente

lim q1 (x, τ ) = −∞,


x→−∞

lim q1 (x, τ ) = +∞;


x→+∞

logo, pelas propriedades da gaussiana,

lim N (q1 (x, τ )) = 0,


x→−∞

lim N (q1 (x, τ )) = 1.


x→+∞

Pelos mesmos argumentos,

lim N (q2 (x, τ )) = 0,


x→−∞

lim N (q2 (x, τ )) = 1.


x→+∞
32 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

Condição assintótica em −∞. Segundo (2.18) a condição assintótica


em −∞ é
µ ¶
1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ
lim e · u (x, τ ) = 0.
x→−∞

Para ver que é verificada, basta provar que

L− −
1 = L2 = 0,

uma vez que são válidas as seguintes igualdades:


µ ¶
1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ
lim e · u (x, τ ) =
x→−∞

µ ¶
1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ
= lim e · I1 (x, τ )
x→−∞

µ ¶
1
− 12 (k1 −1)x− 4 (k1 +1)2 τ
− lim e · I2 (x, τ )
x→−∞

= L− −
1 − L2

= 0.

Ora,
µ ¶
1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ
L−
1 = lim e · I1 (x, τ )
x→−∞

µ ¶
1 1 1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ (k1 +1)x+ 4 (k1 +1)2 τ
= lim e ·e 2 · N (q1 )
x→−∞

= lim (ex · N (q1 ))


x→−∞

= lim ex · lim N (q1 )


x→−∞ x→−∞

= 0·0=0

e
2.1. TRANSFORMAÇÃO DA EQUAÇÃO DE BLACK-SCHOLES 33

µ ¶
1 1 2
L−
2 = lim e− 2 (k1 −1)x− 4 (k1 +1) τ · I2 (x, τ )
x→−∞

µ ¶
1 1 1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ (k1 −1)x+ (k1 −1)2
τ
= lim e · e2 4 · N (q2 )
x→−∞

= lim e−k1 · N (q1 )


x→−∞

= e−k1 · lim N (q1 )


x→−∞

= e−k1 · 0 = 0
pelo que a condição assintótica em −∞ é verificada.

Condição assintótica em +∞. Vamos verificar (2.19), isto é,


u (x, τ )
lim 1 = 1.
x→+∞ 1
(k +1)x+ 4 (k+1)2 τ
2 1
e
Ora
1 1 2
I1 (x, τ ) e 2 (k1 +1)x+ 4 (k1 +1) τ
· N (q1 (x, τ ))
lim = lim
x→+∞ 1 (k1 +1)x+ 1 (k+1)2 τ x→+∞ 1 1 2
e2 4 e 2 (k1 +1)x+ 4 (k+1) τ

= lim N (q1 (x, τ ))


x→+∞

= 1
e
1 1 2
I2 (x, τ ) e 2 (k1 −1)x+ 4 (k1 −1) τ
· N (q2 )
lim 1 = lim 1
x→+∞ 1
(k +1)x+ 4 (k+1)2 τ
2 1
x→+∞ 1
(k +1)x+ 4 (k+1)2 τ
2 1
e e

1 1 2
e 2 (k1 −1)x e 4 (k1 −1) τ
= lim × 1 × N (q2 )
x→+∞ e 12 (k1 +1)x 2
e 4 (k+1) τ

1 2
e 4 (k1 −1) τ
= 1 2
× lim e−x × lim N (q2 )
x→+∞ x→+∞
e 4 (k+1) τ

= 0.
34 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

x u (x, τ ) , τ = 0, 005 τ = 0, 010 τ = 0, 015


−0, 7 0, 000000 0, 000000 0, 000001
−0, 3 0, 000041 0, 000972 0, 003450
0, 0 0, 046862 0, 071029 0, 091846
0, 5 0, 976801 1, 010285 1, 044411
0, 9 2, 935717 3, 005860 3, 077155

Tabela 2.1: Tabela contendo valores numéricos da solução exacta da equação de


difusão associada a uma call europeia. Existem 3 colunas, uma para cada valor de
τ . O valor de u(x, τ ) encontra-se no cruzamento da linha e da coluna respectivas.
Usam-se os seguintes valores: taxa de juro r = 0, 05, volatilidade σ = 0, 2, o que
conduz ao valor k1 = 2, 5. Cálculos efectuados com o programa prog21a incluído
no fim do capítulo.

Logo

u (x, τ ) I1 (x, τ ) − I2 (x, τ )


lim 1 = lim 1
x→+∞ 1
(k +1)x+ 4 (k+1)2 τ x→+∞ 1 2
e 2 1 e 2 (k1 +1)x+ 4 (k+1) τ

= 1 − 0 = 1.

Ocorre, portanto, esta situação extraordinária que consiste no facto de a


solução exacta do problema de Cauchy para uma call europeia ser também
a solução do problema completo, isto é, incluindo as condições assintóticas.

A tabela 2.1 contém valores numéricos da solução exacta estudada acima.

Por uma questão de completude, resumimos o estudo que acabámos de


fazer sobre o problema de difusão associado ao problema de Black-Scholes
para uma call europeia no resultado seguinte:

(i) A solução u (x, τ ) da equação de difusão

∂u ∂2u
= 2
∂t ∂t
com condição inicial
⎧ 1 1
(k1 +1)x

⎨ e2 − e 2 (k1 −1)x se x ≥ 0
u0 (x) =


0 se x < 0
2.2. RETORNO À EQUAÇÃO DE BLACK-SCHOLES 35

tem a seguinte expressão

u (x, τ ) = I1 (x, τ ) − I2 (x, τ )

sendo
1 1 2
I1 (x, τ ) = e 2 (k1 +1)x+ 4 (k1 +1) τ
· N (q1 )

1 1 2
I2 (x, τ ) = e 2 (k1 −1)x+ 4 (k1 −1) τ
· N (q2 )

em que N (y) é a função gaussiana


Z y
1 1 2
N (y) = √ e− 2 q dq
2π −∞

e
x 1 √
q1 = q1 (x, τ ) = √ + (k1 + 1) · 2τ
2τ 2

x 1 √
q2 = q2 (x, τ ) = √ + (k1 − 1) · 2τ .
2τ 2

(ii) Além disso u (x, τ ) satisfaz as condições assintóticas seguintes:

- condição assintótica em −∞
∙ ¸
1 1
− 2 (k1 −1)x− 4 (k1 +1)2 τ
lim e · u (x, τ ) = 0,
x→−∞

- condição assintótica em +∞

u (x, τ )
lim = 1.
x→+∞ 1
(k +1)x+ 14 (k+1)2 τ
e 2 1

2.2 Retorno à equação de Black-Scholes

Vamos deduzir uma solução para a equação de Black-Scholes (2.1) com as


condições (2.2), (2.3) e (2.4) a partir da solução da equação de difusão (2.16),
com a condição inicial (2.17) e com as condições assintóticas (2.18) e (2.19),
utilizando a equivalência estabelecida anteriormente entre os dois problemas.
36 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

Notando que, a partir de (2.14), (2.6) e (2.7),


1 1 2
v (x, τ ) = e− 2 (k1 −1)x− 4 (k1 +1) τ
· u (x, τ )

1 1 2
= e− 2 (k1 −1)x− 4 (k1 +1) τ
· (I1 (x, τ ) − I2 (x, τ ))

1 1 2 1 1 2
= e− 2 (k1 −1)x− 4 (k1 +1) τ
· e 2 (k1 +1)x+ 4 (k1 +1) τ
· N (q1 )

1 1 2 1 1 2
−e− 2 (k1 −1)x− 4 (k1 +1) τ
· e 2 (k1 −1)x+ 4 (k1 −1) τ
· N (q2 )

= ex · N (q1 ) − e−k1 τ · N (q2 )

e, relembrando a mudança de variáveis,


µ ¶
S
x = log ,
K
1 2
τ = σ (T − t) ,
2
C (S, t)
v = ,
K
r 2r
k1 = 1 2 = 2 ,

σ

donde
2r 1 2
k1 τ = · σ (T − t) = r (T − t) ,
σ2 2
e, portanto,
µ µ ¶ ¶
S 1 2 S 2r 1 2
v log , σ (T − t) = elog( E ) · N (q1 ) − e− σ2 · 2 σ (T −t) · N (q2 )
K 2

S
= · N (q1 ) − e−r(T −t) · N (q2 ) .
K
Usando (2.14), obtemos
µ µ ¶ ¶
S 1
C (S, t) = K · v log , σ 2 (T − t)
K 2
µ ¶
S −r(T −t)
= E· · N (q1 ) − e · N (q2 )
K

= S · N (q1 ) − K · e−r(T −t) · N (q2 ) .


2.2. RETORNO À EQUAÇÃO DE BLACK-SCHOLES 37

Os valores N (q1 ) e N (q2 ) podem calcular-se pela equação (2.31). Porém,


q1 e q2 devem ser também expressos directamente em S e t:
¡ ¢
log (S/K) + r + 12 σ 2 (T − t)
q1 = √
σ T −t

¡ ¢
log (S/K) + r − 12 σ 2 (T − t)
q2 = √
σ T −t

O foi dito anteriormente constitui uma demonstração detalhada, do re-


sultado fundamental deste capítulo que enunciamos em seguida.

Teorema 2 O valor da call europeia C (S, t) , modelada pela equação de


Black-Scholes

∂C 1 2 2 ∂ 2 C ∂C
+ σ S 2
+ rS − rC = 0,
∂t 2 ∂S ∂S
com
- condição final
C (S, T ) = max {S − K, 0}

- condição de fronteira
C (0, t) = 0

- condição assintótica

C (S, t) v S quando S → ∞,

é dado por
C (S, t) = S · N (q1 ) − K · e−r(T −t) · N (q2 ) , (2.32)

onde N (y) é a função gaussiana


Z y
1 1 2
N (y) = √ e− 2 q dq
2π −∞

e ¡ ¢
log (S/K) + r + 12 σ 2 (T − t)
q1 = √
σ T −t
¡ ¢
log (S/K) + r − 12 σ 2 (T − t)
q2 = √
σ T −t
A expressão (2.32) é conhecida por Fórmula de Black-Scholes.
38 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

2.2.1 Put europeia


O valor de uma put europeia P (S, t) pode obter-se a partir da call europeia
com os mesmos parâmetros K, r, σ e T . Basta atender à paridade put-call :

C − P = S − K · e−r(T −t)

donde
P = C − S + K · e−r(T −t) . (2.33)

2.2.2 Observação numérica


Como vimos, foi possível estabelecer uma expressão explícita para o cálculo
de uma call europeia. Contudo, nem sempre é assim. Por exemplo, no caso
das opções americanas será necessário resolver numericamente a equação de
difusão e, depois, determinar os valores correspondentes para a opção. Por
isso, apesar de sabermos que, no caso presente, foi possível levar os cálculos
mais longe, vamos indicar o caminho decorrente de um esquema típico de
uma situação em que não existe uma solução exacta da equação de difusão.

Observemos que as fórmulas que estabelecem o retorno à equação de


Black-Scholes são as seguintes:
1 1 2
v (x, τ ) = e− 2 (k1 −1)x− 4 (k1 +1) τ
· u (x, τ )

e µ µ ¶ ¶
S 1
C (S, t) = K · v log , σ 2 (T − t) .
K 2
Na formulação da teoria, T aparece como um parâmetro indicador da
data de exercício da opção contada a partir do dia zero, ou seja do dia em
que se inicia o contrato respectivo. Para ser coerente com os sistema de
unidades T é expresso em anos e tipicamente será uma fracção do ano. Por
outro lado, t é uma variável que indica o dia para o qual se calcula o valor
da opção tendo em conta o preço do activo subjacente.
Quando passamos à transformação da equação de Black-Scholes nós ve-
rificamos que a solução depende de T e de t apenas pela diferença destes,
T − t. Ou seja, ceteris paribus o valor da opção depende do tempo que falta
para o exercício.

Dito isto, o processo de cálculo através da equação de difusão e retorno


à equação de Black-Scholes pode resumir-se e exemplificar-se no esquema
2.2. RETORNO À EQUAÇÃO DE BLACK-SCHOLES 39

S x u C P
2, 0 −1, 6094 0, 0000 0, 0000 7, 7531
3, 0 −1, 2040 0, 0000 0, 0000 6, 7531
4, 0 −0, 9163 0, 0000 0, 0000 5, 7531
5, 0 −0, 6931 0, 0000 0, 0000 4, 7531
6, 0 −0, 5108 0, 0000 0, 0001 3, 7532
7, 0 −0, 3567 0, 0003 0, 0037 2, 7568
8, 0 −0, 2231 0, 0040 0, 0456 1, 7987
9, 0 −0.1054 0, 0224 0, 2349 0, 9880
10, 0 0, 0000 0, 0710 0, 6889 0, 4420
11, 0 0, 0953 0, 1559 1, 4075 0, 1606
12, 0 0, 1823 0, 2713 2, 2952 0, 0483
13, 0 0, 2624 0, 4091 3, 2593 0, 0124
14, 0 0, 3365 0, 5640 4, 2497 0, 0028
15, 0 0, 4055 0, 7334 5, 2475 0, 0006
16, 0 0, 4700 0, 9164 6, 2470 0, 0001

Tabela 2.2: Tabela contendo valores numéricos da solução exacta da equação


de Black-Scholes para uma call europeia C e a respectiva put P . Situação
a 6 meses antes do exercício, ou seja, T − t = 0, 5. Usam-se os seguintes
valores: preço de exercício E = 10 euros, taxa de juro r = 0, 05, volatilidade
σ = 0, 2. Os valores da tabela foram calculados com o prog22 incluído no
fim do capítulo. Valor de τ igual a 0, 01. Comparar com Wilmott, Option
Pricing, pág. 283.

seguinte:

S = 12 T − t = 0, 25
↓ ↓
x = 0, 1823 τ = 0, 005 −→ u = 0, 2485

v = 0, 21348

C = 2, 1348

A tabela 2.2 contém valores da call para T − t = 0, 5.


A equação (5.2) foi utilizada para escrever a última coluna da tabela 2.2,
que diz respeito ao valor da put europeia.
40 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

2.3 Códigos em C
Apresentam-se os programas em C que foram usados para o cálculo das
tabelas 2.1 e 2.2.

2.3.1 Prog21
Dados o parâmetro k1 e os valores de x e de τ , o programa calcula o cor-
respondente valor de u (x, τ ). O programa está estruturado tomando como
base as seguintes funções:

1. q1(z, s, k) e q2(z, s, k) correspondentes às funções q1 e q2 . k corres-


ponde ao valor de k1 .

2. fac1(z, s, k) e fac2(z, s, k) correspondentes aos primeiros factores de


I1 e I2 , respectivamente.
1 Rz
3. normal(z) = √ exp (−0.5 ∗ s ∗ s) ds, pela aproximação (2.31).
2π −∞
4. main(). Esta função lê os valores de k1 , x e t e escreve o valor de u
correspondente.

Código

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
float q1(float z, float s, float k);
float q2(float z, float s, float k);
float fac1(float z, float s, float k);
float fac2(float z, float s, float k);
float normal(float z);
void main() {
float tau, x, k1, I1, I2;
float u, z1, z2;
printf("SOLUCAO DA EQUACAO DE DIFUSAO\n");
printf("valores a entrar: k1, x, tau\n\n");
printf("k1 = ");
2.3. CÓDIGOS EM C 41

scanf("%f", &k1);
printf("x = ");
scanf("%f", &x);
printf("tau = ");
scanf("%f", &tau);
printf("\n");
z1 = q1(x,tau,k1);
z2 = q2(x,tau,k1);
I1 = fac1(x,tau,k1) * normal(z1);
I2 = fac2(x,tau,k1) * normal(z2);
u = I1 - I2;
printf("x = %f tau = %f u = %f\n",x, tau, u);
}

float q1(float z, float s, float k) {


float h;
h = z/ sqrt(2*s)+ 0.5 * (k+1) * sqrt(2*s);
return h;
}

float q2(float z, float s, float k) {


float h;
h = z/ sqrt(2*s) + 0.5 * (k-1) * sqrt(2*s);
return h;
}

float fac1(float z, float s, float k) {


float p1, p2;
p1 = 0.5 * (k+1)* z;
p2 = 0.25* (k+1)*(k+1)* s;
return exp(p1 + p2);
}

float fac2(float z, float s, float k) {


float p1, p2;
p1 = 0.5 * (k-1)* z;
p2 = 0.25* (k-1)*(k-1)* s;
return exp(p1 + p2);
}

float normal(float z) {
42 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

float const pi = 3.14159265;


float const a1 = .319381530, a2 =-.356563782;
float const a3 = 1.781477937;
float const a4 = -1.821255978, a5 = 1.330274429;
float zu, gauss, y, p1, pol, FI;
if(z<0) zu = -z;
else zu = z;
gauss = 1/sqrt(2*pi) * exp(-0.5 * zu*zu);
y = 1 / (1 + .2316419 *zu);
p1 = a1* y + a2*y*y + a3* y*y*y + a4* y*y*y*y;
pol = p1 + a5* y*y*y*y*y;
FI = 1 - gauss * pol;
if(z>=0) return FI;
else return 1-FI;
}

2.3.2 Prog22
Dados os parâmetros T − t, σ, r, e os valores de S e de t, o programa
calcula os correspondentes valores de C (x, τ ) e de P (S, t). O programa está
estruturado tomando como base as mesmas funções do programa prog21 e
mais as seguintes:

1. difu(z, s, k) que calcula a solução da equação de difusão chamando as


funções q1, q2, fac1, fac2 e normal descritas anteriormente.

2. reg(z, s, k) que irá multiplicar a solução da equação de difusão de


modo a obter-se o valor da call, de acordo com (??) e (2.14).

3. main(). Esta função lê os valores de σ, r, E, S e T − t e escreve os


valores correspondentes de C e P . Com cálculos intermédios obtêm-se
k1 , x = log (S/E), τ , u =difu(x, τ , k1 ). O valor da put obtém-se de
C pela paridade (5.2).

Código

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
2.3. CÓDIGOS EM C 43

#include <math.h>

float q1(float z, float s, float k);


float q2(float z, float s, float k);
float fac1(float z, float s, float k);
float fac2(float z, float s, float k);
float normal(float z);
float difus(float xx, float tt, float kk);
float reg(float z, float s, float k);

void main() {
float sigma, r, E, S, Tt, C, P;
float tau, x, k1, I1, I2, u;
printf("CALL/PUT EUROPEIAS--SOLUCAO DA EQUACAO DE BLACK-SCHOLES\n\n");
printf("Parametros a entrar: taxa de juro, volatilidade,
custo de exercicio\n\n");
printf("Valores a entrar: precco do activo, tempo que falta
para o exercicio\n\n");
printf(- - - - - - - - - - - - - - - - - \n\n");
printf("volatilidade ’sigma’ = ");
scanf("%f", &sigma);
printf("taxa de juro ’r’ = ");
scanf("%f", &r);
printf("custo do exercicio ’E’ = ");
scanf("%f", &E);
printf("precco do activo ’S’ = ");
scanf("%f", &S);
printf("tempo restante para o exercicio, em anos, ’T-t’
= ");
scanf("%f", &Tt);
printf("\n");
k1 = r/(.5 * sigma * sigma);
x = log(S/E);
tau = .5 * sigma *sigma * Tt;
u = difus(x,tau,k1);
C = E * reg(x,tau,k1) * u;
P = C - S + E * exp(-r * Tt);;
printf(- - - - - - - - - - - - - - - - - \n\n");
44 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA

printf("Equaccao de difusao\n\n");
printf("x = %f tau = %f u = %f\n\n",x, tau, u);
printf("Equaccao de Black-Scholes\n\n");
printf("S = %f T-t = %f C = %f P = %f\n\n",S, Tt, C, P);
}

float q1(float z, float s, float k) {


float h;
h = z/ sqrt(2*s)+ 0.5 * (k+1) * sqrt(2*s);
return h;
}

float q2(float z, float s, float k) {


float h;
h = z/ sqrt(2*s) + 0.5 * (k-1) * sqrt(2*s);
return h;
}

float fac1(float z, float s, float k) {


float p1, p2;
p1 = 0.5 * (k+1)* z;
p2 = 0.25* (k+1)*(k+1)* s;
return exp(p1 + p2);
}

float fac2(float z, float s, float k) {


float p1, p2;
p1 = 0.5 * (k-1)* z;
p2 = 0.25* (k-1)*(k-1)* s;
return exp(p1 + p2);
}

float normal(float z) {
float const pi = 3.14159265;
float const a1 = .319381530, a2 =-.356563782;
float const a3 = 1.781477937;
float const a4 = -1.821255978, a5 = 1.330274429;
float zu, gauss, y, p1, pol, FI;
if(z<0) zu = -z;
2.3. CÓDIGOS EM C 45

else zu = z;
gauss = 1/sqrt(2*pi) * exp(-0.5 * zu*zu);
y = 1 / (1 + .2316419 *zu);
p1 = a1* y + a2*y*y + a3* y*y*y + a4* y*y*y*y;
pol = p1 + a5* y*y*y*y*y;
FI = 1 - gauss * pol;
if(z>=0) return FI;
else return 1-FI;
}

float difus(float xx, float tt, float kk) {


float z1, z2, I1, I2;
z1 = q1(xx,tt,kk);
z2 = q2(xx,tt,kk);
I1 = fac1(xx,tt,kk) * normal(z1);
I2 = fac2(xx,tt,kk) * normal(z2);
return I1 - I2;
}

float reg(float z, float s, float k) {


return exp(-.5*(k-1)*z -.25*(k+1)*(k+1)*s);
}
46 CAPÍTULO 2. OPÇÕES EUROPEIAS. SOLUÇÃO EXACTA
Capítulo 3

Soluções numéricas. Método


explícito

Após as mudanças de variável que expusemos no capítulo anterior, podemos


afirmar que o problema concreto que tivemos de resolver se enuncia sob a
forma mais geral:

• Dadas 3 funções u0 (x), f (x, τ ), g (x, τ ), encontrar uma solução u (x, τ )


da equação diferencial parcial

∂u ∂2u
=
∂τ ∂x2
sujeita às condições inicial e assintóticas

u (x, 0) = u0 (x) (3.1)


lim u (x) ∼ f (x, τ ) (3.2)
x→−∞
lim u (x) ∼ g (x, τ ) (3.3)
x→+∞

No capítulo anterior este problema encontrou uma solução exacta para a


call europeia no sentido em que existia uma função com expressão conhecida
que era solução do problema. Porém, esta situação raramente se verifica
pelo que é necessário desenvolver métodos de aproximação numérica cuja
aplicação conduza a uma função que seja aproximada da solução exacta.
Neste capítulo, vamos expor um desses métodos, o método das diferenças
finitas na versão de método explícito. No capítulo seguinte abordaremos o
método implícito.

47
48 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

3.1 Derivação numérica


Como introdução, começaremos por rever o caso de uma função de uma
variável. Sempre que tal se manifeste necessário para dar sentido às afir-
mações, será assumida a regularidade necessária relativamente às funções
em causa, mesmo que tal não seja dito explicitamente.
Sendo dada uma função genérica φ (x), por definição, a sua derivada no
ponto x0 , se existir, é igual ao limite:
φ (x0 + h) − φ (x0 )
φ0 (x0 ) = lim .
h→0 h
Por exemplo, sendo φ (x) = x2 virá
(x0 + h)2 − (x0 )2
φ0 (x0 ) = lim = 2 · x0 .
h→0 h
Porém, a situação não será tão simples se a função φ (x) não tiver uma
expressão analítica semelhante ao exemplo dado. Em todo o caso, se h for
suficientemente pequeno, o quociente
φ (x0 + h) − φ (x0 )
h
terá um valor próximo de φ0 (x0 ), tanto mais próximo quanto menor for o
valor de h. Seja de novo φ (x) = x2 e façamos x0 = 2 e h = 0, 001. Então
teremos
(x0 + h)2 − (x0 )2 2, 0012 − 22 4, 004001 − 4
= =
h 0, 001 0, 001

0, 004001
= = 4, 001,
0, 001
valor próximo do valor exacto da derivada e que é 4. Se tivéssemos feito
h = 0, 0001 a aproximação encontrada seria 4, 0001, etc.
Este processo baseia-se na fórmula de Taylor cuja expressão pode ser
escrita no modo seguinte

φ (x0 + h) = φ (x0 ) + h · φ0 (x0 ) + h · O (h; x0 ) (3.4)

sendo
lim O (h; x0 ) = 0
h→0
A equação (3.4) pode ainda escrever-se, passando φ (x0 ) ao 1o membro
e dividindo ambos os membros por h,
φ (x0 + h) − φ (x0 )
= φ0 (x0 ) + O (h; x0 ) , (3.5)
h
3.1. DERIVAÇÃO NUMÉRICA 49

expressão que dá consistência teórica à aproximação da derivada pelo quo-


ciente:
φ (x0 + h) − φ (x0 )
φ0 (x0 ) ≈ . (3.6)
h

Equação diferencial

Este raciocínio é útil como base de um processo numérico para as equações


diferenciais. Por exemplo, seja a equação diferencial ordinária

dy
=2·y (3.7)
dx
cuja solução y (x), com y (0) = 3, pretendemos determinar para o valor
x = 1. Consideremos o intervalo [0, 1] que dividimos em 100 sub-intervalos
através dos valores

0 = x0 , x1 , x2 , x3 , . . . , x98 , x99 , x100 = 1

A amplitude de cada sub-intervalo vale h = 0, 01. É claro que

x1 = h
x2 = x1 + h = 2 · h
x3 = x2 + h = 3 · h
··· (3.8)
xi = xi−1 + h = i · h
xi+1 = xi + h = (i + 1) · h
···

Seja y (x) a solução que sabemos que existe mas que é desconhecida a
priori. Ela satisfaz à identidade

y 0 (x) ≡ 2 · y (x)

Partindo do princípio de que este valor h é suficientemente pequeno no


contexto do problema, poderemos fazer a aproximação

y (xi + h) − y (xi )
y0 (xi ) ≈
h
ou
y (xi+1 ) − y (xi )
y 0 (xi ) ≈
h
50 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

dado que xi e xi+1 são dois pontos contíguos da partição. Deste modo, para
conseguir uma solução aproximada, a equação (3.7) pode ser substituída
pela equação finita
y (xi+1 ) − y (xi )
= 2 · y (xi )
h
ou
y (xi+1 ) = (2h + 1) · y (xi )
Adoptaremos a seguinte designação

u(k) = y (xk ) (3.9)

relembrando que os valores de y (xk ) são desconhecidos, excepto para k = 0


porque se tem
u(0) = y (x0 ) = y (0) = 3
Está definido o processo iterativo seguinte:

u(k+1) = α · u(k) (3.10)

sendo
α = 2h + 1
o qual deverá ser executado 100 vezes até se conseguir o resultado final
pretendido, a saber, uma aproximação do valor de y (1). Teremos, uma vez
que
α = 2h + 1 = 1, 02
a sequência:

u(0) = 3
u(1) = α · u(0)
³ ´
u(2) = α · u(1) = α · α · u(0) = α2 · u(0)
³ ´
u(3) = α · u(2) = α · α2 · u(0) = α3 · u(0)
···
³ ´
(100)
u = α · u(99) = α · α99 · u(0) = α100 · u(0)

donde chegamos à aproximação

y (1) ≈ u(100) = α100 · 3 = 22, 1229.

A figura 3.1 apresenta os valores da solução aproximada, para x entre


0 e 1, calculados com passo h = 0, 1. O gráfico é comparado com o gráfico
3.1. DERIVAÇÃO NUMÉRICA 51

20

15

10

0.2 0.4 0.6 0.8 1

Figura 3.1: O gráfico inferior representa os valores da solução aproximada,


para x entre 0 e 1, calculados com passo h = 0, 1. O gráfico superior
representa a solução exacta.

da solução exacta. De facto, para comparação podemos calcular a solução


da equação diferencial (3.7) correspondente à condição inicial y (0) = 3.
Escrevamos
1 dy
= dx
2 y
logo,
1
log y = x + C
2
ou

log y =x+C
donde

y = exp (x + C)
e finalmente
y (x) = K · exp (2x)
como K > 0. Das condição inicial y (0) = 3 tira-se o valor de K e fica

y (x) = 3 · e2x .

O processo pode ser melhorado apertando o passo, ou seja, tomando h


mais pequeno. Na tabela 3.1 estão incluídas várias situações correspondentes
a valores diferentes do passo h.
52 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

ya (1;h)−y(1)
y (1) = 3 · e2 ya (1; h) h y(1)
22, 167168 18, 575209 0, 1 −16, 2%
22, 167168 21, 733931 0, 01 −1, 95%
22, 167168 22, 122923 0, 001 −0, 20%
22, 167168 22, 162769 0, 0001 −0, 02%

Tabela 3.1: Na primeira coluna está o valor exacto. Na segunda coluna


estão os valores aproximados correspondentes aos passos h = 0, 1, h = 0, 01,
h = 0, 001 e h = 0, 0001. O símbolo ya (x; h) representa genericamente a
solução aproximada calculada com o passo h. Na quarta coluna está o erro
relativo cometido em relação ao valor exacto, expresso em percentagem deste
valor.

Seja a equação diferencial (3.7) com as condições iniciais y (x0 ) = y0 .


Genericamente, este processo permite obter um valor (aproximado) da solução
y (x) correspondente a qualquer valor do argumento. Sendo x∗ > x0 um
valor do argumento seguiremos o algoritmo seguinte.

Algoritmo
1. Escolhe-se uma aproximação h0 ao passo.

2. Calcula-se o quociente
x∗ − x0
q=
h0
e designa-se por N o maior inteiro contido em q.

3. Recalcula-se o valor do passo que será


x∗ − x0
h= .
N
4. Aplica-se o algoritmo iterativo

u(k+1) = α · u(k)

sendo α = 2h + 1, u(0) = y0 , para k = 0, 1, 2, . . . , N − 1. Isto é,

u(0) = y0
u(1) = α · u(0)
u(2) = α · u(1)
···
(N)
u = α · u(N−1)
3.1. DERIVAÇÃO NUMÉRICA 53

sendo que o valor aproximado de y (x∗ ) é justamente

u(N) = αN · u(0)

Equação linear de 2a ordem

Seja uma equação diferencial ordinária linear de 2a ordem


d2 y dy
2
+ +y =0
dx dx
com as condições iniciais

y (0) = 0
y 0 (0) = 2

e usemos o mesmo processo para calcular aproximadamente y (1). Fazendo


a partição do intervalo em N intervalos com passo h, substituiremos
y (xi+1 ) − y (xi )
y0 (xi ) ≈ .
h
Porém, agora põe-se um problema de aproximar y 00 .
Seja uma função φ (x) diferenciável. Sendo h > 0, suficientemente pe-
queno, aproximámos a derivada de φ pela expressão:
φ (x + h) − φ (x)
φ0 (x) ≈
h
Todavia, devemos notar que também poderíamos ter procedido a outra
aproximação com a mesma validade
φ (x − h) − φ (x)
φ0 (x) ≈ . (3.11)
−h
Isto é, enquanto no primeiro caso aproximámos a derivada pela direita, no
segundo caso estamos a aproximá-la pela esquerda. No processo seguido para
aproximar y 00 iremos combinar os dois processos. Começamos por notar que,
fazendo a aproximação pela direita,
y0 (x + h) − y0 (x)
y 00 (x) ≈ . (3.12)
h
Procedendo a aproximações pela esquerda,
y (x) − y (x + h)
y 0 (x + h) ≈
−h
(3.13)
y (x − h) − y (x)
y 0 (x) ≈
−h
54 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

e substituindo em (3.12),

y (x) − y (x + h) y (x − h) − y (x)

y00 (x) ≈ −h −h (3.14)
h
ou seja,

y (x + h) − y (x) y (x) − y (x − h)

y 00 (x) ≈ h h
h

y (x + h) − 2 · y (x) + y (x − h)
≈ h
h
o que permite escrever

y (x + h) − 2 · y (x) + y (x − h)
y 00 (x) ≈ . (3.15)
h
De acordo com o que foi dito anteriormente, a equação ficará

y (xi+1 ) − 2 · y (xi ) + y (xi−1 ) y (xi+1 ) − y (xi )


+ + y (xi ) = 0, (3.16)
h2 h
ou seja,

y (xi+1 ) − 2 · y (xi ) + y (xi−1 ) + h · y (xi+1 ) − h · y (xi ) + h2 · y (xi ) = 0,

e mantendo as notações anteriores, isto é u(k) = y (xk ),

u(k+1) − 2 · u(k) + u(k−1) + h · u(k+1) − h · u(k) + h2 · u(k) = 0.

Arrumando as parcelas,

u(k+1) + h · u(k+1) − 2 · u(k) − h · u(k) + h2 · u(k) + u(k−1) = 0, (3.17)

ou seja,
¡ ¢
(1 + h) · u(k+1) − 2 + h − h2 · u(k) + u(k−1) = 0. (3.18)

Isolando u(k+1) fica


¡ ¢
(1 + h) · u(k+1) = 2 + h − h2 · u(k) − u(k−1) ,

donde, µ ¶
(k+1) 2 + h − h2 1
u = · u(k) − u(k−1) .
1+h 1+h
3.1. DERIVAÇÃO NUMÉRICA 55

Escrevendo
2 + h − h2
α =
1+h

1
β = ,
1+h
ficará finalmente
u(k+1) = α · u(k) − β · u(k−1) . (3.19)
Este processo permite calcular cada iteração a partir dos valores das duas
iterações anteriores. De acordo, com as definições temos

u(0) = y (x0 ) = y (0)


u(1) = y (x1 ) ,
e temos que estimar o valor de y (x1 ). Ora, pela fórmula de Taylor,

y (x1 ) = y (x0 + h) ≈ y (x0 ) + h · y 0 (x0 ) (3.20)


e o valor de y 0 (x0 ) vem dado nas condições iniciais.
Procedamos ao cálculo de forma a obter o valor de y(0, 931), de acordo
com a sequência anteriormente estabelecida.

1. Escolhe-se uma aproximação h0 = 0, 01.

2. Calcula-se o quociente
0, 931 − 0
q= = 93, 1
0, 01
e designa-se por N o maior inteiro contido em q, isto é N = 93.

3. Recalcula-se o valor do passo que será definitivamente


0, 931
h= = 0, 010011
93
4. Aplica-se o algoritmo iterativo

u(k+1) = α · u(k) − β · u(k−1)

tendo em conta que

h = 0, 010011
y (0) = 0
y (0, 01) = h × 2 = 0, 020022
α = 1, 989989
β = 0, 990088
56 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

k xk y (xk ) = uk
0 0, 000000 0, 000000
1 0, 010011 0, 020022
2 0, 020022 0, 039844
3 0, 030032 0, 059463
4 0, 040043 0, 078884
.. .. ..
. . .
91 0, 910978 1, 047139
92 0, 920989 1, 050876
93 0, 931000 1, 054471

Tabela 3.2: Primeiras e últimas linhas da folha Excel para o cálculo numérico
do valor aproximado da solução y(x) da equação linear y00 + y 0 + y = 0, para
x = 0, 931. O valor procurado encontra-se na última célula, u93 = 1, 054471.

Efectuando os cálculos numa folha Excel obtêm-se os resultados contidos


na tabela 3.2. Encontra-se o valor aproximado

y (0, 931) ≈ 1, 054471

Poderemos agora comparar com resultado obtido com a solução exacta


da equação diferencial
4 ¡ ¢ ³√ ´
yr (x) = √ · exp − 12 x · sin 23 x (3.21)
3
Temos
yr (0, 931) = 1, 046401

portanto, com um erro relativo igual a 0, 77%.

3.1.1 Derivadas parciais


A aproximação das derivadas pode aplicar-se às derivadas parciais, especi-
ficamente, no caso de uma função de duas variáveis u (x, τ ). De facto, a
respeito de u(x, .) e u(., τ ), a fórmula de Taylor pode escrever-se

u (x, τ + h) − u (x, τ ) ∂u
= (x, τ ) + O (h; x, τ ) ,
h ∂τ
e
u (x + k, τ ) − u (x, τ ) ∂u
= (x, τ ) + O (k; x, τ ) , (3.22)
k ∂x
3.2. RESOLUÇÃO NUMÉRICA DA EQUAÇÃO DE DIFUSÃO 57

respectivamente, com

lim O (h; x, τ ) = 0
h→0

lim O (k; x, τ ) = 0
k→0

donde
∂u u (x, τ + h) − u (x, τ )
(x, τ ) ≈
∂τ h
(3.23)
∂u u (x + k, τ ) − u (x, τ )
(x, τ ) ≈ .
∂x k
Na equação de difusão surge também a 2a derivada. Considerações
semelhantes às anteriores levam a escrever, relativamente a u(., τ ),

∂2u u (x + k, τ ) − 2u (x, τ ) + u (x − k, τ )
2
(x, τ ) = + k 2 · O (k; x, τ ) (3.24)
∂x k2
donde poderemos resumir as aproximações às derivadas parciais:

∂u u (x, τ + δτ ) − u (x, τ )
(x, τ ) ≈
∂τ δτ

∂u u (x + δx, τ ) − u (x, τ )
(x, τ ) ≈ (3.25)
∂x δx

∂ 2u u (x + δx, τ ) − 2u (x, τ ) + u (x − δx, τ )


(x, τ ) ≈
∂x2 (δx)2

onde se designaram os acréscimos por δτ e δx.

3.2 Resolução numérica da equação de difusão


Comecemos por uma situação simples. Resolver numericamente a equação
de difusão
∂u ∂2u
=
∂τ ∂x2
na semi-banda infinita

−1 ≤ x ≤ 1
0 ≤ τ < +∞
58 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

com as condições

u (x, 0) = u0 (x) = x2
u (−1, τ ) = f (τ ) = cos2 τ
u (1, τ ) = g (τ ) = τ + 1

O processo consiste em aproximar numericamente u (x, τ ) para valores


especificados de (x, τ ), porém o desenvolvimento do método apresenta al-
gumas particularidades que é preciso ter em conta. Seja um valor fixo τ ∗ e
considere-se o rectângulo

−1 ≤ x ≤ 1
0 ≤ τ < τ∗

À imagem do que se fez com a equação diferencial ordinária


dy
=y
dx
dividamos este rectângulo em 2N × M rectângulos com lados δx e δt,
assegurando-nos, por razões técnicas, que têm a ver a garantia da esta-
bilidade do método,1
δτ
α= < 0, 5
(δx)2
Ver a figura 3.2.
Constitui-se, assim uma malha cujos nós têm uma dupla numeração
(m, n) e têm coordenadas
(m · δτ , n · δx)
sendo

0 ≤ m≤M

−N ≤ n≤N

e, no caso vertente,

−N · δx = −1
N · δx = 1
M · δτ = τ∗
1
De facto, se este quociente for maior do que 0,5 o método apresenta um comportamento
errático.
3.2. RESOLUÇÃO NUMÉRICA DA EQUAÇÃO DE DIFUSÃO 59

0.5

1 2 3 4

-0.5

-1

Figura 3.2: Na banda infinita considera-se o rectângulo −1 ≤ x ≤ 1,


0 ≤ τ ≤ τ ∗ . Este rectângulo divide-se em 2N × M sub-rectângulos, o que
origina (2N + 1) × (M + 1) nós. Registe-se que, na aplicação do método das
diferenças finitas, as alturas dos sub-rectângulos são muito maiores dos que
as larguras, isto é, δτ ¿ δx.
60 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

Considerada u (x, τ ) a solução da equação de difusão podemos escrever


os valores que esta solução (desconhecida) assume nos nós da malha:

un(m) = u (n · δx, m · δτ ) (3.26)

Por outro lado, usando as expressões (3.25) a equação de difusão pode


escrever-se aproximadamente
u (x, τ + δτ ) − u (x, τ ) u (x + δx, τ ) − 2u (x, τ ) + u (x − δx, τ )
=
δτ (δx)2
e considerando apenas os valores nos nós,
u (n · δx, m · δτ + δτ ) − u (n · δx, m · δτ )
=
δτ
u (n · δx + δx, m · δτ ) − 2u (n · δx, m · δτ ) + u (n · δx − δx, m · δτ )
=
(δx)2
ou
u (n · δx, (m + 1) · δτ ) − u (n · δx, m · δτ )
=
δτ
u ((n + 1) · δx, m · δτ ) − 2u (n · δx, m · δτ ) + u ((n − 1) · δx, m · δτ )
=
(δx)2
o que fica, de acordo com a notação (3.26),
(m+1) (m) (m) (m) (m)
un − un un+1 − 2un + un−1
= (3.27)
δτ (δx)2
o que se pode escrever
δτ ³ (m) (m)
´
u(m+1)
n − un(m) = un+1 − 2u(m)
n + un−1 (3.28)
(δx)2
ou
δτ ³ (m) (m)
´
u(m+1)
n = un(m) + un+1 − 2u(m)
n + un−1 (3.29)
(δx)2
donde a forma final
³ ´
(m) (m)
un(m+1) = u(m) (m)
n + α un+1 − 2un + un−1 (3.30)

em que
δτ
α=
(δx)2
mantendo-se a presunção de que
1
α< .
2
3.2. RESOLUÇÃO NUMÉRICA DA EQUAÇÃO DE DIFUSÃO 61

Figura 3.3: O processo iterativo constante neste algoritmo consiste em, em


(m+1)
cada etapa, calcular os valores de un , sendo n = −N +1, . . . , 0, . . . , N −1.
(m)
Este cálculo faz-se a partir dos N + 1 valores de un , na coluna anterior.
(m+1)
Este cálculo faz-se do modo que a figura indica. Os valores extremos uN
(m+1)
e u−N provêm das próprias condições de fronteira. Nesta figura ilustra-se
a obtenção do valor aproximado da solução num nó, a partir dos três nós
anteriores mais próximos.

A figura 3.3 mostra-nos como se desenrola este processo iterativo. Nas


iterações o índice n tem sempre a variação:

−N < n < N

Começa-se com os valores

(0)
u−N = cos2 (0) = 1

(0)
un = (n · δx)2

(0)
uN = 0 + 1 = 1
62 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

Na primeira iteração obtém-se

(1)
u−N = cos2 (δt)
³ ´
(1) (0) (0) (0) (0)
un = un + α un+1 − 2un + un−1

(1)
uN = δτ + 1

Na segunda iteração obtém-se

(2)
u−N = cos2 (2 · δt)
³ ´
(2) (1) (1) (1) (1)
un = un + α un+1 − 2un + un−1

(2)
uN = 2 · δt + 1

Prosseguindo, chega-se à última iteração:

(M)
u−N = cos2 (M · δt)
³ ´
(M) (M−1) (M−1) (M−1) (M−1)
un = un + α un+1 − 2un + un−1

(M)
uN = M · δt + 1.

Este processo foi aplicado para calcular alguns valores da solução aproxi-
mada, apresentados na tabela 3.4. Usou-se sempre

δx = 0, 01

e, então, um passo δτ = 0, 000036, o que permitiu manter o quociente


δτ
≈ 0, 36 < 0, 5.
(δx)2
Ver a tabela 3.3.
Com os resultados obtidos formou-se a tabela 3.4.
Por sua vez, a figura 3.4 mostra o gráfico da solução aproximada para
os valores de τ compreendidos entre 0 e 3, 6.
3.2. RESOLUÇÃO NUMÉRICA DA EQUAÇÃO DE DIFUSÃO 63

τ∗ δx 2·N δτ M α
1, 0 0, 01 200 0, 000036 27.777 0, 36001
2, 3 0, 01 200 0, 000036 63.888 0, 36005
3, 6 0, 01 200 0, 000036 100.000 0, 36000

Tabela 3.3: Nesta tabela observa-se o crescimento do número de passos na


variável τ , proporcional ao valor de τ ∗ . Vê-se também que δx é muito maior
do que δτ .

x τ∗ = 1 τ ∗ = 2, 3 τ ∗ = 3, 6
−1, 0 0, 2919 0, 4439 0, 8042
−0, 8 0, 4721 0, 5867 1, 1559
−0, 6 0, 6257 0, 7652 1, 4896
−0, 4 0, 7629 0, 9761 1, 8172
−0, 2 1, 8938 1, 2171 2, 1489
0, 0 1, 0276 1, 4870 2, 4929
0, 2 1, 1727 1, 7858 2, 8561
0, 4 1, 3366 2, 1145 3, 2441
0, 6 1, 5255 2, 4747 3, 6616
0, 8 1, 7450 2, 8689 4, 1124
1, 0 2, 0000 3, 3000 4, 6000

Tabela 3.4: Tabela das soluções da equação de difusão para diferentes valo-
res de τ ∗ , com as condições inicial e de fronteiras indicadas acima. Cálculos
efectuados com o programa prog31 cujo código se encontra no fim do capí-
tulo.
64 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

4
3 20
2
1 15
0

10
5

10
5
15

20

Figura 3.4: Gráfico da solução aproximada de u (x, τ ) para valores 0 ≤


τ ≤ 3, 6. Vêm-se claramente os contornos da superfície correspondentes aos
valores da solução na fronteira do domínio: u0 (x) = x2 , f (τ ) = cos2 τ e
g (τ ) = τ + 1.

.
3.3. APLICAÇÃO AO CASO BLACK-SCHOLES (CALL EUROPEIA)65

3.3 Aplicação ao caso Black-Scholes (call europeia)


O método anterior pode ser adaptado para a aproximação numérica da
solução da equação de difusão com as condições assintóticas provenientes da
transformação da equação de Black-Scholes, isto é, o problema enunciado
no início do capítulo:
∂u ∂2u
= (3.31)
∂τ ∂x2
com

u (x, 0) = u0 (x) (3.32)


lim u (x, τ ) ∼ f (x, τ ) (3.33)
x→−∞
lim u (x, τ ) ∼ g (x, τ ) (3.34)
x→+∞

sendo
⎧ ¡1 ¢ ¡1 ¢

⎨ exp 2 (k1 + 1) x − exp 2 (k1 − 1) x se x ≥ 0
u0 (x) =


0 se x < 0
e
³ ³ ´´
1 1 2
f (x, τ ) = o exp 2 (k1 − 1) x + 4 (k1 + 1) τ em − ∞

µ ¶
1 1
g (x, τ ) = exp (k1 + 1) x + (k + 1)2 τ
2 4
Basicamente existem dois modos de dar um significado rigoroso ao com-
portamento assintótico, a saber,

lim |u (x, τ ) − f (x, τ )| = 0 (3.35)


x→+∞

ou
u (x, τ )
lim = 1. (3.36)
x→+∞ f (x, τ )

Todavia, deve assinalar-se que a condição (3.35) é mais forte do que a


condição (3.36), isto é, (3.35) implica (3.36). Retomando (3.35), esta si-
gnifica que, dado ε > 0, arbitrário,

|u (x, τ ) − f (x, τ )| < ε (3.37)

desde que x seja suficientemente próximo de −∞. A questão prática que


se põe é saber quais os valores de x que são suficientemente pequenos, ou
66 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

seja, suficientemente próximos de −∞. De facto, se a desigualdade (3.37) for


válida para ε muito pequeno, no contexto do nosso problema, para x < x∗ <
0, então podemos substituir a condição (3.35) pela condição de fronteira
u (x∗ , τ ) = f (x∗ , τ )
e o mesmo raciocínio se aplicará a (3.34) que é substituída por
u (x∗∗ , τ ) = g (x∗∗ , τ )
Comecemos por recordar a relação entre x e o valor S do activo que
subtende a opção: µ ¶
S
x = log
K
Se fizermos x = −10, então
µ ¶
S
−10 = log
K
ou seja
S
= e−10
K
e ainda
e10 × S = K
ou
22.026 × S = K
o que significa que x = −10 implica que o valor do activo é 22.000 vezes
inferior ao preço de exercício. Portanto, é razoável fazer x∗ = −10. Por
outro lado, se x = 10, S será 22.000 maior do que E, pelo que escrevemos
x∗∗ = 10. Desta forma, o problema numérico será resolvido na banda semi-
infinita
−10 ≤ x ≤ 10 (3.38)
τ ≥ 0
usando-se exactamente o mesmo processo descrito acima. O que significa
que se tem inicialmente, isto é para τ = 0,

(0)
u−N = u0 (−N · δx)

(0)
un = u0 (n · δx)

(0)
uN = u0 (N · δx)
3.4. CÓDIGOS 67

e passa-se da iteração m à iteração m + 1 pelas expressões

(m+1)
u−N = f (−x̄, (m + 1) · δt)
³ ´
(m+1) (m) (m) (m) (m)
un = un + α un+1 − 2un + un−1 ; −N < n < +N

(m+1)
uN = g (x̄, (m + 1) · δt)

sendo x̄ = 10. Na continuação iremos resolver numericamente a equação de


difusão com as condições inicial e assintóticas associadas a uma call europeia
e comparar os resultados com a solução exacta.
Este processo foi usado para a equação de difusão associada à call eu-
ropeia, a fim de servir de teste à sua eficácia. Os resultados obtidos estão na
tabela 3.5. Nós vemos que há genericamente acordo entre os dois cálculos,
sendo o maior erro absoluto encontrado inferior a 0, 0015%. Interessa tam-
bém de que modo este erro se propaga ao valor da call. Faremos K = 10,
r = 0, 05, σ = 0, 2, k1 = 2, 5. Chega-se à tabela seguinte:

S t x τ Ca (aproximada) Cr (exacta)
24, 596 0, 75 0, 9000 0, 015 14, 964319 14, 964100

É claro que
³ ´
Ca = K · exp − 12 (k1 − 1) x − 14 (k1 + 1)2 τ · 3, 077200
= 10 × 0, 486297 × 3, 077200
= 14, 964319

Somente em termos práticos e pelo conhecimento da actividade do mercado


se pode argumentar acerca do valor desta aproximação.

3.4 Códigos
O programa prog41 que calculou a solução da equação de difusão com as
condições (??) é semelhante em tudo ao programa prog42 cujo código se
apresenta a seguir.

3.4.1 Programa prog42


Este programa compõe-se das seguintes funções:
68 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

τ = 0, 005 τ = 0, 010 τ = 0, 015


x Aprox. Exacta Aprox. Exacta Aprox. Exacta
−0, 90 0, 000000 0, 000000 0, 000000 0, 000000 0, 000000 0, 000000
−0, 72 0, 000000 0, 000000 0, 000000 0, 000000 0, 000001 0, 000001
−0, 54 0, 000000 0, 000000 0, 000002 0, 000002 0, 000049 0, 000049
−0, 36 0, 000004 0, 000004 0, 000274 0, 000274 0, 001379 0, 001380
−0, 18 0, 001563 0, 001564 0, 007938 0, 007940 0, 016371 0, 016373
0, 00 0, 046856 0, 046862 0, 071024 0, 071029 0, 091841 0, 091846
0, 18 0, 244949 0, 244950 0, 267795 0, 267793 0, 291555 0, 291551
0, 36 0, 592933 0, 592932 0, 618876 0, 618870 0, 645856 0, 645845
0, 54 1, 108989 1, 108988 1, 145076 1, 145067 1, 181809 1, 181791
0, 72 1, 858981 1, 858980 1, 909383 1, 909371 1, 960625 1, 960601
0, 90 2, 935721 2, 935717 3, 005885 3, 005860 3, 077200 3, 077155

Tabela 3.5: Comparação da solução aproximada da equação de difusão as-


sociada a Black-Scholes (call europeia) calculada pelo método exposto neste
capítulo, com a solução exacta obtida no capítulo 2. Para os cálculos foram
usados os programas progr21 e progr32. Fez-se k1 = 2, 5. No cálculo
numérico pelas diferenças finitas os valores usados são δx = 0, 002, δτ =
0, 000001, α = 0, 25. A aproximação foi realizada na banda −10 ≤ x ≤ 10.
3.4. CÓDIGOS 69

1. float u0(float z). Permite o cálculo da função u0 (x).

2. float f(float z).

3. float g(float z).

4. int a(int j). Destina-se a permitir a variação do índice entre Na <


0 e Nb .

5. void iterar(). Permite calcular uma coluna a partir da anterior pela


equação:

U (1) [a (n)] = U [a (n)]+α·(U [a (n + 1)] + U [a((n − 1)] − 2 · U [a (n)])

sendo os valores extremos da coluna dados pelas condições de fronteira.

6. void preparar(). Esta função executa várias operações, a saber,

(a) Ler os valores de σ, r, τ , x.


(b) Calcular os extremos de variação de n, Na e Nb .
(c) Calcular M e δτ .

7. Na função main() existem comandos para guardar os resultados obti-


dos num ficheiro com o nome "ce_expli".

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
int n, Na, Nb;
long int m=0, M;
float sup=10.0, inf= -10.0;
float dt, alf=.25, k, dx, sig=0.2, r=0.05;
float U[10100], U1[10100];
float x, u, t;
int a(int j);
float u0(float z);
float f(float z, float s);
float g(float z, float s);
void iterar();
70 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

void preparar();
void titulo();
FILE *fp;
void main() {
titulo();
preparar();
for(n=Na; n<=Nb; n++) U[a(n)] = u0(x + (float)n*dx);
while(m<M) iterar();
printf("m = %d\n", m);
printf("x = %f u = %f \n", x, U[a(0)]);
if((fp = fopen("ce_expli", "a")) == NULL) {
printf("Cannot open file\n");
exit(1);
}
fprintf(fp, "Sigma = %f r = %f \n", sig, r);
fprintf(fp, "t = %f x = %f u = %f \n", t, x, U[a(0)]);
fprintf(fp, ----------------\n\n");
fclose(fp);
}
float u0(float z) {
k = r/(.5 * sig* sig);
if(z>=0) return exp(.5 *(k+1)*z) - exp(.5* (k-1)*z);
else return 0;
}
float f(float z, float s) {
return 0;
}
float g(float z, float s) {
k = r/(.5 * sig* sig);
return exp(0.5 *(k+1)*z + 0.25* (k+1)*(k+1)* s);
}
int a(int j) {
return j-Na;
}
void iterar() {
m = m+1;
for(n=Na-1; n < Nb; n++)
3.4. CÓDIGOS 71

U1[a(n)] = U[a(n)]+ alf* (U[a(n+1)] + U[a(n-1)] - 2*


U[a(n)]);
U1[a(Na)] = f(x+ (float)Na*dx, (float)m*dt);
U1[a(Nb)] = g(x+ (float)Nb*dx, (float)m*dt);
for(n=Na; n<=Nb; n++) U[a(n)] = U1[a(n)];
}
void preparar() {
float Ninf, Nsup;
printf("Sigma = ");
scanf("%f", &sig);
printf("r = ");
scanf("%f", &r);
printf("tau = ");
scanf("%f", &t);
printf("x = ");
scanf("%f", &x);
dx = 0.002;
Ninf = (inf - x)/ dx;
Nsup = (sup - x)/ dx;
Na = (int)Ninf +2;
Nb = (int)Nsup -2;
dt = alf* dx* dx;
M = (int)(t/dt);
dt = t/ (float)M;
printf("Na = %d, Nb = %d, M = %ld\n", Na, Nb, M);
printf("infer = %f, super = %f\n", x+(float)Na *dx, x+(float)Nb
*dx);
}
void titulo() {
printf("EQUACCAO DE DIFUSAO\n\n");
printf("Este programa resolve numericamente, pelo metodo
explicito das diferenccas\n");
printf("finitas, a equaccao de difusao u(x,tau) com as condiccoes

inicial e de\n");
printf("fronteira que proveem da equaccao de Black-Scholes

para uma call europeia.\n\n");


72 CAPÍTULO 3. SOLUÇÕES NUMÉRICAS. MÉTODO EXPLÍCITO

printf("Parametros a entrar: Sigma (volatilidade) e


r (taxa de juro)\n");
printf("Valores a entrar: ’x’ e ’tau’\n\n");
}
Capítulo 4

Diferenças finitas: método


implícito

O método de diferenças finitas explícito estudado no capítulo anterior só é


estável se a quantidade
δτ 1
α= 2 < 2.
(δx)
Ora, isso implica que
(δx)2
δτ < ,
2
o que obriga a que δτ tenha que ser pequeno relativamente a δx e o número
M de passos tenha que ser grande em relação a N, tal como se viu no capítulo
3, nomeadamente na tabela 3.4. Deste modo, convém estudar métodos que
permitam um maior equilíbrio entre os valores de δx e δτ .

4.1 Método implícito


Vimos na secção 3 (cap. 3) que

∂u u (x, τ + h) − u (x, τ )

∂τ h
mas também que
∂u u (x, τ ) − u (x, τ − h)
≈ .
∂τ h
Sendo assim, a equação de difusão pode escrever-se, de modo aproximado,
na forma
u (x, τ ) − u (x, τ − δτ ) u (x + δx, τ ) − 2u (x, τ ) + u (x − δx, τ )
= . (4.1)
δτ (δx)2

73
74 CAPÍTULO 4. DIFERENÇAS FINITAS: MÉTODO IMPLÍCITO

Adoptando a malha rectangular tal como no capítulo 3, tem-se

x = n · δx
τ = m · δτ

e
un(m) = u (n · δx, m · δτ ) ,
o que permite escrever a equação (4.1) como
(m) (m−1) (m) (m) (m)
un − un un+1 − 2un + un−1
= . (4.2)
δτ (δx)2
Logo ³ ´
(m) (m)
un(m) − u(m−1)
n = α · un+1 − 2un(m) + un−1 (4.3)
δτ
(pondo α = ), ou seja,
(δx)2
³ ´
(m) (m)
un(m) − α · un−1 − 2un(m) + un−1 = u(m−1)
n

e ainda
(m) (m)
(1 + 2α) · u(m) (m−1)
n − α · un+1 − α · un−1 = un . (4.4)
(m−1)
Nesta equação os dados são (1 + α), α e un , enquanto que as incógnitas
são
(m) (m)
un(m) , un+1 , un−1 .
Sendo m constante em cada passo, n varia desde −N + 1 até N − 1 de forma
(m) (m) (m)
a que un+1 e un−1 tenham significado. Por sua vez, os valores extremos u−N
(m)
e uN provêm das condições numéricas de fronteira:
(m)
u−N = f (−N · dx, m · dτ )
(4.5)
(m)
uN = g (N · dx, m · dτ ) .

Determinados estes valores, é necessário determinar os restantes e (4.4) con-


stitui um sistema linear de 2N − 1 equações com 2N − 1 incógnitas:
⎧ (m) (m) (m−1) (m)

⎪ (1 + 2α) · u−N+1 − α · u−N+2 = u−N+1 + α · u−N n = −N + 1





(m) (m) (m) (m−1)
(1 + 2α) · un − α · un+1 − α · un−1 = un −N + 1 < n < N − 1






⎩ (m) (m) (m−1) (m)
(1 + 2α) · uN−1 − α · uN−2 = uN−1 + α · uN n=N −1
(4.6)
4.1. MÉTODO IMPLÍCITO 75

A resolução deste sistema, se ele for possível e determinado, dá-nos os valores


que faltam:
(m) (m) (m) (m) (m) (m) (m)
u−N+1 , u−N+2 , . . . , u−1 , u0 , u1 , . . . , uN −2 , uN−1
O sistema linear representado em (4.6) pode ser escrito na forma matricial:
⎡ ⎤ ⎡ (m) ⎤
1 + 2α −α 0 0 ··· 0 0 u−N+1
⎢ ⎢
⎥ ⎢ u(m) ⎥
⎢ −α 1 + 2α −α 0 ··· 0 0 ⎥ ⎢ −N+2 ⎥ ⎥
⎢ ⎥ ⎢ .. ⎥
⎢ 0 −α 1 + 2α −α ··· 0 0 ⎥ ⎢ . ⎥
⎢ ⎥ ⎢ ⎥
⎢ .. .. .. .. .. .. ⎥ ⎢ (m) ⎥
⎢ . . . . ··· . . ⎥ · ⎢ u0 ⎥=
⎢ ⎥ ⎢ .. ⎥
⎢ 0 0 0 0 ··· −α 0 ⎥ ⎢ ⎥
⎢ ⎥ ⎢ .
⎢ ⎥ ⎢ (m) ⎥ ⎥
⎣ 0 0 0 0 · · · 1 + 2α −α ⎦ ⎣ u
N−2 ⎦
0 0 0 0 ··· −α 1 + 2α (m)
uN−1
(4.7)
⎡ (m−1) (m) ⎤
u−N+1 + α · u−N
⎢ (m−1) ⎥
⎢ u−N+2 ⎥
⎢ .. ⎥
⎢ ⎥
⎢ . ⎥
⎢ ⎥
=⎢

(m−1)
u0 ⎥.
⎥ (4.8)
⎢ .. ⎥
⎢ . ⎥
⎢ ⎥
⎢ (m−1) ⎥
⎣ uN−2 ⎦
(m−1) (m)
uN−1 + α · uN
Para se compreender melhor a estrutura da matriz quadrada anterior, damos
um exemplo com α = 3:
⎡ ⎤
7 −3 0 0 0
⎢ ⎥
⎢ −3 7 −3 0 0 ⎥
⎢ ⎥
⎢ 0 −3 7 −3 0 ⎥ . (4.9)
⎢ ⎥
⎢ ⎥
⎣ 0 0 −3 7 −3 ⎦
0 0 0 −3 7
Adoptemos as seguintes notações
⎡ ⎤
1 + 2α −α 0 0 ··· 0 0
⎢ ⎥
⎢ −α 1 + 2α −α 0 ··· 0 0 ⎥
⎢ ⎥
⎢ 0 −α 1 + 2α −α · · · 0 0 ⎥
⎢ ⎥
⎢ .
.. .
.. .. .. .. .. ⎥
M=⎢ . . ··· . . ⎥ (4.10)
⎢ ⎥
⎢ 0 0 0 0 ··· −α 0 ⎥
⎢ ⎥
⎢ ⎥
⎣ 0 0 0 0 ··· 1 + 2α −α ⎦
0 0 0 0 ··· −α 1 + 2α
76 CAPÍTULO 4. DIFERENÇAS FINITAS: MÉTODO IMPLÍCITO

⎡ (m) ⎤ ⎡ (m−1) ⎤ ⎡ (m)



u−N+1 u−N+1 α · u−N
⎢ (m) ⎥ ⎢ (m−1) ⎥ ⎢ ⎥
⎢ u−N+2 ⎥ ⎢ u−N+2 ⎥ ⎢ 0 ⎥
⎢ .. ⎥ ⎢ .. ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ .. ⎥
⎢ . ⎥ ⎢ . ⎥ ⎢ . ⎥
⎢ ⎥ ⎢ (m−1) ⎥ ⎢ ⎥
u(m) =⎢
⎢ u0
(m) ⎥;
⎥ u(m−1) =⎢
⎢ u0
⎥;
⎥ b(m) =⎢
⎢ 0 ⎥

⎢ .. ⎥ ⎢ .. ⎥ ⎢ .. ⎥
⎢ . ⎥ ⎢ . ⎥ ⎢ . ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ (m) ⎥ ⎢ (m−1) ⎥ ⎢ ⎥
⎣ uN−2 ⎦ ⎣ uN −2 ⎦ ⎣ 0 ⎦
(m) (m−1) (m)
uN−1 uN −1 α · uN
(4.11)
e o sistema (4.7)-(4.8) pode escrever-se na forma sintética:

M · u(m) = u(m−1) + b(m) (4.12)

Deste modo, viu-se que a passagem da iteração de ordem m à iteração de


ordem m+1 se faz pela resolução de um sistema linear. Em condições gerais
este método não teria vantagem alguma sobre o anterior, porém, a estrutura
da matriz M permite chegar a uma solução algebricamente simples.

4.2 Resolução do sistema


Diz-se que uma matriz quadrada A = [aij ] é diagonalmente dominante se o
módulo de um elemento diagonal for maior do que a soma dos módulos dos
outros elementos da mesma linha, isto é,
n
X
|aii | > |aij | (4.13)
j=1,j6=i

Uma matriz diagonalmente dominante é invertível. A matriz M é dia-


gonalmente dominante visto que

|1 + 2α| > 2 |α|

sob a condição trivial de α > 0. Sendo assim, a matriz M é invertível e o


sistema linear (4.12) tem uma única solução. Vamos procurá-la.

4.2.1 Decomposição L · U
Suponhamos que a matriz quadrada (n × n) A = [aij ] se decompõe no
produto de uma matriz L = [lij ] triangular inferior com uma matriz U =
[uij ] triangular superior :
A=L·U
4.2. RESOLUÇÃO DO SISTEMA 77

isto é,
⎡ ⎤ ⎡ ⎤⎡ ⎤
a11 a12 · · · a1n l11 0 ··· 0 u11 u12 · · · u1n
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ a21 a22 · · · a2n ⎥ ⎢ l21 l22 ··· 0 ⎥⎢ 0 u22 · · · u2n ⎥
⎢ . .. .. ⎥=⎢ .. .. .. ⎥·⎢ .. .. .. ⎥
⎢ . ..
. ⎥ ⎢ ..
. ⎥⎢ ..
. ⎥
⎣ . . . ⎦ ⎣ . . . ⎦⎣ . . . ⎦
an1 an2 · · · ann ln1 ln2 · · · lnn 0 0 ··· unn
Se tivermos o sistema
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
a11 a12 · · · a1n x1 q1
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ a21 a22 · · · a2n ⎥ ⎢ x2 ⎥ ⎢ q2 ⎥
⎢ . .. .. ⎥·⎢ .. ⎥=⎢ .. ⎥
⎢ . ..
. ⎥ ⎢ ⎥ ⎢ ⎥
⎣ . . . ⎦ ⎣ . ⎦ ⎣ . ⎦
an1 an2 · · · ann xn qn
ou seja
A·x=q
podemos resolvê-lo em duas etapas. Atendemos a que

(L · U) · x = q

ou
L· (U · x) = q
e desgnando
y =U·x
esta será a nova incógnita. Sendo assim, a primeira etapa consiste em re-
solver os sistema
L·y =q
o que é fácil visto que L é triangular inferior. A solução designa-se por y∗ .
A segunda etapa consiste em resolver o sistema

U · x = y∗

o que também é fácil porque U é triangular superior.

Sistema triangular inferior

Primeiro resolvemos o sistema


⎡ ⎤ ⎡ ⎤ ⎡ ⎤
l11 0 · · · 0 y1 q1
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ l21 l22 · · · 0 ⎥ ⎢ y2 ⎥ ⎢ q2 ⎥
⎢ . .. .. ⎥·⎢ .. ⎥=⎢ .. ⎥
⎢ . ..
. ⎥ ⎢ ⎥ ⎢ ⎥
⎣ . . . ⎦ ⎣ . ⎦ ⎣ . ⎦
ln1 ln2 · · · lnn yn qn
78 CAPÍTULO 4. DIFERENÇAS FINITAS: MÉTODO IMPLÍCITO

cuja solução é
h iT
y1∗ y2∗ · · · yn∗
obtida por cálculo recorrente de cima para baixo
q1
y1∗ = , etc.
l11
Em dimensão 4 seria


⎪ l11 · y1 = q1

⎨ l ·y + l ·y
21 1 22 2 = q2

⎪ l31 · y1 + l32 · y2 + l33 · y3 = q3


l41 · y1 + l42 · y2 + l43 · y3 + l44 · y4 = q4

logo,
q1
y1∗ =
l11
1
y2∗ = (q2 − l21 · y1∗ )
l22
1
y3∗ = (q3 − l31 · y1∗ − l32 · y2∗ )
l33
1
y4∗ = (q4 − l41 · y1∗ − l42 · y2∗ − l43 · y3∗ )
l44

Sistema tringualar superior

A seguir resolve-se o sistema linear


⎡ ⎤ ⎡ ⎤ ⎡ ⎤
u11 u12 · · · u1n x1 y1∗
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ 0 u22 · · · u2n ⎥ ⎢ x2 ⎥ ⎢ y2∗ ⎥
⎢ . .. .. ⎥·⎢ .. ⎥=⎢ .. ⎥
⎢ . ..
. ⎥ ⎢ ⎥ ⎢ ⎥
⎣ . . . ⎦ ⎣ . ⎦ ⎣ . ⎦
0 0 ··· unn xn yn∗

num crescendo de baixo para cima:


yn∗
x1 = , etc.
unn
Em dimensão 4,


⎪ u11 · x1 + u12 · x2 + u13 · x3 + u14 · x4 = y1∗

⎨ u22 · x2 + u12 · x3 + u24 · x4 = y2∗


⎪ u33 · x3 + u34 · x4 = y3∗

u44 · x4 = y4∗
4.2. RESOLUÇÃO DO SISTEMA 79

o que dá

y4∗
x4 =
u44
1
x3 = (y ∗ − u34 · x4 )
u33 3
1
x2 = (y ∗ − u12 · x3 − u24 · x4 )
u22 2
1
x1 = (y ∗ − u12 · x2 − u13 · x3 − u14 · x4 )
u11 1

Exemplo

Sejam o sistema linear 4 × 4 na forma matricial

⎡ ⎤ ⎡ ⎤ ⎡ ⎤
4 5 −1 −2 x1 1
⎢ 12 13 13 −16 ⎥ ⎢ x2 ⎥ ⎢ −2 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥·⎢ ⎥=⎢ ⎥
⎣ 8 17 −50 19 ⎦ ⎣ x3 ⎦ ⎣ −3 ⎦
20 22 35 −56 x4 3

A matriz admite a decomposição L · U seguinte:

⎡ ⎤ ⎡ ⎤ ⎡ ⎤
4 5 −1 −2 1 0 0 0 4 5 −1 −2
⎢ 12 13 13 −16 ⎥ ⎢ 3 −2 0 0 ⎥ ⎢ 0 1 −8 5 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥=⎢ ⎥·⎢ ⎥
⎣ 8 17 −50 19 ⎦ ⎣ 2 7 4 0 ⎦ ⎣ 0 0 2 −3 ⎦
20 22 35 −56 5 −3 8 7 0 0 0 −1

A solução de L · y = q é

5 45 101
y1∗ = 1; y2∗ = ; y3∗ = − ; y4∗ =
2 8 14

e a solução de U · x = y∗ é

5207 141 1527 101


x1 = ; x2 = − ; x3 = − ; x4 = −
64 2 112 14

e esta é também a solução do sistema inicial M · x = q.


80 CAPÍTULO 4. DIFERENÇAS FINITAS: MÉTODO IMPLÍCITO

4.2.2 Caso tri-diagonal


No caso tri-diagonal, situação que nos interessa, estas expressões tornam-se
ainda mais simples. De facto, a matriz apresenta-se na forma
⎡ ⎤
a1 c1 0 0 0 ··· 0
⎢ ⎥
⎢ b1 a2 c2 0 0 ··· 0 ⎥
⎢ ⎥
⎢ 0 b2 a3 c3 0 ··· 0 ⎥
⎢ ⎥
⎢ 0 0 b a c ··· 0 ⎥
⎢ 3 4 4 ⎥
⎢ .. .. ⎥
⎢ . ⎥
⎢ 0 0 0 b4 a5 . ⎥
⎢ . .. .. .. . . .. ⎥
⎢ . . . cn−1 ⎥
⎣ . . . . ⎦
0 0 0 0 bn−1 an

e podemos tentar decompô-la num produto L · U em que estas matrizes


assumem formas especiais:
⎡ ⎤
1 0 0 0 0 ··· 0
⎢ ⎥
⎢ l1 1 0 0 0 ··· 0 ⎥
⎢ ⎥
⎢ 0 l2 1 0 0 ··· 0 ⎥
⎢ ⎥
⎢ 0 0 l 1 0 ··· 0 ⎥
L=⎢ ⎢
3 ⎥

⎢ .. ..⎥
⎢ 0 0 0 l4 1 . .⎥
⎢ . . . .. .. .. ⎥
⎢ . . . . . ⎥
⎣ . . . . 0 ⎦
0 0 0 0 ln−1 1
e ⎡ ⎤
u1 z1 0 0 0 ··· 0
⎢ ⎥
⎢ 0 u2 z2 0 0 ··· 0 ⎥
⎢ ⎥
⎢ 0 0 u3 z3 0 ··· 0 ⎥
⎢ ⎥
⎢ 0 0 0 u4 z4 ··· 0 ⎥
U=⎢



⎢ .. .. ⎥
⎢ 0 0 0 0 u5 . . ⎥
⎢ .. .. .. .. .. .. ⎥
⎢ . . ⎥
⎣ . . . . zn−1 ⎦
0 0 0 0 0 un
Efectuando o produto L · U e igualando a M podemos deduzir os va-
lores de li , ui , zi . Antes de passarmos ao caso geral, vamos expor um caso
particular com dimensão 4 × 4. Sejam
⎡ ⎤ ⎡ ⎤
1 0 0 0 u1 z1 0 0
⎢ l 1 0 0 ⎥ ⎢ 0 u z 0 ⎥
⎢ 1 ⎥ ⎢ 2 2 ⎥
L=⎢ ⎥ ; U=⎢ ⎥
⎣ 0 l2 1 0 ⎦ ⎣ 0 0 u3 z3 ⎦
0 0 l3 1 0 0 0 u4
4.2. RESOLUÇÃO DO SISTEMA 81

teremos
⎡ ⎤ ⎡ ⎤
u1 z1 0 0 a1 c1 0 0
⎢ l1 · u1 u2 + l1 · z1 z2 0 ⎥ ⎢ b1 a2 c2 0 ⎥
⎢ ⎥ ⎢ ⎥
L·U=⎢ ⎥=⎢ ⎥
⎣ 0 l2 · u2 u3 + l2 · z2 z3 ⎦ ⎣ 0 b2 a3 c3 ⎦
0 0 l3 · u3 u4 + l3 · z3 0 0 b3 a4

donde se tiram os elementos das matrizes triangulares:

u1 = a1 ; z1 = c1 ;
l1 · u1 = b1 ; u2 + l1 · z1 = a2 ; z2 = c2
(4.14)
l2 · u2 = b2 ; u3 + l2 · z2 = a3 ; z3 = c3
l3 · u3 = b3 ; u4 + l3 · z3 = a4 ;

Daqui podemos escrever sequencialmente

u1 = a1
z1 = c1
b1
l1 =
a1
b1 · c1
u2 = a2 −
u1
z2 = c2
b2
l2 =
u2
b2 · c2
u3 = a3 −
u2
z2 = c2
etc.,

o que sugere as seguintes expressões gerais:

u1 = a1

zi = ci 1≤i≤n−1

ci · bi
ui+1 = ai − 1≤i≤n−1
ui

bi
li = 1≤i≤n−1
ui
82 CAPÍTULO 4. DIFERENÇAS FINITAS: MÉTODO IMPLÍCITO

uma vez que


bi−1
ui + · ci−1 = ai .
ui−1
No caso que nos ocupa,

ai = 1 + 2α ; bi = −α ; ci = −α ; 2≤i≤n−1

logo, (4.14) admite expressões particulares, escrevendo

γ = 1 + 2α

u1 = γ ; z1 = −α ;
l1 · u1 = −α ; u2 + l1 · z1 = γ ; z2 = −α
l2 · u2 = −α ; u3 + l2 · z2 = γ ; z3 = −α
l3 · u3 = −α ; u4 + l3 · z3 = γ ;
donde

u1 = γ

zi = γ 1≤i≤n−1

(4.15)
α2
ui+1 = γ − 1≤i≤n−1
ui

−α
li = 1≤i≤n−1
ui

Estes valores que são os elementos das matrizes triangulares L e U


são usados agora na resolução dos dois sistemas associados ao problema.
Poderíamos expor as expressões recorrentes que se obtêm, porém, pouca
mais informação se ganharia porque o processo só se realiza quando o método
se programa. Nesse caso, a recorrência aparece com toda clareza na resolução
dos dois sistemas traingulares.

4.3 Método de Crank-Nicholson


Neste método combina-se a aproximação à direita (do método explícito) da
derivada
∂u
calculada em (x, τ )
∂τ
4.3. MÉTODO DE CRANK-NICHOLSON 83

com a aproximação à esquerda (do método implícito) da derivada


∂u
calculada em (x, τ + δτ )
∂τ
isto, é combinam-se as expressões
u (x, τ + δτ ) − u (x, τ ) u (x + δx, τ ) − 2u (x, τ ) + u (x − δx, τ )
=
δτ (δx)2
e
u (x, τ + δτ ) − u (x, τ ) u (x + δx, τ + δτ ) − 2u (x, τ + δτ ) + u (x − δx, τ + δτ )
=
δτ (δx)2
Usando os valores nos nós da malha e as notações anteriores, estas expressões
tornam-se em
(m+1) (m) (m) (m) (m)
un − un un+1 − 2 · un + un−1
=
δτ (δx)2
(m+1) (m) (m+1) (m+1) (m+1)
un − un un+1 − 2 · un + un−1
=
δτ (δx)2
δτ
donde, fazendo α = ,
(δx)2
³ ´
(m) (m)
un(m+1) − u(m)
n = α · un+1 − 2 · u(m)
n + un−1
(4.16)
³ ´
(m+1) (m+1)
un(m+1) − u(m)
n = α · un+1 − 2 · un(m+1) + un−1

Somando membro a membro e dividindo ambos os membros por 2,

un(m+1) − un(m) =
α ³ (m) (m)
´ α³
(m+1) (m+1)
´
= · un+1 − 2 · un(m) + un−1 + · un+1 − 2 · un(m+1) + un−1
2 2
Esta equação pode ser arrumada segundo o índice superior de u:
α ³ (m+1) (m+1)
´
un(m+1) − · un+1 − 2 · u(m+1) n + un−1 =
2
α ³ (m) (m)
´
= u(m)
n + · un+1 − 2 · u (m)
n + un−1
2
o que permite a passagem da ordem (m) para a ordem (m + 1) tal como na
situação anterior. De facto, ponhamos

α ³ (m) (m)
´
Zn(m) = un(m) + · un+1 − 2 · un(m) + un−1 (4.17)
2
84 CAPÍTULO 4. DIFERENÇAS FINITAS: MÉTODO IMPLÍCITO

e a equação (??) escreve com maior clareza:

α ³ (m+1) (m+1)
´
u(m+1)
n − · un+1 − 2 · u(m+1)
n + un−1 = Zn(m) (4.18)
2

e a esta expressão aplica-se a doutrina da secção anterior. Explicitamente


teremos

α (m+1) α (m+1)
− · un−1 + (1 + α) · un(m+1) − · un+1 = Zn(m) (4.19)
2 2

4.3.1 O método θ
Este método é uma generalização do anterior. Em vez de somar directamente
as expressões (4.16) faz-se uma soma ponderada através de um parâmetro θ
cujo valor se situa no intervalo 0 ≤ θ ≤ 1. Isto é, considera-se

³ ´
(m) (m)
(1 − θ) · un(m+1) − (1 − θ) · u(m)
n = (1 − θ) · α · un+1 − 2 · u(m)
n + un−1
(4.20)
³ ´
(m+1) (m+1)
θ · un(m+1) −θ · u(m)
n
(m+1)
= θ · α · un+1 − 2 · un + un−1
e soma-se, membro a membro,
un(m+1) − u(m)
n =
³ ´ ³ ´
(m) (m) (m+1) (m+1)
= (1 − θ) α un+1 − 2un(m) + un−1 + θα un+1 − 2u(m+1)
n + un−1 ,

o que vem a dar


³ ´
(m+1) (m+1)
un(m+1) − θ · α · un+1 − 2 · un(m+1) + un−1 =
³ ´
(m) (m)
= un(m) + (1 − θ) · α · un+1 − 2 · un(m) + un−1 . (4.21)
Escrevendo, como anteriormente,
³ ´
(m) (m)
Zn(m) = u(m)
n + (1 − θ) · α · un+1 − 2 · u(m)
n + un−1

chegamos finalmente a
³ ´
(m+1) (m+1)
un(m+1) − θ · α · un+1 − 2 · un(m+1) + un−1 = Zn(m) .
Os diferentes valores de θ reproduzem os diferentes métodos conhecidos:
4.3. MÉTODO DE CRANK-NICHOLSON 85

• θ = 0 : método explícito. De facto, (4.21) ficará


³ ´
(m) (m)
u(m+1)
n = u (m)
n + α · un+1 − 2 · u(m)
n + u n−1 ;

• θ = 1 : método implícito puro. De facto, (4.21) ficará


³ ´
(m+1) (m+1)
un(m+1) − α · un+1 − 2 · un(m+1) + un−1 = un(m)

donde
³ ´
(m+1) (m+1)
(1 + 2 · α) u(m+1)
n − α · un+1 + u n−1 = un(m) .

1
• θ= 2 : método de Crank-Nicholson. Com efeito, (4.21) ficará
α ³ (m) (m)
´
un(m+1) − · un+1 − 2 · un(m) + un−1 =
2

α ³ (m+1) (m+1)
´
= un(m) + · un+1 − 2 · un(m+1) + un−1 ,
2
donde
α (m+1) α (m+1)
− · un−1 + (1 + α) · un(m+1) − · un+1 =
2 2

α ³ (m) (m)
´
= u(m)
n + · un+1 − 2 · un(m) + un−1 .
2
A estabilidade do método depende da relação entre θ e α:

1
• Se 2 ≤ θ ≤ 1 estável para qualquer α > 0.
1
• Se 0 ≤ θ < 2 estável se

1
0<α≤ . (4.22)
2 · (1 − 2θ)
86 CAPÍTULO 4. DIFERENÇAS FINITAS: MÉTODO IMPLÍCITO
Capítulo 5

Opções americanas

As opções americanas, tal como foi referido no Capítulo 1, podem ser exer-
cidas em qualquer momento t até à maturidade T , em contraste com as
opções europeias cujo exercício só é possível na maturidade. Portanto, o
estudo destas opções não só tem de ter em conta a determinação do valor
da opção mas também a determinação do melhor momento para o seu exer-
cício. Esta situação gera um problema conhecido por problema de fronteira
livre. Tipicamente, em cada instante t ≤ T existe um valor do activo, que
se denota por Sf (t) , que separa duas regiões: uma em que a opção deve ser
mantida e outra em que deve ser exercida. Este valor não é conhecido a priori
o que leva a que a que não se saiba a priori onde colocar as condições de
fronteira, enquadrando-se numa classe de problemas cujo exemplo canónico
é o do problema do obstáculo que referiremos adiante.

Há ainda a referir que, para as put options, uma condição natural a


impôr é a seguinte

P (S, t) ≥ max (K − S, 0) ,

pois caso contrário, gerar-se-ia uma oportunidade de arbitragem que levaria


a um aumento da procura e faria subir o valor da opção, acabando rapi-
damente com a situação. Para as call options é assumida a condição cor-
respondente

C (S, t) ≥ max (S − K, 0) .

87
88 CAPÍTULO 5. OPÇÕES AMERICANAS

5.1 O problema de fronteira livre e as opções amer-


icanas
Em cada momento t, existe um valor de opção Sf (t) que determina duas
regiões
a) uma em que o exercício é óptimo, e que é S(t) ≤ Sf (t) , tendo-se


⎪ P (S (t) , t) = K − S(t)


⎪ 2
⎩ ∂P + 1 σ 2 S 2 ∂ P + rS ∂P − rP < 0
∂t 2 ∂S 2 ∂S
b) outra em que o exercício não é óptimo S(t) > Sf (t)


⎪ P (S (t) , t) > K − S (t)


⎪ 2
⎩ ∂P + 1 σ 2 S 2 ∂ P + rS ∂P − rP = 0.
∂t 2 ∂S 2 ∂S
Então,
P (Sf (t) , t) = max {K − Sf (t) , 0}

sendo
P (S, t) > max {K − S, 0} se S > Sf (t)

Esta expressão define a fronteira livre representada na figura 5.1 já apresen-


tada no Capítulo 1.
.
Relembramos aqui uma situação que ilustra o facto de nas put options
americanas P satisfazer uma desigualdade e não a igualdade na equação de
Black-Scholes. Consideremos a função

P (S, t) = K − S

definida para S < E. Calculemos

∂ (K − S) 1 2 2 ∂ 2 (K − S) ∂ (K − S)
+ σ S 2
+ rS − r (K − S)
∂t 2 ∂S ∂S

= 0 + 0 − rS − r (K − S)

= −rK < 0
5.1. O PROBLEMA DE FRONTEIRA LIVRE E AS OPÇÕES AMERICANAS89

Figura 5.1: A curva a traço grosso refere-se ao valor de uma put americana
no período anterior ao exercício, em comparação com o valor de uma put
europeia no mesmo período (abaixo e em traço fino).

o que significa que P (S, t) = K − S não satisfaz à equação de Black-Scholes


mas que satisfaz a inequação (excepto se r = 0).

A put option americana verifica as condições


- de expiração

P (S (T ) , T ) = max {K − S (T ) , 0}

- de fronteira
lim P (S, t) = 0, ∀t ∈ [0, T ]
S→∞

- sobre a fronteira livre




⎪ P (Sf (t) , t) = max {K − Sf (t) , 0} , ∀t ∈ [0, T ]


⎩ ∂P (Sf (t) , t) = −1, ∀t ∈ [0, T ).

∂S
Tem-se ainda como condição que o gradiente de P é contínuo.

Estas condições traduzem matematicamente considerações sobre o com-


portamento prático da put option americana. Por exemplo, a condição
∂P
(Sf (t) , t) = −1, proveniente da construção do modelo, aparece pela
∂S
90 CAPÍTULO 5. OPÇÕES AMERICANAS

análise local na vizinhança da fronteira livre em conjunção raciocínios de


ordem financeira. Sejamos um pouco mais precisos. Supondo que Sf (t)
< K, então
∂ ∂
max {K − Sf (t) , 0} = (K − Sf (t)) = −1.
∂S ∂S
∂P
Existem três possibilidades para o valor de (Sf (t) , t)
∂S
µ ¶
∂P ∂
< −1 = (K − Sf (t))
∂S ∂S
µ ¶
∂P ∂
> −1 = (K − Sf (t))
∂S ∂S
µ ¶
∂P ∂
= −1 = (K − Sf (t))
∂S ∂S

Se se verificasse, por exemplo, a primeira desigualdade, isto é,


∂P ∂
< −1 = (K − Sf (t)) ,
∂S ∂S
isso significaria que P cairia abaixo do valor do payoff max {E − Sf (t) , 0} ,
uma vez que no ponto de contacto o declive seria mais negativo. Logo ter-
se-ia
P (S, t) < max (K − S, 0) ,

o que entraria em contradição com a condição de arbitragem. Argumentos


de carácter financeiro inviabilizam também a segunda condição, pela que
resta a condição com a igualdade.
Como não é conhecida a priori a localização da fronteira livre, a condição
sobre a continuidade do gradiente permite a sua determinação
Poder-se-ia apresentar também uma justificação matemática, rigorosa e
formalizada, das condições acima referidas. Contudo, seriam utilizados a
argumentos que estão fora do alcance deste texto.

5.2 Problema do obstáculo e as opções americanas


A análise das opções americanas, tendo como enquadramento matemático
o estudo de um problema de fronterias livres, é consideravelmente mais
complicado que o das opções europeias. Sendo quase sempre impossível de-
terminar uma solução exacta, torna-se relevante a determinação numérica
de uma solução, o que pressupõe o estudo de problemas de fronteiras livres
5.2. PROBLEMA DO OBSTÁCULO E AS OPÇÕES AMERICANAS 91

0.7
0.6

0.5

0.4

0.3

0.2

0.1

-1 -0.5 0.5 1

Figura 5.2: Esta figura reproduz o exemplo de uma corda em equilíbrio com
obstáculo em que os extremos da corda estão ligados nos pontos (−1, 0) e
(1, 0) e o obstáculo é descrito pela função f (x) = −α(x − a)2 + h.

de modo a poder implementar métodos numéricos e computacionais adequa-


dos. Neste sentido, iremos analisar o problema de fronteira livre canónico
designado por problema do obstáculo.

5.2.1 O problema do obstáculo


Consideremos uma corda elástica de extremos fixos e que é suposta passar
sobre um obstáculo, como ilustrado na figura 5.2.
Representemos por u (x) o deslocamento da corda e x = ±1 os extremos
em que está fixa u (±1) = 0. É suposto que f (±1) < 0 e que f (x) > 0 em
alguns pontos x ∈] − 1, 1[, o que significa que existe de facto uma zona de
contacto entre a corda e o obstáculo, representada na figura pela zona entre
A e B. Contudo, esta zona de contacto não é conhecida à partida e tem de
ser determinada como parte da solução, o que mostra que estamos perante
um problema de fronteira livre. Em cada ponto da zona de contacto, o
deslocamento da corda coincide com a altura do objecto e fora dela a corda
é rectilínea. Isto traduz-se matematicamente do seguinte modo

u (x) = f (x) , se A ≤ x ≤ B
u00 (x) = 0, se − 1 < x < A ou B < x < 1.

Contudo, como os pontos A e B não são conhecidos, são necessárias para a


sua determinação mais duas condições, sugeridas por um argumento basiado
num equilíbrio de forças, e que são a continuidade de u e u0 . Portanto o
problema de fronteira livre representado na figura 5.2 consiste em encontrar
92 CAPÍTULO 5. OPÇÕES AMERICANAS

uma função u (x) e pontos A e B tais que

u (−1) = 0 = u (1)
u00 (x) = 0, se − 1 < x < A ou B < x < 1
u (x) = f (x) , se A ≤ x ≤ B
u0 (A) = f 0 (A)
u0 (B) = f 0 (B) .

É sabido da teoria de problemas de fronteira livre que para cada função f (x)
de tipo dado, a solução u (x) e A e B existem e são únicos. Quanto à sua
determinação exacta, em geral, só é possível para exemplos de f (x) muito
simples, pelo que se recorre à sua determinação numérica. Esta, sendo já
complicada, pode, contudo tornar-se ainda mais difícil se f 00 não for sempre
inferior ou igual a zero, pois isso significa que podem existir várias regiões de
contacto. De qualquer modo, do ponto de vista numérico, o maior problema
com fronteiras livres advém do facto de não estas serem conhecidas a priori.
De entre as várias estratégias possíveis, utizaremos o método envolvendo
problemas lineares de complementaridade. Trata-se de um dos modos de
reduzir o problema a um problema de fronteira fixa do qual se pode derivar
a fronteira livre posteriormente.
Um outro método consiste na utilização de resultados teóricos de Análise
Funcional, mais precisamente na formulação do problema em termos de de-
sigualdades variacionais, assentando a resolução na minimização de um fun-
cional energia adequado num conjunto convexo de funções. Esta abordagem
não será contudo feita neste texto,

5.2.2 A formulação linear de complementaridade


Como referimos, no exemplo da corda elástica de extremos fixos é suposto
que ela passa sobre um obstáculo. Duas situações podem acontecer. Ou
a corda não toca o obstáculo, o que corresponde analiticamente a u > f ,
caso em que é rectilinea, tendo-se u00 = 0; ou existe uma região de contacto,
onde, portanto, u = f e u00 = f 00 < 0. Então podemos escrever o problema
na forma equivalente, denominada problema linear de complementaridade

u00 (u − f ) = 0, −u00 ≥ 0, (u − f ) ≥ 0

sob as condições

u (−1) = u (1) = 0 u, u0 são contínuas.


5.2. PROBLEMA DO OBSTÁCULO E AS OPÇÕES AMERICANAS 93

5.2.3 Opções americanas e a equação de difusão

Concentrar-nos-emos no estudo das put options, que analisaremos em por-


menor, e em seguida referiremos os resultados análogos para as call options.
Serão consideradas opções sobre um activo que pague dividendos, de forma
constante e contínua, e será suposto sempre que a taxa de juro r e o paga-
mento de dividendos D0 satisfazem as desigualdades
r > D0 > 0.
Como sabemos a ausência de arbitragem é garantida pela condição

P (S, t) ≥ max {K − S, 0} . (5.1)


Pelo que vimos anteriormente, sempre que o valor da opção P (S, t) seja
superior ao payoff, max (K − S, 0) , isto é,
P (S, t) > max {K − S, 0}
a opção americana de venda P (S, t) satisfaz a equação de Black-Scholes
∂P 1 ∂2P ∂P
+ σ 2 S 2 2 + (r − D0 ) S − rP = 0, (5.2)
∂t 2 ∂S ∂S
com a condição de expiração
P (S (T ) , T ) = max {K − S (T ) , 0} , (5.3)
e de fronteira,
lim P (S, t) = 0, ∀t ∈ [0, T ] . (5.4)
S→∞
Tal no caso já estudado para as opções europeias, torna-se conveniente para
o tratamento numérico reduzir o problema a um problema de difusão de
equação mais simples, o que, tal como anteriormente, será feito através de
duas mudanças de variáveis. Apresentaremos os cálculos de forma completa
para tornar o estudo mais claro.

Primeira mudança de variáveis

Consideremos a seguinte mudança de variáveis para x e τ


µ ¶
x S
S =K ·e x = log
K

τ 1
t=T − 1 2 ou, reciprocamente, τ = σ 2 (T − t)

2

C (S, t)
P = K · v (x, τ ) v=
K
94 CAPÍTULO 5. OPÇÕES AMERICANAS

Em consequência temos
∂P ∂v dτ ∂v 1 2
= K· = −K · σ
∂t ∂τ dt ∂τ 2

∂P ∂v dx ∂v 1
= K· =K· ·
∂S ∂x dS ∂x S
µ 2 ¶ µ 2 ¶
∂2P ∂ v dx 1 ∂v 1 ∂ v 1 ∂v 1
= K· · · − · = K · · − · .
∂S 2 ∂x2 dS S ∂x S 2 ∂x2 S 2 ∂x S 2
A equação ficará, após substituição,
µ ¶
∂v 1 2 1 2 2 ∂2v 1 ∂v 1
−K · σ + σ S K· · − · +
∂τ 2 2 ∂x2 S 2 ∂x S 2

∂v 1
+ (r − D0 ) S K · · − rKv = 0,
∂x S
ou seja,
1 ∂v 1 2 ∂ 2 v 1 2 ∂v ∂v
− σ2 + σ · 2− σ · + (r − D0 ) · − rv = 0,
2 ∂τ 2 ∂x 2 ∂x ∂x
ou ainda
∂v ∂2v ∂v (r − D0 ) ∂v r
− 2+ − 1 2 · + 1 2 v = 0,
∂τ ∂x ∂x 2σ
∂x 2σ
o que pode escrever-se
à !
∂v ∂2v (r − D0 ) ∂v r
− 2+ 1− 1 2 · + 1 2 v = 0.
∂τ ∂x 2σ
∂x 2σ

Se definirmos as quantidades
r (r − D0 )
k1 = 1 2 e k2 = 1 2
2σ 2σ

encontra-se finalmente como equação equivalente a (5.2)


∂v ∂2v ∂v
= 2
+ (k2 − 1) − k1 v. (5.5)
∂τ ∂x ∂x
Na condição de expiração, dividindo ambos os membros de (5.3) por E
ficará ½ ¾
P (S, T ) K −S
= max ,0
K K
logo, uma vez que t = T equivale a τ = 0 e S = Kex ,
½ ¾
P (Kex , 0) K − K · ex
= max ,0
K K
5.2. PROBLEMA DO OBSTÁCULO E AS OPÇÕES AMERICANAS 95

donde
v (x, 0) = max {1 − ex , 0} . (5.6)
Quanto à condição de fronteira (5.4), a primeira mudança de variáveis
leva a que P (S, t) se escreva como
à !
x τ
P Ke , T − 1 2 .

Como S = Kex , temos que

S −→ ∞ ⇐⇒ Kex −→ ∞ ⇐⇒ x −→ ∞

donde à !
x τ
lim P Ke , T − 1 2 =0

x→∞

o que, por (??) é equivalente a escrever

lim v (x, τ ) = 0 (5.7)


x→∞

Segunda mudança de variáveis

Façamos
v (x, τ ) = eα·x+β·r · u (x, τ ) (5.8)
onde α e β serão escolhidos posteriormente de forma adequada. Então
∂v ∂u
= β · eα·x+β·r · u (x, τ ) + eα·x+β·r
∂τ ∂τ
µ ¶
α·x+β·r ∂u
= e β · u (x, τ ) +
∂τ
e
∂v ∂u
= α · eα·x+β·r · u (x, τ ) + eα·x+β·r
∂x ∂x
µ ¶
α·x+β·r ∂u
= e α · u (x, τ ) +
∂x
donde se calcula a segunda derivada
∂2v ∂u
= α2 · eα·x+β·r · u (x, τ ) + α · eα·x+β·r · +
∂x2 ∂x

∂u ∂2u
+α · eα·x+β·r · + eα·x+β·r · 2
∂x ∂x
96 CAPÍTULO 5. OPÇÕES AMERICANAS

cuja forma final fica


µ ¶
∂ 2v α·x+β·r 2 ∂u ∂ 2 u
=e α · u + 2α · +
∂x2 ∂x ∂x2
Na equação (5.5), substituindo e simplificando, obtém-se
µ ¶
∂u 2 ∂u ∂ 2 u ∂u
β·u+ = α · u + 2α · + + (k2 − 1) · αu + − k1 u
∂τ ∂x ∂x2 ∂x
donde
∂u ∂ 2u ∂u £ 2 ¤
= 2
+ [2α + (k2 − 1)] · + α + (k2 − 1) · α − k1 − β · u.
∂τ ∂x ∂x
A expressão anterior mostra que uma escolha adequada dos valores de α e
∂u
β permite eliminar as parcelas contendo u e . Bastará que sejam respec-
∂x
tivamente cumpridas as seguintes igualdades:

α2 + (k2 − 1) · α − k1 − β = 0

2α + (k2 − 1) = 0

Resolvendo a segunda temos


1
α = − (k2 − 1)
2
e substituindo na primeira virá
1
β = − (k2 − 1)2 − k1 .
4
Assim, a mudança de variável efectuada (5.8) consiste em
1 1 2
v (x, τ ) = e− 2 (k2 −1)x−( 4 (k2 −1) +k1 )τ
· u (x, τ ) , (5.9)

o que permite escrever a equação (5.5) na forma simplificada

∂u ∂2u
=
∂τ ∂x2
Na condição (5.6), dividamos ambos os membros por
1
e− 2 (k2 −1)x .

Obtemos
1
n 1 1
o
e 2 (k2 −1)x · v (x, 0) = max e 2 (k2 −1)x − e 2 (k2 −1)x · ex , 0
5.2. PROBLEMA DO OBSTÁCULO E AS OPÇÕES AMERICANAS 97

e, visto que
1
e 2 (k2 −1)x · v (x, 0) = u (x, 0) ,

teremos
n 1 1
o
u (x, 0) = max e 2 (k2 −1)x − e 2 (k2 +1)x , 0 .

Consequentemente, a condição de expiração, que era uma condição final,


tornou-se uma condição inicial constituída pela função
n 1 1
o
u0 (x) = max e 2 (k2 −1)x − e 2 (k2 +1)x , 0 .

Por outro lado


1 1
e 2 (k2 −1)x ≥ e 2 (k2 +1)x

se e só se
1 1 1 1
k2 x − x ≥ k2 x + x
2 2 2 2
logo,
1 1
− x≥ x
2 2
o que se verifica se e só se
x ≤ 0.

Em consequência, a condição inicial obtida pode escrever-se como uma


função contínua (derivável?) definida por ramos:
⎧ 1 1
(k2 −1)x

⎨ e2 − e 2 (k2 +1)x se x ≤ 0
u0 (x) =


0 se x > 0.

A condição (5.7), atendendo a (5.9) (assumindo que k2 − 1 ≥ 0 ), é


equivalente a
lim u (x, τ ) = 0
x→∞

A condição (5.1), que garante a ausência de arbitragem,

P (S, t) ≥ max {K − S, 0}

dá origem a
1 2
n 1 1
o
u (x, τ ) ≥ e 4 ((k2 −1) +4k1 )τ
max e 2 (k2 −1)x − e 2 (k2 +1)x , 0
98 CAPÍTULO 5. OPÇÕES AMERICANAS

uma vez que


1 1 2
u (x, τ ) = e 2 (k2 −1)x+( 4 (k2 −1) +k1 )τ
v (x, τ )

³ ´
τ
1 1 2
P Kex , T − 1 2
σ
= e 2 (k2 −1)x+( 4 (k2 −1) +k1 )τ 2
K
1 1 2 max {K − Kex , 0}
≥ e 2 (k2 −1)x+( 4 (k2 −1) +k1 )τ
K
1 1 2
= e 2 (k2 −1)x+( 4 (k2 −1) +k1 )τ
max {1 − ex , 0}

1 1 2
n 1 1
o
= e 2 (k2 −1)x+( 4 (k2 −1) +k1 )τ
max e 2 (k2 −1)x − e 2 (k2 +1)x , 0 .

Como podemos observar do que foi estabelecido em cima, o “obstáculo”,


isto é, a restrição payoff é dada pela função
1 2
n 1 1
o
g (x, τ ) = e 4 ((k2 −1) +4k1 )τ max e 2 (k2 −1)x − e 2 (k2 +1)x , 0 .

5.2.4 Opções americanas e a formulação de complementari-


dade
Reescrevendo o problema na formulação linear de complementaridade temos,
tendo em conta o que vimos anteriormente,
µ ¶
∂u ∂ 2 u
− 2 (u (x, τ ) − g (x, τ )) = 0,
∂τ ∂x
µ ¶
∂u ∂ 2 u
− 2 ≥ 0,
∂τ ∂x

u (x, τ ) − g (x, τ ) ≥ 0,

com as condições inicial, fixa e de fronteira livre

u (x, 0) = g (x, 0) ,

∂u ∂g
u (x, τ ) e (x, τ ) têm a mesma regularidade de g (x, τ ) e (x, τ )
∂x ∂x

lim u (x, τ ) = lim g (x, τ ) .


x→±∞ x→±∞
5.2. PROBLEMA DO OBSTÁCULO E AS OPÇÕES AMERICANAS 99

A vantagem do estudo do problema a partir da formulação linear de comple-


mentaridade reside no facto de esta não envolver menção explícita à fronteira
livre. Depois de resolvido o problema de linearidade complementar encon-
tramos a fronteira livre, X (τ ) pela condição que a define, nomeadamente,
para a opção put

u (X (τ ) , τ ) = g (X (τ ) , τ ) , mas u (X (τ ) , τ ) > g (X (τ ) , τ ) se x > X (τ )

Feito o estudo detalhado para a put option, passos análogos levar-nos-iam,


ao efectuarmos a mudança de variável, a obter para a call option problemas
análogos. Mais precisamente, para a call option
∂u ∂2u
= ,
∂τ ∂x2
n 1 1
o
(k2 +1)x (k2 −1)x
u (x, 0) = max e 2 −e 2 ,0

1 2
u (x, τ ) ≥ e 4 ((k2 −1) +4k1 )τ
u (x, 0) ,

lim u (x, τ ) = 0.
x→−∞

Quanto à respectiva formulação linear de complementaridade temos, como


para o caso da put option,
µ ¶
∂u ∂ 2 u
− 2 (u (x, τ ) − g (x, τ )) = 0
∂τ ∂x
µ ¶
∂u ∂ 2 u
− 2 ≥0
∂τ ∂x

(u (x, τ ) − g (x, τ )) ≥ 0
com as condições inicial, fixa e de fronteira livre
u (x, 0) = g (x, 0) ,

∂u ∂g
u (x, τ ) e (x, τ ) têm a mesma regularidade de g (x, τ ) e (x, τ )
∂x ∂x

lim u (x, τ ) = lim g (x, τ ) .


x−→±∞ x−→±∞

sendo que o “obstáculo”, isto é, a restrição payoff é dada para a call option
pela função
1 2
n 1 1
o
g (x, τ ) = e 4 ((k2 −1) +4k1 )τ max e 2 (k2 +1)x − e 2 (k2 −1)x , 0 .
100 CAPÍTULO 5. OPÇÕES AMERICANAS

Analogamente ao que vimos para o caso da put, depois de resolvido o pro-


blema de linearidade complementar encontramos a fronteira livre, X (τ ) ,
pela condição que a define, mais precisamente, para a call

u (X (τ ) , τ ) = g (X (τ ) , τ ) , mas u (X (τ ) , τ ) > g (X (τ ) , τ ) se x < X (τ ) .

Em resumo poderemos dizer que:


- adopta-se a forma genérica para todos os tipos de opções americanas
∂u ∂ 2 u
− 2 ≥ 0
∂τ ∂x

u (x, τ ) − g (x, τ ) ≥ 0

µ ¶
∂u ∂ 2 u
− 2 · (u (x, τ ) − g (x, τ )) = 0
∂τ ∂x
- a função g (x, τ ) depende da opção considerada de acordo com os casos
seguintes:

1. Put.
µ ³ ´ ¶ n 1 o
1 2 1
g (x, τ ) = exp (k2 − 1) + 4k1 τ ·max e 2 (k2 −1)x − e 2 (k2 +1)x , 0
4

2. Call.
µ ³ ´ ¶ n 1 o
1 2 1
g (x, τ ) = exp (k2 − 1) + 4k1 τ ·max e 2 (k2 +1)x − e 2 (k2 −1)x , 0
4

Dito isto, as condições finitas serão

u (x, 0) = g (x, 0)
As seguintes funções são contínuas:

u (x, τ )

∂u
(x, τ )
∂x

g (x, τ )

∂g
(x, τ )
∂x
5.2. PROBLEMA DO OBSTÁCULO E AS OPÇÕES AMERICANAS 101

lim u (x, τ ) = lim g (x, τ )


x→+∞ x→+∞

lim u (x, τ ) = lim g (x, τ )


x→−∞ x→−∞

Resolvido este problema podemos encontrar a fronteira livre X (τ ) pelas


condições que a definem:

u (X (τ ) , τ ) = g (X (τ ) , τ )
102 CAPÍTULO 5. OPÇÕES AMERICANAS
Capítulo 6

Modelo binomial

6.1 Introdução
Nos modelos estudados anteriormente, o preço S de um activo era consi-
derado como uma função contínua do tempo. Porém, dita a prática que
este preço S somente é registado de forma discreta, isto é, em certas datas
correspondentes a certos intervalos de tempo. Este facto permite encarar
o problema sob outro ponto de vista, considerando a variação de S não é
contínua mas sim discreta e manifestando-se através dos valores observáveis,
necessariamente em número finito. Estes valores, designados por

S (t1 ) , S (t2 ) , . . . , S (tn )

são referentes aos instantes

t1 < t2 < ... < tn .

Para tratar este processo pode associar-se-lhe a uma probabilidade de tran-


sição p (Si , Si+1 ) que designa a probabilidade de o valor seguinte a S (ti ) ser
o valor S (ti+1 ). É claro que este processo é eficaz somente se for possível
estimar as probabilidades de transição.
Apresentamos em seguida um modelo discreto que simula o comporta-
mento do preço do activo e, consequentemente, estabeleceremos uma simu-
lação para o valor de uma opção. Suporemos sempre que a situação é neutra
ao risco (risk neutral world). Referir-nos-emos a opções europeias e ameri-
canas.
Focalizar-nos-emos essencialmente em aspectos numéricos, seguindo a
abordagem de Hull [4]. Todavia, referimos que, por detrás dos cálculos
apresentados, estão noções delicadas que envolvem a teoria das martingalas

103
104 CAPÍTULO 6. MODELO BINOMIAL

e de paragem óptima, que fazem parte da abordagem estocástica das opções


(vd. Bjork [1]).

6.2 Modelo binomial


Seja T o tempo de maturidade de uma opção. Dividamos o intervalo tempo-
T
ral [0, T ] em M sub-intervalos de comprimento δt = que são separados
M
pelos instantes
0 < t1 < t2 < ... < tM = T
sendo tm = m · δt. Nesta forma mais simples deste tipo de modelos façamos
a hipótese de que somente existem duas possibilidades:

1. O valor do activo sobe – sendo multiplicado por um coeficiente u > 1,


isto é, Sm+1 = u · Sm , com probabilidade p.

2. Ou o valor do activo desce – sendo multiplicado por um coeficiente


d < 1, isto é, Sm+1 = d · Sm , com probabilidade 1 − p.

Portanto, as probabilidades de transição são constantes. Dito de outra


maneira, ⎧

⎪ u · Sm , com probabilidade p





Sm+1 = ou






⎩ d · S , com probabilidade 1 − p
m

6.2.1 Determinação de p, u e d
Uma vez que estamos a assumir que a taxa de juro r representa a remunera-
ção do capital livre de risco, podemos dizer que para cada valor possível do
instante m · δt, genericamente designado por Sm , o valor esperado do activo
no instante seguinte (m + 1) · δt é igual a

Sm · erδt

De facto, Sm · erδt corresponde ao crescimento do valor do activo motivado


apenas pela taxa de juro, isto é, sem qualquer risco.
Portanto, entrando com as probabilidades dos valores do activo na etapa
m + 1, temos quanto ao valor da esperança matemática de Sm+1 visto como
variável aleatória:

E[Sm+1 ] = Sm · erδt = p · Sm · u + (1 − p) · Sm · d
6.2. MODELO BINOMIAL 105

ou seja,
er·δt = p · u + (1 − p) · d

Esta equação pode ser resolvida em ordem a p, obtendo-se

erδt − d
p= (6.1)
u−d
sendo necessário tomar em conta outras equações para encontrar os valores
de u e d.
De acordo com o modelo browniano geométrico subjacente a variável
aleatória µ ¶
S (t + h)
log
S (t)
segue uma distribuição normal com variância igual a σ 2 h, sendo σ a volati-
lidade do activo (vd. Hull [4]). No caso vertente,

Sm+1 = S ((m + 1) · δt)


Sm = S (m · δt)

logo µ ¶
Sm+1
log
Sm
segue uma distribuição normal com variância σ 2 δt. Por outro lado, uma vez
que a diferença Sm+1 − Sm é pequena, pela fórmula de Taylor,
µ ¶
Sm+1 1
log = log (Sm+1 ) − log (Sm ) ≈ (Sm+1 − Sm ) (6.2)
Sm Sm

⎪ u · Sm − Sm

⎪ =u−1

⎪ Sm




1
(Sm+1 − Sm ) = ou (6.3)
Sm ⎪






⎩ d · Sm − Sm = d − 1

Sm
A variável aleatória cujos valores são u − 1 e d − 1, com probabilidades p
e 1−p também tem variância σ 2 δt. O mesmo sucede à variável aleatória que
toma os valores u e d, com as correspondentes probabilidades. Atendendo a
que a variância de uma variável aleatória X é calculável por
£ ¤
Var [X] = E X 2 − E [X]2 ,
106 CAPÍTULO 6. MODELO BINOMIAL

podemos escrever

p · u2 + (1 − p) · d2 − [p · u + (1 − p) · d]2 = σ 2 δt.

Logo, tendo em conta o valor de p dado por (6.1), chega-se à expressão1 ,


³ ´ ³ ´
− erdt − d · erdt − u = σ 2 δt

ou seja,

erδt (u + d) − u · d − e2rδt = σ 2 δt (6.4)


Esta equação não permite separar os valores de u e d. Para o efeito
introduzimos a condição usada por Cox, Ross and Rubinstein. Supomos
que os valores de u e d são inversos, isto é,
1
u= (6.5)
d
Deste modo, a equação (6.4) simplifica-se para
µ ¶
1
erδt u + = 1 + σ 2 δt + e2rδt (6.6)
u
Mostremos que √
u = eσ δt

é uma solução suficientemente aproximada. Utilizando a série de Taylor que


representa a exponencial
X∞
x xn
e =
n=0
n!
e tomando como valor a aproximação dada pela soma dos primeiros termos
(em que, com abuso, usamos = em vez de ') tem-se
√ √ 1
u = eσ δt
= 1 + σ δt + σ 2 δt
2
√ √ 1
d = e−σ δt = 1 − σ δt + σ 2 δt
2
erδt = 1 + r · δt
e2rδt = 1 + 2r · δt
1
A presente expressão provém do cálculo feito com o programa mathematica, através
do código seguinte:
p = (Exp[r*t] - d)/(u - d)
p*u^2 + (1 - p)*d^2 - (p*u + (1 - p)*d)^2
Expand[%]
Simplify[%]
6.2. MODELO BINOMIAL 107

o que corresponde a ignorar os termos de ordem superior a um. Com estes


valores, a equação (6.4) é satisfeita. Resumindo,

a−d ⎪
p= ⎪
u−d ⎪ ⎪





u = eσ δt ⎪ (6.7)




√ ⎪

−σ δt ⎭
d=e ,
onde
a = erδt , (6.8)
são os valores que satisfazem as equações que, de acordo com a árvore bino-
mial, estão associadas à variação do preço do activo durante um intervalo
de tempo de comprimento δt, numa situação neutral em relação ao risco.
As probabilidades aqui consideradas não são reais, no sentido comum, mas
sim as chamadas probabilidade de risco neutral (teoria de opções via mar-
tingalas). A quantidade a é por vezes designada por factor de crescimento.
Porém, nós podemos encontrar outras expressões para a solução sem
recurso à série de Taylor. A equação (6.6) escreve-se como
µ ¶
rδt 1
e u+ = 1 + σ 2 δt + e2rδt
u
ou seja,
¡ ¢ ³ ´
erδt u2 + 1 = 1 + σ 2 δt + e2rδt · u
logo, ³ ´
erδt u2 + erδt = 1 + σ 2 δt + e2rδt · u
donde, ³ ´
erδt u2 − 1 + σ 2 δt + e2rδt · u + erδt = 0
que é um trinómio do 2o grau em u. A única solução superior a 1 é
¡ 2 2rδt
¢ q 2
1 + σ δt + e + (1 + σ 2 δt + e2rδt ) − 4 · e2rδt
u1 = (6.9)
2 · erδt
De facto, a outra solução é
¡ 2 2rδt
¢ q 2
1 + σ δt + e − (1 + σ 2 δt + e2rδt ) − 4 · e2rδt
u2 =
2 · erδt
e
¡ ¢2 ¡ ¢2
1 + σ 2 δt + e2rδt − 1 + σ 2 δt + e2rδt + 4 · e2rδt
u1 · u2 = = 1,
4 · e2rδt
o que ainda significa que u2 = d.
108 CAPÍTULO 6. MODELO BINOMIAL

Comentário. Note-se que o facto de se assumir que os valores de u e


d são inversos, leva a que na evolução do preço de um activo cada par de
movimentos up e down se neutralize. Assim, por exemplo,

S · u2 · d = S · u (6.10)

isto é, o resultado de dois movimentos de subida e um de descida, é o mesmo


que o obtido por apenas uma subida, o que ficará bem ilustrado na árvore
binomial que apresentamos na secção seguinte.

6.2.2 Triângulo dos preços futuros

Como é fácil observar, em cada passo de ordem m, isto é, de m · δt para


(m + 1) · δt, são considerados m + 1 preços de activos obtidos por todas as
combinações de subidas e descidas anteriores, sabendo que estas se neutra-
lizam duas a duas em virtude da hipótese de Cox, Ross and Rubinstein. É
habitual traçar-se um grafo que representa esta situação. Devido à condição
de Cox, Ross and Rubinstein podem existir mais do que uma possibilidades
de chegar aos nós interiores da etapa m + 1; vd. a Figura 6.1. A evolução
do preço de um activo corresponde a um caminho neste grafo.

S.u^
S.u^2
S.u
S S

S.d
S.d^2

Figura 6.1: Representação dos preços futuros através de um grafo. Note-


se que pode existir mais do que um trajecto para chegar a um vértice. A
evolução dos preços de um activo é representada no grafo através de uma
trajectória.

Uma alternativa consiste em


6.2. MODELO BINOMIAL 109

S · u5
S · u4
S · u3 S · u3
S · u2 S · u2
S·u S·u S·u
S S S
S·d S·d S·d
S · d2 S · d2
S · d3 S · d3
S · d4
S · d5

Tabela 6.1: Triângulo dos preços futuros. Em cada nó há duas opções, ou o


preço do activo é multiplicado por u e sobe, ou é multiplicado por d e desce.
O resultado final é a última coluna que contém todos os possíveis preços do
activo no final do período de maturidade.

representar os valores possíveis de um activo através de uma "matriz"de


forma triangular cujas colunas são numeradas por m = 0, 1, 2 . . . , M e cujas
linhas têm variação
n = 0, 1, . . . , m

conforme a representação das tabelas 6.1 e 6.2. Nós podemos chamar triân-
gulo dos preços futuros a qualquer destas "matrizes".
Designamos qualquer um dos triângulos dos preços futuros por hSm,n ].
Designamos genericamente por Sm,n o elemento deste triângulo que se situa
na coluna m e na linha n desta coluna, n ≤ m. Pela observação da estrutura

0 1 2 3 4 5
S · u5 5
S · u4 S · u3 4
S · u3 S · u2 S·u 3
S · u2 S·u S S·d 2
S·u S S·d S · d2 S · d3 1
S S·d S · d2 S · d3 S · d4 S · d5 0

Tabela 6.2: Apresentação do triângulo dos preços futuros sob a forma de


triângulo rectângulo, o que está mais de acordo com a estrutura do programa
do seu cálculo, se pensarmos na condição n = 0, 1, . . . , m.
110 CAPÍTULO 6. MODELO BINOMIAL

do triângulo podemos inferir a validade da fórmula seguinte:

Sm,n = S · un · dm−n , com n = 0, 1, 2..., m (6.11)

Atendendo a que u = d1 , (6.11) pode ser escrita na forma

Sm,n = S · u2n−m , com n = 0, 1, 2..., m (6.12)

Se quisermos pôr em destaque o efeito subida ou descida, podemos escrever


a partir de (6.11)


⎪ S · un · u−(m−n)





Sm,n = ou com n = 0, 1, 2, . . . , m (6.13)






⎩ S · d−n dm−n

isto é, ⎧
⎪ 2n−m , se 2n > m
⎨ S·u
Sm,n = (6.14)


S · dm−2n , se 2n ≤ m
Esta expressão mostra que no caso de haver mais subidas do que descidas
apenas conta o número de subidas que excede o número de descidas. Recip-
rocamente, no caso de haver mais descidas do que subidas apenas conta
o número de descidas que excede o número de subidas. Obviamente, se o
número for igual, o valor do activo mantém-se. A árvore seguinte esquema-
tiza o que acabámos de dizer.

6.2.3 Triângulo do valor das opções


A última coluna do triângulo dos preços futuros contém os possíveis preços
do activo na data da maturidade t = T . Desenhamos agora um triângulo
semelhante onde inscrevemos o valor da opção. A última coluna deste triân-
gulo é o payoff calculado segundo a natureza da opção, put ou call. Depois,
os valores a inscrever nas células – da direita para a esquerda – são deter-
minados também pela natureza da opção, sendo o valor de Vm,n dependente
pelo menos de Vm+1,n e de Vm+1,n+1 . O modo desta dependência tem a ver
com a natureza da opção. Cf. a tabela 6.3.
A Tabela 6.3 é chamada triângulo dos valores da opção. Veremos em
seguida a concretização destas ideias.
6.3. OPÇÕES EUROPEIAS 111

0 1 2 3 4 5
V5,5 5
V4,4 V5,4 4
V3,3 V4,3 V5,3 3
V2,2 V3,2 V4,2 V5,2 2
V1,1 V2,1 V3,1 V4,1 V5,1 1
V0,0 V1,0 V2,0 V3,0 V4,0 V5,0 0

Tabela 6.3: Triângulo dos valores da opção apresentado sob a forma de triân-
gulo rectângulo. Os valores irão sendo calculados da direita para a esquerda
através da fórmula iterativa conveniente para cada caso. O resultado final
do cálculo é V0,0 , valor da opção na data de início do contrato, t = 0.

Partindo do modelo binomial para simulação de activos, vamos proceder


à simulação de opções quer europeias quer americanas. Como é de esperar,
o facto de serem opções com diferentes condições de exercício vai reflectir-se
no modelo, tornando um pouco mais elaborado o algoritmo de simulação
das opções americanas.

6.3 Opções europeias


Consideremos o caso das opções europeias. Sendo E o preço de exercício e
ST o preço do mercado no tempo T, o payoff da opção de compra (ou call )
é como se sabe
max {ST − K, 0}
e da opção de venda (ou put),

max {K − ST , 0}

Logo, para os vários valores possíveis do activo, hSM,n ], com n = 0, 1, ...., M,


inscritos na última coluna do triângulo dos preços futuros, o payoff é no
caso de uma opção de compra (ou call ),

CM,n = max {SM,n − K, 0} , n = 0, 1, ...., M (6.15)

e no caso de uma opção de venda (ou put),

PM,n = max {K − SM,n , 0} , n = 0, 1, ...., M (6.16)

Como anteriormente, designemos genericamente por V o valor da opção


quer ela seja de compra ou venda. Assumindo que a situação é neutra ao
112 CAPÍTULO 6. MODELO BINOMIAL

risco, o valor esperado da opção em cada instante (m + 1) · δt, isto é, o valor


esperado de
Vm+1,n , sendo 0 ≤ n ≤ m
coincide com o valor da opção Vm,n no instante anterior mδt descontado à
taxa de juro r pelo período δt, isto é,

E[Vm+1,n ] = erδt · Vm,n . (6.17)

Dado que
E[Vm+1,k ] = p · Vm+1,n+1 + (1 − p) · Vm+1,n
ou seja,
erδt · Vm,n = p · Vm+1,n+1 + (1 − p) · Vm+1,n
obtem-se
Vm,n = e−rδt · (p · Vm+1,n+1 + (1 − p) · Vm+1,n ) . (6.18)
Esta igualdade permite calcular o valor da opção no instante m a partir
dos dois valores correspondentes no instante m + 1. Deste modo, recuando
no triângulo podemos obter os possíveis valores da opção em cada instante
T − m · δt até ao valor no instante inicial.

6.3.1 Algoritmo
Resumindo o procedimento enunciado temos a executar os seguintes passos.
Sejam dadas as seguintes quantidades:

S, σ, T, K, r, M

1. Divisão do intervalo [0, T ] em M subintervalos, sendo T expresso em


anos. Cálculo dos parâmetros
T
δt =
M√
u = eσ δt

d = e−σ δt (6.19)
erδt − d
p =
u−d

2. Construção do triângulo dos preços futuros hSm,n ], a partir do preço


inicial S0,0 = S segundo a fórmula 6.11:

Sm,n = S · un · dm−n
6.3. OPÇÕES EUROPEIAS 113

prosseguindo até ao cálculo da última coluna dos M + 1 valores na


data T da maturidade:

SM,n , n = 0, 1, ..., M

3. Determinação dos payoffs respectivos no momento T da maturidade,


VM,n = CM,n no caso de opções de compra ou VM,n = PM,n no caso
de opções de venda, sendo

CM,n = max {SM,n − K, 0}


(6.20)
PM,n = max {K − SM,n , 0}

com n = 0, ..., M .

4. Recuando da maturidade até ao instante inicial, determinação por


recorrência dos valores Vm,n , em cada momento m · δt, a partir dos
respectivos valores esperados no instante (m + 1) · δt descontados à
taxa isenta de risco r, pela equação (6.18),

Vm,n = e−rδt · (p · Vm+1,n+1 + (1 − p) · Vm+1,n ) (6.21)

obtendo no final da aplicação do método de recorrência como valor da


opção no instante inicial

V0,0 = e−rδt (p · V1,1 + (1 − p) · V1,0 ).

Este é o valor da opção no instante inicial t = 0.

Exemplo

Vamos apresentar um exemplo com uma call europeia com prazo de maturi-
dade de 0, 5 meses, M = 5, S = 10 euros, r = 12%, σ = 0, 5. Com estes
valores podem calcular-se os parâmetros necessários a este cálculo, isto é,

T S r σ M K
0, 0417 10 0, 12 0, 5 5 10
δt u d p e−r·δt
0, 0083 1, 0467 0, 9554 0, 4995 0, 9990
Começamos com o triângulo dos preços futuros, Tabela 6.4. Dado que
necessitamos apenas da última coluna esta poderia ter sido calculada direc-
tamente pela fórmula
SM,n = S · un · dM−n
114 CAPÍTULO 6. MODELO BINOMIAL

12, 5636
12, 0030 11, 4675
11, 4675 10, 9558 10, 4670
10, 9558 10, 4670 10, 000 9, 5538
10, 4670 10, 0000 9, 5538 9, 1276 8, 7203
10, 0000 9, 5538 9, 1276 8, 7203 8, 3312 7, 9595

Tabela 6.4: Triângulo dos valores futuros para o exemplo 1. O resultado


final é a última coluna que contém todos os possíveis preços do activo na
maturidade.

2, 5636
2, 0130 1, 4675
1, 4875 0, 9658 0, 4670
1, 0415 0, 5985 0, 2331 0, 0000
0, 6982 0, 3568 0, 1163 0, 0000 0, 0000
0, 4520 0, 2071 0, 0580 0, 0000 0, 0000 0, 0000

Tabela 6.5: Triângulo dos valores ou payoff da call. A última coluna calcula-
se pela fórmula (6.20) e as restantes, da direita para esquerda, pela aplicação
sucessiva da fórmula (6.21), até chegar ao vértice onde se encontra o valor
da opção no início do contrato.

Porém, isso em nada modifica o aspecto conceptual. Efectuando o cálculo


do triângulo dos preços futuros passamos ao cálculo do triângulo dos valores
da opção, vd. Tabela 6.5.
O mesmo método é usado agora para o cálculo da put correspondente
na Tabela 6.6.
Podemos confirmar a paridade put-call :

S + P − C = K · exp (−rT )

ou seja
10 + 0, 4021 − 0, 4520 = 10 × exp (−0, 12 × 0, 0417)

ou
9, 9501 = 9, 9501

A construção de um programa para o cálculo dos valores envolvidos é


fácil. O programa Bin_europ tem como entradas T , S, r, σ, M ; e como
saída o valor V da opção no início do período de maturidade. Os valores
6.3. OPÇÕES EUROPEIAS 115

0, 0000 5
0, 0000 0, 0000 4
0, 0000 0, 0000 0, 0000 3
0, 0558 0, 1115 0, 2231 0, 4462 2
0, 1913 0, 3269 0, 5425 0, 8624 1, 2797 1
0, 4021 0, 6134 0, 9005 1, 2597 1, 6588 2, 0405 0

Tabela 6.6: Cálculo do valor da put europeia correspondente à call do ex-


emplo.

Solução Binomial
T (meses) exacta M = 16 M = 32 M = 64 M = 128 M = 256
1 4, 9005 4, 9005 4, 9005 4, 9005 4, 9005 4, 9005
3 4, 7066 4, 7060 4, 7062 4, 7063 4, 7065 4, 7065
6 4, 4526 4, 4472 4, 4519 4, 4516 4, 4520 4, 4525
9 4, 2465 4, 2394 4, 2461 4, 2461 4, 2451 4, 2462
12 4, 0733 4, 0691 4, 0665 4, 0734 4, 0722 4, 0724

Tabela 6.7: Tabela com os valores de uma put europeia calculados pelo
método binomial, usando um número variado M de intervalos. Usou-se o
programa Bin.europ. A solução encontrada por este método é comparada
com a solução exacta. Valores: K = 10, S = 5, r = 0, 12, σ = 0, 5.
Comparar também os resultados obtidos com Wilmott [10], pág. 394.

obtidos podem ser comparados com os valores exactos obtidos pela fórmula
das opções europeias. Com esta e com Bin_europ se pode escrever a tabela
6.7.

6.3.2 Valor esperado do payoff na maturidade


Vamos calcular o valor esperado do payoff na maturidade para a call eu-
ropeia do Exemplo 1. Começa-se por notar o valor de cada elemento da
coluna do triângulo dos preços futuros na tabela 6.4, sendo M = 5,

SM,n = S · un · dM−n

(n = 0, 1, . . . , M ). Quer dizer, para se chegar à célula (M, n) são necessárias


e suficientes n subidas e M − n descidas. O primeiro problema consiste em
saber quantos caminhos conduzem do vértice até à célula (M, n).
Este problema é equivalente ao seguinte. Dadas M caixas colocar a letra
116 CAPÍTULO 6. MODELO BINOMIAL

"u"em n delas e a letra "d"nas restantes. Por exemplo,

u d d u d

Contemos o número de modos diferentes de realizar esta operação em função


do valor de n. Se n = M , só há um modo. Se n = 0 também o modo é
único. Se n = 1 existem M modos de realizar a operação. No caso em
que M = 5 e n = 2 existem 10 modos. Em geral, o número de maneiras
diferentes de colocar a letra "u" em n delas e a letra "d " nas restantes é
igual a combinações de M , n a n:
µ ¶
M
(6.22)
n
Sendo assim, o número de caminhos que partem do vértice e chegam à
¡ ¢
célula (M, n) é igual a M
n .
Por outro lado, temos que examinar a probabilidade de cada um desses
caminhos. Uma vez que ele tem n subidas e M − n descidas, a sua proba-
bilidade é igual a
pn · (1 − p)M−n
Com estes factos em vista podemos organizar a Tabela 6.8 para a call.
O valor esperado 0, 4542 refere-se à data da expiração da opção, t = T .
Tendo em conta de que o valor da opção é pago no início, isto é, com t = 0,
temos que descontar aquele valor dos juros entretanto decorridos, isto é,
executar a multiplicação:

0, 4542 × e−r·T = 0, 4542 × exp (−0, 12 × 0, 0417) = 0, 4520

reencontrando assim o valor da opção na data do contrato.

6.4 Opções Americanas


O caso das opções americanas é análogo na sua construção, porém, deve-se
ter em conta a possibilidade de exercício por parte do tomador da opção
até à maturidade. Aquele deverá exercer o direito de opção quando o valor
desta for superior ao simulado. Este facto faz com que o valor da opção
americana em cada instante seja superior ao previsto para uma opção eu-
ropeia. Raciocinemos com uma put. Na passagem da coluna m + 1 para a
coluna m, o raciocínio com o valor esperado atribui o seguinte valor à opção:

P̄ = e−rδt · (pPm+1,n + (1 − p) Pm+1,n+1 ) (6.23)


6.4. OPÇÕES AMERICANAS 117

(0) (1) (2) (3) (4) (5)


o
M =5 Payoff N caminhos P. caminho P. da célula Parcelas
¡M ¢
n CM,n In = n πn kn CM,n · kn
5 2, 5636 1 0, 03111 0, 03111 0, 0798
4 1, 4675 5 0, 03117 0, 15583 0, 2287
3 0, 4670 10 0, 03122 0, 3122 0, 1458
2 0, 0000 10 0, 03128 0, 3128 0, 0000
1 0, 0000 5 0, 03134 0, 15668 0, 0000
0 0, 0000 1 0, 03139 0, 03139 0, 0000

Valor esperado 0, 4542

Tabela 6.8: Cálculo do valor esperado dos payoffs à data da expi-


ração. Na coluna (1) estão os valores do payoff, inscritos nas células da
última coluna do triângulo da opção. Na coluna (2) está o número de cam-
inhos In que permite aceder a cada célula, partindo-se do vértice. Na coluna
(3) indica-se a probabilidade de cada um dos caminhos calculada segundo o
número de ups e downs que este contém. A probabilidade de cada célula é a
soma das probabilidades dos caminhos que a ela chegam; obtida pelo produto
do número de caminhos pela probabilidade de cada um deles Kn = In · π n
porque todos têm a mesma probabilidade; coluna (4). Resta multiplicar
a probabilidade de cada célula pelo payoff respectivo (coluna 5) e depois
somar. O resultado é o valor esperado do payoff à data da expiração.
118 CAPÍTULO 6. MODELO BINOMIAL

Porém, este valor pode ser comparado com o payoff nesse instante

K − Sm,n

uma vez que este payoff pode realizado visto que o tomador pode exercer a
opção. Assim, o valor da put americana é a maior quantidade entre

e−rδt · (pPm+1,n + (1 − p) Pm+1,n+1 ) e Sm,n

ou seja,
n o
Pm,n = max K − Sm,n , e−rδt · (pPm+1,n + (1 − p) Pm+1,n+1 ) (6.24)

A execução deste algoritmo implica uma comparação permanente com o


triângulo dos valores futuros hSm,n ] o qual teria supostamente que ser cal-
culado e guardado na memória, porém, sabemos que

Sm,n = S · un · dm−n , com n = 0, 1, 2..., m

Se tivermos uma call americana a expressão (6.24) modifica-se para


n o
Cm,n = max Sm,n − K, e−rδt · (pCm+1,n + (1 − p) Cm+1,n+1 ) (6.25)

Deste modo, o modelo binomial é construído incorporando a possibilidade de


exercício antes da maturidade. Como no caso das opções europeias, dividi-
mos o tempo de vida da opção T em M pequenos intervalos [m · δt, (m + 1) · δ],
de comprimento δt, e construímos o triângulo dos preços futuros hSm,n ]
de acordo com o procedimento indicado anteriormente. Com estes dados
podemos calcular os M +1 possíveis valores do payoff, no instante T = M ·δt,
e que são, para n = 0, 1, 2, . . . , M , no caso de opção de compra,

CM,n = max {SM,n − K, 0}

e, no caso de opção de venda,

PM,n = max {K − SM,n , 0}

Estes valores constituem a última coluna do triângulo dos valores da opção.


A call americana não tem interesse visto provar-se que deve ser exercida
o mais tarde possível, assim, fixemo-nos na put ou opção de venda.
6.4. OPÇÕES AMERICANAS 119

6.4.1 Algoritmo
Resumindo o procedimento enunciado temos a executar os seguintes passos.
Sejam dadas as seguintes quantidades:

S, σ, T, K, r, M
1. Divisão do intervalo [0, T ] em M subintervalos, sendo T expresso em
anos. Cálculo dos parâmetros
T
δt =
M√
u = eσ δt

d = e−σ δt (6.26)
erδt − d
p =
u−d
2. Construção do triângulo dos preços futuros Sm,n , a partir do preço
inicial S0,0 = S segundo a fórmula 6.11:
Sm,n = S · un · dm−n
prosseguindo até ao cálculo da última coluna dos M + 1 valores na
data T da maturidade:
SM,n , n = 0, 1, ..., M

3. Determinação dos payoffs respectivos no momento T da maturidade


PM,n no caso de opções de venda, sendo
PM,n = max {K − SM,n , 0} (6.27)
com n = 0, ..., M .

4. Recuando da maturidade até ao instante inicial, determinação por


recorrência dos valores Pm,n , em cada momento m · δt, a partir dos
respectivos valores esperados no instante (m + 1) · δt descontados à
taxa isenta de risco r, pela equação (6.18),
n o
Pm,n = max K − Sm,n , e−rδt · (pPm+1,n + (1 − p) Pm+1,n ) (6.28)
obtendo no final da aplicação do método de recorrência como valor da
opção no instante inicial
n o
P0,0 = max K − Sm,n , e−rδt · (pC1,1 + (1 − p) C1,0 )
Este é o valor da opção no instante inicial t = 0.
120 CAPÍTULO 6. MODELO BINOMIAL
Capítulo 7

Introdução ao Método de
Monte Carlo

7.1 Introdução

O método de Monte Carlo é um método numérico utilizado para simular


o valor de algumas quantidades cuja determinação exacta é muito com-
plexa ou mesmo impossível. Assenta na geração de números aleatórios, ou
pseudo-aleatórios, e apoia-se do ponto de vista teórico nas Leis dos Grandes
Números e, em particular, no Teorema do Limite Central1 . O facto de as
ideias envolvidas na concepção do método serem simples, aliado às facili-
dades computacionais dos dias de hoje, tornam este método um meio de
simulação interessante e poderoso, muito utilizado na prática.
De grande utilidade em diversas áreas do conhecimento, revela—se muito
adequado na determinação de áreas e no estudo de problemas da teoria
financeira. As questões que se levantam nas aplicações financeiras estão
geralmente relacionadas com o cálculo de valores esperados, assunto em que
o método de Monte Carlo dá uma contribuição muito importante do ponto
de vista numérico.
Começaremos por ver, de forma ingénua, uns exemplos simples que ilus-
trarão e motivarão a aplicação do método e o seu enquadramento teórico.
Passaremos em seguida a aplicações em opções financeiras.
Ao longo do texto, relembram-se algumas noções básicas, por comodi-

1
Ver Apêndice. Para esclarecimento de questões probabilísticas subjacentes, consultar
Hogg, R. V. e A. Tanis [3]; Murteira [5]; Taha [7].

121
122 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

Figura 7.1: Quarto de círculo de raio 1 inscrito num quadrado Q de lado


igual a 1.

dade de leitura. Apresentam-se diversas tabelas2 que se destinam a ilustrar


e tornar mais claros os conceitos.

7.2 Cálculo de áreas e valor esperado


Área do círculo Para situarmos o princípio do método de Monte Carlo,
vamos começar por usá-lo na estimação da área de um círculo de raio igual
a 1 caracterizado por:

C = {(x, y) ∈ R2 : x2 + y 2 ≤ 1}.

Interessemo-nos pelo quarto de círculo C ∗ definido pelas condições

C ∗ = {(x, y) ∈ C : x ≥ 0 , y ≥ 0}.

(ver figura 7.1).


Para estimarmos o valor da área do quadrado Q tal que

Q = {(x, y) ∈ R2 : 0 ≤ x ≤ 1 , 0 ≤ y ≤ 1}

geram-se aleatoriamente n pontos pertencentes ao quadrado, isto é, uma


sequência
(xi , yi ) , i = 1, 2, . . . , n,
2
Os códigos dos programas respectivos são apresentados nas aulas.
7.2. CÁLCULO DE ÁREAS E VALOR ESPERADO 123

N. de pontos Monte Carlo Erro Erro relativo %


100 0, 77 −0, 01538 1, 96%
500 0, 788 0, 00260 0, 331%
1000 0, 783 −0, 00240 0, 305%
1500 0, 78267 −0, 00273 0, 348%
2000 0, 80150 0, 01610 2, 050%
5000 0, 78540 −0, 0030 0, 382%

Tabela 7.1: Execução do programa AreaCirculo. O valor exacto da área do


quarto de círculo de raio 1 é 0, 785797. A diferença entre o valor estimado e
o valor exacto dá-nos o erro. O erro relativo é o quociente entre o módulo
do erro e o valor exacto. Vê-se que o aumento do número de pontos não
melhora forçosamente a exactidão do método.

de pontos de Q.
Esta sequência finita é uma amostra dos pontos do quadrado. De en-
tre os pontos gerados, s pontos pertencem ao quarto de círculo C ∗ , isto é,
satisfazem à condição
(xj )2 + (yj )2 ≤ 1,
enquanto os restantes n − s não pertencem a C ∗ . A aplicação do método de
Monte Carlo baseia-se na assunção de que o quociente
s
n
n−s
é proporcional à área de C ∗ , enquanto que o quociente é proporcional

n
à área da região complementar Q r C . No caso presente, uma vez que a
s
área de Q é igual 1, então será igual, melhor, aproximadamente igual, à

n
área de C . Na Tabela 7.1 apresentam-se estimativas da área do quarto de
círculo calculadas pelo programa AreaCirculo.
Naturalmente que não podemos esperar que este método dê um valor
“exacto”, entendido este como correspondendo a um número fixado de casas
decimais exactas que se obtêm com a fórmula 14 πr2 . Sendo assim, é indis-
pensável estimar o erro cometido
Em todo o caso, veremos mais adiante que, lidando com probabilidades,
poderemos usar o método de Monte Carlo de outra maneira, obtendo assim
um valor aproximado e uma estimativa do erro.

Área do triângulo Consideremos agora o triângulo rectângulo indicado


na Figura 7.2. A superfície cuja área queremos calcular é limitada superior-
124 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

Figura 7.2: Triângulo rectângulo com catetos iguais a 1.

mente pelo gráfico da função y = x. Pelo cálculo clássico, o valor desta área
é o valor do integral
Z 1 ¯1
x2 ¯¯ 1
xdx = ¯ =2
0 2 0
Por outro lado, consideremos a variável aleatória uniforme U no espaço
amostral [0, 1], U ∼ U[0,1] . A sua função densidade é f (u) , assim definida:


⎨ 0 se − ∞ < u < 0
f (u) = 1 se 0 ≤ u ≤ 1 (7.1)


0 se 1 < u < +∞.

A média ou valor esperado de U vale:


Z +∞ Z 1
1
E[U ] = u · f (u) du = udu = ,
−∞ 0 2

isto é, tem o mesmo valor que a área do triângulo.

Área do círculo (de novo) Olhemos agora para o cálculo da área do


quarto de círculo segundo o método descrito no ponto anterior. Neste caso, a
superfície cuja área queremos calcular é limitada superiormente pelo gráfico

da função y = 1 − x2 e, pelo cálculo clássico, a área do quarto de círculo
vale Z 1p
π
1 − u2 du = .
0 4
7.3. MÉTODO DE MONTE CARLO 125

Consideremos agora a variável aleatória


p
Y (U ) = 1 − U 2

onde U ∼ U[0,1] . A média ou valor esperado de Y (U ) = 1 − U 2 é dada por
Z +∞ p Z 1p
π
E[Y (U )] = 1 − u2 · f (u) du = 1 − u2 du = ,
−∞ 0 4

que coincide com o valor da área.

Caso mais geral Do que vimos anteriormente, podemos intuir que a área
limitada pelo gráfico de uma função y(x), não negativa, pelo eixo dos xx e
pelas rectas x = 0 e x = 1, que, como sabemos, é calculável pelo integral
definido Z 1
y(x)dx,
0
pode também ser encarada como o valor esperado de uma função Y (U ) da
variável aleatória U ∼ U[0,1] , isto é,
Z +∞ Z 1
E[Y (U )] = y(u)f (u)du = y(u) du.
−∞ 0

Os casos apresentados ilustram situações em que o cálculo da área pode


ser efectuado recorrendo ao cálculo integral. Contudo, podemos ter situações
em que tal não aconteça de forma simples, como por exemplo, se a função
integranda não for primitivável de forma elementar. Esse facto põe em
evidência a necessidade de um processo aproximado. Como vimos, o assunto
pode ser encarado sob o prisma de um cálculo de valor esperado. Esta
perspectiva conduz-nos à questão da estimação de esperanças matemáticas,
questão de grande relevância em problemas financeiros. Com efeito, a relação
estabelecida abre-nos a porta para um processo numérico de cálculo, usando
as propriedades da teoria das probabilidades. Esse processo constitui o
algoritmo de Monte Carlo.

7.3 Método de Monte Carlo

Consideremos o problema de estimarmos a quantidade seguinte

θ = E[y(X)]
126 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

onde X é uma variável aleatória, y uma função mensurável tal que E[|y(X)|] <
+∞.
Seja X1 , X2 , . . . , Xn uma amostra da variável aleatória X, de variáveis
mutuamente independentes e identicamente distribuídas (i.i.d.) com X, de
valor médio μ e variância σ 2 6= 0 (finitos) ou seja

E [Xi ] = μ e Var [Xi ] = σ 2

para cada i = 1, 2, . . . , n.
Seja y uma função mensurável e consideremos
y (X1 ) + y (X2 ) + . . . + y (Xn )
Y ≡ Yn =
n
n
1 X¡ ¢2
σ 2n = y (Xi ) − Y .
n−1
i=1

Tem-se que:

1. Y é um estimador não enviesado de θ = E[y(X)], visto que:


n
X
∙ ¸ E[y (Xi )]
£ ¤ y (X1 ) + y (X2 ) + . . . + y (Xn ) i=1 nθ
E Y =E = = = θ.
n n n

2. Y é consistente, visto que pela lei forte dos grandes números


q.c.
Y ≡ Yn −→ θ,
n→+∞

Pelo Teorema do Limite Central,


√ Y −θ d
n −→ N (0, 1) (7.2)
σn

As propriedades anteriores mostram que Y constitui um bom estimador


de θ = E[y(X)] e permitem-nos obter intervalos de confiança para θ. Com
efeito, a convergência (7.2) implica que, para n grande,
µ¯ ¯ ¶
¯√ Y − θ ¯
¯
P ¯ n ¯ ≤ a ' P (|Z| ≤ a) ,
σn ¯
onde Z ∼ N (0, 1). Assim
∙ ¸
σn σn
Y − a√ , Y + a√
n n
7.4. MONTE CARLO E O CÁLCULO DE ÁREAS 127

é um intervalo aleatório de nível assintótico α para θ = E[y(X)]. Tomando,


por exemplo, α = 0, 05 (e neste caso vem a ≈ 1.96), tem-se
µ ∙ ¸¶
σn σn
P θ ∈ Y − 1, 96 √ , Y + 1, 96 √ = 0, 95. (7.3)
n n
E no caso de y ser a média observada duma amostra aleatória de dimensão
n, um intervalo de confiança a 100(1 − α)% 3 é dado por
σn σn
y − 1, 96 √ ≤ θ ≤ y + 1, 96 √
n n
O método de construção de Y n é precisamente o método de Monte Carlo
que esquematizamos a seguir.

Método de Monte Carlo


• Gera-se uma amostra aleatória de dimensão n da população

x1 , x2 , . . . , xn .

• Calcula-se para cada i = 1, . . . , n

y (xi ) .

• Calcula-se
y (x1 ) + y (x2 ) + . . . + y (xn )
y= .
n
Pelo que foi visto anteriormente Y é um bom estimador de E[y(X)].

7.4 Monte Carlo e o cálculo de áreas


Nesta secção vamos retomar o cálculo de áreas da Secção 1.2 usando o
método de Monte Carlo. Como nestes casos podemos calcular o valor ex-
acto, é possível calcular o erro. Estimaremos a área do triângulo e do círculo,
considerando U1 , U2 , . . . , Un uma amostra de variáveis mutuamente indepen-
dentes e identicamente distribuídas (i.i.d.) da variável aleatória uniforme
U ∼ U[0,1] , e usando o método descrito anteriormente. Apresentaremos
tabelas com simulações feitas.
Começamos por fazer uma breve revisão de alguns aspectos relativos à
distribuição uniforme U[0,1] .
3
Isto significa que se for determinado um número elevado de intervalos nestas condições,
aproximadamente 100 × (1 − α)% desses intervalos conterão de facto o verdadeiro valor
de θ (que permanece desconhecido).
128 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

Distribuição uniforme U[0,1] Como já referimos, diz-se que a variável


aleatória tem distribuição uniforme em [0, 1] quando a sua densidade é dada
por (7.1). A média μ de U é dada pelo integral
Z 1 Z 1
1
μ= u · f (u) du = udu =
0 0 2

e a variância é
Z 1
σ 2
= (u − μ)2 · f (u) du
0
Z 1µ ¶2 µ ¶ #1
1 1 1 3 1
= u− du = u− = .
0 2 3 2 12
0

Sejam a e b dois números pertencentes ao intervalo [0, 1]. Seleccionado


aleatoriamente um ponto do intervalo [0, 1] , a probabilidade de este per-
tencer ao intervalo [a, b] é igual ao valor do integral seguinte
Z b Z b
f (u) du = du = b − a,
a a

isto é,
Z b
P [a ≤ U ≤ b] = du = b − a,
a

o que mostra que a dita probabilidade é igual à amplitude do intervalo.


A situação anterior pode exprimir-se através da função distribuição F (x).
Em termos gerais, dada uma v. a. X cuja função densidade é f (x), a função
distribuição é definida pela igualdade
Z x
F (x) = f (x) dx.
−∞

A função distribuição caracteriza completamente o comportamento proba-


bilístico da variável aleatória, uma vez que
Z b
P [a < X ≤ b] = f (x) dx = F (b) − F (a)
a

No tocante à variável aleatória uniforme U temos:




⎨ 0, se − ∞ < u < 0
F (u) = u, se 0 ≤ u < 1 .


1, se 1 ≤ u < +∞
7.4. MONTE CARLO E O CÁLCULO DE ÁREAS 129

Média da amostra de dimensão n Tomemos uma amostra de dimensão


n de variáveis aleatórias
U1 , U2 , . . . , Un
independentes e identicamente distribuídas com U[0,1] e consideremos a mé-
dia
1
U = (U1 + U2 + · · · + Un ) .
n
Podemos afirmar que:
1
• a média da variável aleatória U é igual à média de U , isto é, igual a
2
visto que
n
1 1X 1 n 1
E[U ] = E[ (U1 + U2 + · · · + Un )] = E[Ui ] = · = ;
n n n 2 2
i=1

σ 2U 1
• a variância de U é σ 2U = = visto que
n 12 · n
¡ ¢ 1
σ 2U = Var U = 2 Var (U1 + U2 + · · · + Un )
n
n
1 X 1 n 1
= 2
Var [Ui ] = 2 · = ;
n n 12 12 · n
i=1

Logo,

• o desvio padrão de U é dado por


1
σU = √ √ ;
12 · n

• pelo Teorema do Limite Central tem-se


¡ ¢
U1 + U2 + · · · + Un − n 12 ·
1 √ ∼ N (0, 1) .
12 n

Sendo Y uma função mensurável, podemos fazer afirmações análogas


para a amostra aleatória

Y (U1 ) , Y (U2 ) , . . . , Y (Un )

considerando a sua média


Y (U1 ) + Y (U2 ) + . . . + Y (Un )
Y ≡Yn = .
n
130 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

Erro
Dimensão Monte Carlo absoluto
100 0, 49481 0, 00519
500 0, 49749 0, 00251
1000 0, 50042 0, 00042

Tabela 7.2: Estimativa, pelo método de Monte Carlo, do valor da área de


um triângulo rectângulo de cateto unitário. Valor exacto da área igual a
0, 5.

Área do triângulo - estimação Consideremos novamente o triângulo


rectângulo da Figura 7.2. Como referimos anteriormente a sua área pode
ser encarada como o valor esperado da variável uniforme
Z +∞
E[U ] = u · f (u) du.
−∞

e, pelo que acabámos de ver, podemos estimar a média através de uma


amostra, mais precisamente, através de uma concretização da variável aleatória

1
Ū = (U1 + U2 + · · · + Un ) ,
n
em que Ui ∼ U[0,1] , i = 1, ..., n.
A Tabela 7.2 contém os valores aproximados da área do triângulo se-
gundo a dimensão n da amostra.

Área do círculo - estimação Como vimos na Secção 2, para estimarmos


a área do círculo segundo o método descrito consideramos a variável aleatória
p
Y = 1 − U 2.

A área do quarto de círculo vale


Z +∞ p Z 1p
π
E[Y (U )] = 1 − u2 .f (u) du = 1 − u2 du =
−∞ 0 4

e pode ser estimada recorrendo à estimação da média da variável aleatória



Y (U ) = 1 − U 2 .
Vamos estimar a área através do mesmo método já usado anteriormente,
isto é, por amostragem:
Y1 , Y2 , . . . , Yn
7.5. OPÇÕES FINANCEIRAS 131

Dimensão Monte Carlo Erro absoluto Erro relativo


10 0, 769804 0, 0155944 3, 12%
100 0, 788769 0, 0033704 0, 67%
500 0, 788144 0, 0027455 0, 55%
1000 0, 786987 0, 0015892 0, 32%
5000 0, 783027 0, 0023707 0, 47%

Tabela 7.3: Execução do programa AreaCirculo2. Valor aproximado da


área do quarto de círculo obtido como média de uma amostra da variável
p
aleatória Y = (1 − U 2 ). Área (considerada) exacta: π/4 = 0, 785398.
Verifica-se que o aumento da dimensão da amostra não garante, por si só,
uma melhor aproximação.

sendo q
Yi = Y (Ui ) = 1 − (Ui )2

em que Ui ∼ U[0,1] , i = 1, ..., n. A Tabela 7.3 fornece os dados correspon-


dentes a este cálculo.
Neste caso teremos que considerar a variável aleatória média

Y1 + Y2 + · · · + Yn
Ȳ = .
n

7.5 Opções financeiras


Explicada e ilustrada a essência do método vamos começar por uma apli-
cação financeira, mais precisamente, a estimação do valor de uma opção
europeia de compra. É certo que, tal como nos problemas anteriormente
resolvidos, existe uma fórmula fechada para o cálculo. Em todo o caso, a
apresentação que se segue serve para ilustrar a potencialidade do método de
Monte Carlo, uma vez o problema bem enunciado.
Refere-se que a simulação de Monte Carlo utiliza os resultados da teoria
das opções financeiras em ambiente neutro ao risco.

7.5.1 Call europeia


Consideremos uma call europeia sobre um activo subjacente S com payoff
no instante T sendo o preço de exercício K. Suponhamos que a taxa de juro
132 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

r é constante e que o activo subjacente S (t) tem em ambiente neutro ao


risco a dinâmica seguinte

dS (t) = rS (t) dt + σS (t) dW (t),

onde W é um processo de Wiener. Como é sabido a solução da SDE anterior


é dada por
1 2
S (t) = S (0) · e[r− 2 σ ]t·σW (t) .

O valor de uma call europeia C sobre o activo S é o valor esperado da


variável aleatória
X = e−rT (S (T ) − K)+

ou seja, o valor C da opção é


£ ¤
C = E e−rT (S (T ) − K)+ .

Ora, W (T ) ∼ N (0, T ). Portanto, podemos escrever

T · Z = W (T ) em que Z ∼ N (0, 1)

donde √
1 2
S (T ) = S (0) · e[r− 2 σ ]T ·σZ T
.

Para estimarmos a média teremos que considerar uma amostra i.i.d. de


Z,
Z1 , Z2 , . . . , Zn .

O algoritmo segue os passos seguintes, repetidos n vezes:

gerar Zi ³£ ¤ √ ´
calcular Si (T ) = S (0) · exp r − 12 σ 2 T ∗ σZi T
calcular Ci = e−rT (S (T ) − K)+
..
··· .
C1 + C2 + · · · + Cn
calcular C=
n
Este algoritmo é executado no programa MC_Calleurop, para uma call
a 3 ou 6 meses (0, 25 ou 0, 5 do ano). Os resultados estão na Tabela 7.4.

Como vimos anteriormemente, considerando a variável aleatória σ 2n


n
1 X¡ ¢2
σ 2n = Ci − C
n−1
i=1
7.5. OPÇÕES FINANCEIRAS 133

T σ K r M. Carlo V. exacto Erro abs E. relativo


0, 25 0, 2 9 0, 05 1, 170060 1, 167005 0, 003 0, 26%
0, 25 0, 15 10 0, 05 0, 358488 0, 363494 0, 005 1, 38%
0, 25 0, 2 11 0, 05 0, 113396 0, 119107 0, 006 4, 80%
0, 5 0, 15 9 0, 05 1, 278150 1, 274667 0, 003 0, 27%
0, 5 0, 2 10 0, 05 0, 677618 0, 688848 0, 011 1, 63%
0, 5 0, 15 11 0, 05 0, 158241 0, 166932 0, 009 5, 21%

Tabela 7.4: Execução do programa MC Calleurop. Preço actual: S(0) = 10.


O programa recorre a uma amostra de Z, de dimensão n = 1000, gerada
pelo programa SPSS. Para o cálculo do valor exacto usa-se o programa
europeias5, em Visual Basic 6.

expressa na forma referida na Secção 1.3, podemos afirmar que


σn σn
C − zα/2 √ ≤ C ≤ C + zα/2 √
n n

com probabilidade 1 − α, onde a = zα/2 é tal que

Φ (zα ) = 1 − α,

sendo Φ é a função distribuição da normal N (0, 1). Deste modo, ter-se-á,


por exemplo, para

α = 0, 05 e zα/2 = 1, 96,
µ ¸ ∙¶
σn σn
P C ∈ C − 1, 96 √ , C + 1, 96 √ = 0, 95.
n n
Ou, analogamente, para

α = 0, 0027 e zα/2 = 3,
µ ¸ ∙¶
νn νn
P C ∈ C − 3√ , C + 3√ = 0, 9973.
n n
Vd. por exemplo Glasserman [2], p. 5.

7.5.2 Opção asiática


Na opção europeia o exercício ocorre apenas na maturidade, isto é, no tempo
T , e o payoff depende apenas das condições no instante do exercício. Na
call asiática que vamos considerar, o payoff depende dos preços do activo
134 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

registados em tempos determinados no contrato da opção entre 0 e T . Seja


um conjunto de datas entre 0 e T :

0 = t0 < t1 < t2 < . . . < tm = T

e os preços do activo nessas datas

S (0) , S (t1 ) , S (t2 ) , . . . , S (T )

onde, analogamente ao ponto anterior,


1 2
S (t) = S (0) · e[r− 2 σ ]t·σW (t) ,

ou seja √
1 2
S (t) = S (0) · e[r− 2 σ ]t·σZ t
(7.4)
sendo

t · Z = W (t) em que Z ∼ N (0, 1).
Considere-se a média
m
1 X
S̄ = S (tj ) .
m
j=1

O payoff do tomador da opção, descontado para o instante 0, vale


¡ ¢+
e−rT · S̄ − K

S̄ é uma variável aleatória e o valor da opção é o valor esperado:


h ¡ ¢+ i
V = E e−rT · S̄ − K .

Vamos apresentar um algoritmo para estimar V . Comecemos por considerar


a seguinte recorrência, análoga à equação (7.4).
1 2 √
S (t1 ) = S (0) · e[r− 2 σ ](t1 −t0 )+σZ t1 −t0

1 2 √
S (t2 ) = S (t1 ) · e[r− 2 σ ](t2 −t1 )+σZ t2 −t1

1 2 √
S (t3 ) = S (t2 ) · e[r− 2 σ ](t3 −t2 )+σZ t3 −t2
(7.5)

..
.
1 2

S (tj+1 ) = S (tj ) · e[r− 2 σ ](tj+1 −tj )+σZ tj+1 −tj

..
.
7.5. OPÇÕES FINANCEIRAS 135

em que t1 < t2 < . . . < tm são as datas contratualmente definidas para o


cálculo de S̄. De cada vez que se executa o processo recorrente (7.5) obtém-
se um valor possível do activo para o payoff na maturidade. Cada salto
inclui um número aleatório Z seguindo a distribuição normal.

Algoritmo O algoritmo desenvolve-se nos seguintes passos.

1. Cálculo de um payoff. Com j desde 1 até m fazer:

(a) Gerar Z a partir da normal standard.


(b) Passar de S (tj ) a S (tj+1 ) pela expressão:
1 2

S (tj+1 ) = S (tj ) · e[r− 2 σ ](tj+1 −tj )+σZ tj+1 −tj

(c) Cálculo da média

S (t1 ) + S (t2 ) + · · · + S (tm )


S̄ =
m

(d) Escrever
© ª
Vi = e−rT · max S̄ − K, 0

2. Cálculo da média dos payoffs. Executar o passo 1, n vezes.

(a) Cada execução resulta num valor Vi , com i = 1, 2, . . . , n.

Calcular a média
V1 + V2 + · · · + Vn
V = .
n
A obtenção do intervalo de confiança correspondente faz-se da forma habi-
tual.

Vejamos uma ilustração deste algoritmo. A Figura 7.3 mostra uma tra-
jectória possível representando a evolução do activo cuja dinâmica é dada
por

dS = S · (rdt + σ dtZ), (7.6)

em que Z segue a lei normal standard. Trata-se de uma opção a 4 meses, o


que fixamos por comodidade de cálculo como 80 dias bolsistas. As m = 10
datas de referência
t1 , t2 , . . . , tm = T
136 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

Figura 7.3: A evolução do activo durante o período do contrato da opção,


representada por uma trajectória construída aleatoriamente

para o cálculo da média final são:

t1 = 8, t2 = 16, t3 = 24, t4 = 32, t5 = 40,

t6 = 48, t7 = 56, t8 = 64, t9 = 72, t10 = 80.

Para efeito do cálculo do payoff não basta o preço do activo na data da ma-
turidade da opção, é preciso ter em conta o preço nestas datas de referência,
isto é, acompanhar a trajectória (representada na Figura 7.4).
O algoritmo 1 irá calcular uma trajectória de cada vez e determinar o
payoff correspondente a esta trajectória. Construindo-se n payoffs faz-se
depois a média destes valores, na parte 2 do algoritmo.

7.6 Conclusão
Pelas ilustrações anteriores, vemos que o método de Monte Carlo pode
fornecer valores aproximados da solução de certos problemas de que não
se conhece solução analítica, ou forma fechada, o que põe em evidência a
sua utilidade, nomeadamente em questões financeiras.
Contudo, o método de MC tem limitações, algumas dos quais já apare-
ceram neste capítulo. A aplicação do método assenta na possibilidade de
gerar uma amostra
z1 , z2 , ...zn ,
7.6. CONCLUSÃO 137

Figura 7.4: Representação de S(t1 ), S(t2 ), S(t3 ), S(t4 ), S(t5 ), S(t6 ), S(t7 ), S(t8 ),
S(t9 ), S(t10 ), em duas trajectórias discretas, ligados por segmentos de recta.

seguindo a lei normal. No exemplo acima uma amostra de dimensão 1000


foi gerada pelo programa SPSS, seguindo a lei normal standard. Porém,
a própria amostra tem média igual a m = 0, 01665 e desvio-padrão igual a
s = 0, 96219, como foi calculado pelo programa MC_Calleurop. Ainda assim
este problema específico é solúvel se passarmos a uma amostra

z10 , z20 , ...zn0 ,

sendo
zi − m
zi0 =.
s
Para tratar esta questão existem testes que medem a imperfeição da
amostra em relação à situação ideal, por exemplo o conhecido teste de
Kolmogorov-Smirnov.

Teste de Kolmogorov-Smirnov Sendo X1 , X2 , . . . , Xn uma amostra, o


problema em questão consiste em apurar se esta amostra foi retirada de
uma população seguindo a distribuição normal N (0; 1). Seja Φ (z) a função
distribuição da normal standard, isto é,
Z z µ 2¶
1 x
Φ (z) = P [Z ≤ z] = √ exp − dx.
2π −∞ 2
138 CAPÍTULO 7. INTRODUÇÃO AO MÉTODO DE MONTE CARLO

A função distribuição empírica da amostra X1 , X2 , . . . , Xn é definida por


numero de X’s ≤ x
F̂ (x) = .
n
No teste de Kolmogorov-Smirnov as hipóteses em confronto são

H0 : F̂ (x) = Φ (x) , “razoavelmente verdadeira”

H1 : F̂ (x) 6= Φ (x) .

Se H0 for verdadeira os desvios absolutos


¯ ¯
¯ ¯
¯F̂ (x) − Φ (x)¯

deverão ser pequenos para todo o x. Definamos a quantidade


¯ ¯
¯ ¯
Dn = sup ¯F̂ (x) − Φ (x)¯
x∈R

ou seja o maior dos desvios absolutos. Rejeita-se H0 se Dn for "grande".

Para efectuar o cálculo de Dn Seja uma realização da amostra já


ordenada:
x1 < x2 < x3 < x4 < · · · < xn .

Note-se que
© ª
Dn = max (Dn )+ , (Dn )− .

Pode provar-se que


½ ∙ ¸ ¾
+ i
(Dn ) = max max − Φ (xi ) , 0
i n
½ ∙ ¸ ¾
− i−1
(Dn ) = max max Φ (xi ) − , 0
i n
e que ½ ∙ ¸¾
i i−1
Dn = max max − Φ (xi ) , Φ (xi ) −
i n n
Sobre o assunto vd. Rohatgi [6], p. 754.

Do que foi dito, levanta-se a questão da geração de amostras que sigam


a lei de uma variável aleatória X dada. Esse é o problema que trataremos
em seguida.
Capítulo 8

Séries Pseudo-Aleatórias

Na base da simulação está um algoritmo que gera uma sequência de números


que aparecem de uma forma imprevisível e que por isso se chama corrente-
mente gerador de números aleatórios. Esta designação corrente oculta o
facto de que esta sequência se repete de forma determinista de cada vez que
o gerador é activado. O que dá um ar aleatório à sequência é o facto de os
números aparecerem de forma imprevisível para um observador a “olho nu”.
Este gerador é incluído nos programas usuais. Por exemplo, em Ex-
cel o comando "=RAND()" inscrito numa célula produz um número pseudo-
aleatório real entre 0 e 1. Em C++ (Visual C++ 6.0 da Microsoft) a in-
strução rand() produz um número pseudo-aleatório inteiro compreendido
entre 1 e RAND_MAX, sendo RAND_MAX = 32.7671 . É claro que sendo a um
número pseudo-aleatório gerado pelo C++ nós podemos normalizá-lo para
o intervalo [0, 1] , bastando dividi-lo por RAND_MAX. Vd. Tabela 8.1.
De facto, a geração de uma série pseudo-aleatória contida no inter-
valo [0, 1] baseia-se na geração de uma série pseudo aleatória inteira e este
processo, por sua vez, baseia-se na teoria das congruências. Por isso, vamos
apresentar elementos desta teoria.

8.1 Gerador de números aleatórios


8.1.1 Congruências
Neste contexto só trabalhamos com números inteiros não negativos, isto é:
0, 1, 2, 3, 4, . . . , n, . . .
1
Este número 32.767 não é primo, sendo divisível por 7. Esta questão pode ter interesse
mais adiante.

139
140 CAPÍTULO 8. SÉRIES PSEUDO-ALEATÓRIAS

i xi inteiro 0 ≤ ui < 1
0 130 0.003967
1 10982 0.335154
2 1090 0.033265
3 11656 0.355724
4 7117 0.217200
5 17595 0.536973
6 6415 0.195776
7 22948 0.700339
8 31126 0.949919
9 9004 0.274789
10 14558 0.444288
11 3571 0.108982
12 22879 0.698233
13 18492 0.564348
14 1360 0.041505

Tabela 8.1: Na segunda coluna estão os primeiros 15 números pseudo-


aleatórios gerados pelo compilador Visual C++ da Microsoft (versão 6.0).
Na terceira coluna encontram-se os respectivos valores normalizados ao in-
tervalo [0, 1[. Repetindo a execução do programa esta série de números
também se repete exactamente.
8.1. GERADOR DE NÚMEROS ALEATÓRIOS 141

Sejam dados dois números inteiros x e m. A divisão inteira de x por m


tem como resultado dois números:

• q, o quociente; e

• r, o resto, sendo r < x.

Este enunciado pode exprimir-se dizendo que o número inteiro positivo


x admite a decomposição:

x = m · q + r. (8.1)
Se r = 0 diremos que a divisão é inteira ou que x é divisível por m. Em
C++ existe um operador, designado por %, que determina directamente o
resto da divisão de dois números inteiros:

x%m.
Fixemos um número m > 0 a que chamamos módulo m.
Sejam x e y dois números inteiros. Diremos que x é congruente com y
(módulo m) se a diferença x − y for divisível por m.
Esta definição é equivalente a outra. Por (8.1) teremos

x = m·q+r
y = m · q0 + r0

Diremos que x é congruente com y se r = r0. É fácil ver que as duas


definições são equivalentes.

Transitividade Sejam x, y, z três números inteiros positivos. Se x é


congruente com y (módulo m) e y é congruente com z (módulo m) então x
é congruente com z (módulo m).
De facto, sejam respectivamente r, r0 e r00 os restos das divisões de a, b
e c por m, isto é,

x = m×q+r
y = m × q 0 + r0
z = m × q 00 + r00 .

Então, visto que x é congruente com y (mod m) tem-se r = r0 ; visto que y é


congruente com z (mod m) tem-se r0 = r00 , donde r = r00 . Isto significa que
x é congruente com z (mod m).
142 CAPÍTULO 8. SÉRIES PSEUDO-ALEATÓRIAS

Operações com congruências (módulo m)

Redução módulo m Reduzir um número x módulo m consiste em cal-


cular o resto da divisão inteira de x por m. Designamos esta operação por
%.

Adição módulo m Sejam x e y dois números inteiros menores do que m.


A soma de x com y (módulo m) é o número s que se obtém como resultado
das duas operações seguintes:

1. Cálculo da soma habitual de x com y;

2. Redução de x + y (módulo m), isto é, s = (x + y) %m.

Esta operação goza das propriedades da adição habitual:

1. Associativa

2. Comutativa

3. O zero é neutro

4. Todo o número tem simétrico. Isto é, dado x existe x0 tal que

x + x0 ≡ 0 (mod m)

Este número x0 não é negativo. Na realidade, é muito fácil de calcular,


bastando fazer
x0 = m − x.

Multiplicação módulo m Sejam x e y dois números inteiros menores do


que m. O produto da multiplicação de x por y (módulo m) é o número u
que se obtém como resultado das duas operações seguintes:

1. Cálculo do produto habitual de x por y;

2. Redução de x · y (módulo m), isto é, u = (x · y) %m.

Esta operação goza das propriedades:

1. Associativa

2. Comutativa
8.1. GERADOR DE NÚMEROS ALEATÓRIOS 143

3. O 1 é neutro

4. O número x admite um inverso multiplicativo (inteiro) x̄ se x for primo


com m, isto é, se
mdc (x, m) = 1

Neste caso, x · x̄ ≡ 1 (mod m).

8.1.2 Geração de números pseudo-aleatórios


Consideremos a seguinte sucessão de números inteiros definida por recorrên-
cia

xi+1 ≡ a · xi + c (mod m)

Esta sequência começa com um valor inteiro x0 que é chamado a semente.


(Vd. a tabela 8.2)
O modo de construção da sequência faz com que a quantidade n dos
números pseudo-aleatórios diferentes gerados seja inferior ou igual a m. Para
além disso a sequência é periódica, isto é, se ao fim de gerar n números reen-
contrarmos a semente x0 , então reencontramos todos os números sequentes
ou, dito de outro modo,

xn = x0 , xn+1 = x1 , ..., xn+i = xi , ...

Um gerador terá o período máximo se n = m − 1.


O comprimento do período depende dos valores de a e c. Nós podemos
obter um período máximo se as condições seguintes forem satisfeitas:

1. c e m são primos entre si.

2. Todo o número primo que seja divisor de m também é divisor de a − 1.

3. Se m for divisível por 4, a − 1 também é divisível por 4.

Tais condições podem ser satisfeitas sob dois tipos de hipóteses:

• Se c > 0, m é uma potência de 2, c é ímpar, a tem a forma a = 4k + 1


(k inteiro).

• Se c = 0,

1. x0 6= 0;
144 CAPÍTULO 8. SÉRIES PSEUDO-ALEATÓRIAS

i xi inteiro 0 ≤ ui ≤ 1 i xi inteiro 0 ≤ ui ≤ 1
0 3 0, 1875 10 10 0, 625
1 15 0, 9375 11 16 1
2 7 0, 4375 12 12 0, 75
3 1 0, 0625 13 9 0, 5625
4 5 0, 3125 14 11 0, 6875
5 8 0, 5 15 4 0, 25
6 6 0, 375 16 3 0,1875
7 13 0, 8125 17 15 0,9375
8 14 0, 875 18 7 0,4375
9 2 0, 125 19 1 0,0625

Tabela 8.2: Série de números pseudo-aleatórios gerada pelo método exposto,


sendo m = 17, a = 5 e x0 = 3. Este gerador tem período máximo n = 16.
Repare-se que x16 = x0 . A série normalizada ui obtém-se pelo quociente
ui = xi /(m − 1).

2. am−1 é múltiplo de m;
3. aj − 1 não é múltiplo de m, para j = 1, 2, . . . , m − 2.

Se c = 0, então a forma da sequência é


ax0 , a2 x0 , a3 x0 , . . . , ak x0 , . . . (mod m) .
Na Tabela 8.2 encontram-se alguns números pseudo-aleatórios gerados
por este processo, sendo m = 17, x0 = 3, a = 5 e c = 0. Para o efeito usou-se
o programa Gerador, em C++ que se encontra na última secção. Também
poderia usar-se uma folha Excel cujas primeiras linhas fossem
A B
1 0 x0
2 1 =(a*B1)-m*INT(a*B1/m)
··· ··· ···

8.1.3 Distribuição uniforme e séries pseudo-aleatórias


Geração de amostras particulares

Para gerar amostras particulares da distribuição uniforme existe a função


rand() em C++. Porém, usando esta função a série de números pseudo
8.1. GERADOR DE NÚMEROS ALEATÓRIOS 145

1−2−3 srand(5) sr(time)/1 sr(time)/2 sr(time)/3


41 54 16.396 21.187 23.120
18.467 28.693 30.653 15.607 21.672
6.334 12.255 8.721 31.138 22.664
26.500 24.449 20.874 30.459 21.860
19.169 27.660 4.017 13.653 25.033
15.724 31.430 10.171 9.674 7.770
11.478 23.927 32.655 9.677 17.240
29.358 17.649 4.586 30.155 1.144
26.962 27.472 24.641 2.351 12.348
24.464 32.640 11.318 10.907 8.499

Tabela 8.3: Nesta tabela podemos ver explicitada a utilidade da função


srand(). As colunas contêm o output de três execuções do programa
semente. Na coluna (1-2-3) está o resultado da execução da função rand(),
sem mais nada, dando sempre o mesmo resultado. Na coluna seguinte
rand() foi precedida de srand(5), dando também o mesmo resultado
nas três execuções. Nas três últimas colunas rand() foi precedida de
srand((unsigned)time(NULL)), o que deu três diferentes resultados.

aleatórios começa sempre no mesmo número e mantém a sequência sempre


que o programa é executado. Para obviar a esta situação usa-se a função

srand(unsigned int n)

em que n é um número inteiro positivo. Esta função altera a semente do


gerador, isto é, começa a série de números pseudo-aleatórios no valor deter-
minado por n. Para tornar aleatório o valor da semente podemos recorrer à
função time() que existe em C++. Esta função dá o tempo universal, em
segundos, decorrido deste as zero horas (00:00:00) de 1 de Janeiro de 1970,
contado pelo relógio do computador. Usa-se o parâmetro NULL para indicar
que o valor não será armazenado.
Na Tabela 8.3 encontram-se exemplos de aplicação destes conceitos.

Sobre o gerador uniforme Se o gerador uniforme rand(), precedido ou


não de srand(), for perfeito os valores gerados estarão uniformemente dis-
tribuídos pelo intervalo [0, 1], isto é, cada subintervalo de [0, 1] com igual am-
plitude conterá o mesmo número de valores gerados. O programa unif_classes
realiza uma experiência empírica mostrando que esse não é o caso. Sabemos
146 CAPÍTULO 8. SÉRIES PSEUDO-ALEATÓRIAS

Classes Quantidade encontrada Erro Erro relativo


C0 385 −15 4%
C1 399 −1 0%
C2 411 11 3%
C3 410 10 3%
C4 417 17 4%
C0 382 −18 5%
C0 396 −4 1%

Tabela 8.4: Execução do programa unif classes. Foram gerados 2.800


números pseudo-aleatórios inteiros entre 1 e 32.767. Este intervalo inteiro é
dividido em 7 classes de congruência com 4681 elementos cada uma. Se o
gerador fosse perfeito haveria 400 números em cada classe. Tal não acontece
como o indica a tabela.

que os números inteiros aleatórios gerados em C++ preenchem a sequência:

1, 2, 3, 4, 5, . . . , Rm = 32.767

Se dividirmos esta sequência em 7 classes de congruência

C0 , C1 , C2 , . . . , C6

cada uma destas classes contém 4681 valores da sequência. Recordemos que
dado o inteiro x, com 1 ≤ x ≤ Rm , x pertence à classe Ck se o resto da
divisão de x por 7 der k, isto é,

x%7 = k.

O importante a assinalar é que todas as classes têm o mesmo número de


elementos.
Vamos gerar 2800 números pseudo-aleatórios através da execução da
função rand() e vamos ver como eles se distribuem segundo as classes de
congruência. Se a série gerada seguisse uma distribuição exactamente uni-
forme então em cada classe estariam exactamente 400 números da série ger-
ada. Isso não acontece como se vê na Tabela 8.4, o que ilustra uma situação
prática frequente (a "imperfeição"do gerador).
.
8.2. GERAÇÃO DE VARIÁVEIS ALEATÓRIAS 147

8.2 Geração de variáveis aleatórias


8.2.1 Método da inversa da função distribuição
Proposição 3 Seja X uma variável aleatória qualquer com distribuição
F (x). Suponhamos que F (x) é estritamente crescente. Se U ∼ U[0,1] , então
F −1 (U ) é identicamente distribuída a X.

Dem Note-se que


F −1 (u) ≤ x ⇐⇒ u ≤ F (x) .
Então
£ ¤
P F −1 (U ) ≤ x = P [U ≤ F (x)] .
Porém,
Z F (x) Z F (x)
P [U ≤ F (x)] = f (u) du = 1du = F (x) ,
−∞ 0

donde
£ ¤
P F −1 (U ) ≤ x = F (x).
.

Nota 4 Como F (x) é estritamente crescente podemos definir a sua inversa


F −1 (y). Esta é uma função definida no intervalo [0, 1], isto é,

F −1 : [0, 1] −→ ]−∞, +∞[ .

O resultado anterior pode ser sempre aplicado nos intervalos em que F seja
estritamente crescente. Ou então poderemos utilizar uma formulação mais
geral da proposição anterior. Com efeito, se F (x) não for estritamente
crescente, o resultado permanece válido se considerarmos para cada x ∈ [0, 1]

F −1 (x) = inf{y ∈ R : F (y) ≥ x}

que se designa por inversa generalizada.

Pela proposição anterior, podemos construir sequências de números pseudo-


aleatórios com distribuição de qualquer v. a. X dada através da função
distribuição F (x) desta variável aleatória, bastando usar a relação

X = F −1 (U )

em que U é a v. a. uniforme.
Este resultado permite construir o seguinte algoritmo.
148 CAPÍTULO 8. SÉRIES PSEUDO-ALEATÓRIAS

Algoritmo
1. Gerar n números pseudo-aleatórios seguindo a distribuição uniforme:
u1 , u2 , u3 , . . . , un

2. Calcular os valores
x1 = F −1 (u1 ) , x2 = F −1 (u2 ) , x3 = F −1 (u3 ) , . . . , xn = F −1 (un )

3. A amostra
x1 , x2 , x3 , . . . , xn
é uma amostra aleatória simulada da população X.

8.2.2 Geração da distribuição exponencial


Seja Y a v. a. que segue a distribuição exponencial. Isto é, a sua densidade
é (
0 se − ∞ < y < 0
ψ (y) =
λe−λy se 0 ≤ y < +∞
em que λ > 0 é um parâmetro. A respectiva função distribuição fica, para
y ∈ [0, +∞[ ,
Z y Z y
Ψ (y) = ψ (s) ds = λe−λs ds = 1 − e−λy ,
−∞ 0
a qual é estritamente crescente nesse intervalo. Portanto existe uma inversa
Ψ−1 : [0, 1[−→ [0, +∞[
que se escreve
1
Ψ−1 (u) = − ln (1 − u) ,
λ
isto é
1
Ψ−1 (U ) = − ln (1 − U ) ,
λ
que obviamente pode ser escrita como
1
Ψ−1 (U ) = − ln (U) ,
λ
dado que 1 − U e U são ambas U[0,1] .
Com estes elementos, usando o algoritmo anterior, podemos construir
um gerador de números pseudo-aleatórios que seguem a lei exponencial, a
partir da distribuição uniforme, escrevendo simplesmente
1
Y = Ψ−1 (U ) = − ln (U ) .
λ
Capítulo 9

Vectores Aleatórios Normais

9.1 Geração de variável aleatória normal


Já nos referimos por diversas vezes à variável aleatória normal. Como vamos
falar da geração de amostras de variáveis e vectores aleatórios seguindo a lei
normal, relembramos aqui alguns aspectos. Uma variável aleatória X segue
uma distribuição normal ou gaussiana quando a densidade é a seguinte
função: Ã !
1 (x − μ)2
f (x) = √ exp − ,
σ 2π 2σ 2
onde x ∈ R, μ ∈ R e σ > 0. Tem-se que μ e σ são respectivamente a média
e o desvio-padrão da distribuição.
A função distribuição é
Z x à !
1 (x − μ)2
Φ (x) = √ exp − dx.
σ 2π −∞ 2σ 2

Se μ = 0 e σ = 1 trata-se da normal standard, a que já nos referimos ante-


riormente, e que consideramos agora. Por não ser uma função primitivável,
no sentido corrente da palavra, esta função é substituída por aproximações
como a que vamos ver.

Aproximação de Φ (x) Para x ≥ 0 calculamos uma aproximação de Φ (x)


através do seguinte algoritmo:

1. Sejam as constantes:

a1 = 0, 319381530 a2 = −0, 356563782 a3 = 1, 781477937


a4 = −1, 821255978 a5 = 1, 330274429

149
150 CAPÍTULO 9. VECTORES ALEATÓRIOS NORMAIS

2. Seja a seguinte expressão


1
y=
1 + 0, 2316419 · x

3. O valor aproximado de Φ (x) é


µ 2¶
1 x £ ¤
Φ (x) = 1 − √ exp − · a1 y + a2 y 2 + a3 y 3 + a4 y4 + a5 y 5 .
2π 2
(9.1)

Se x < 0 servimo-nos da identidade (resultante da simetria da dis-


tribuição em torno de μ = 0)

Φ (x) = 1 − Φ (−x) .

O programa FI-normal permite calcular os valores de Φ (x) para qual-


quer valor de x.

Geração de variável aleatória normal Reunimos em seguida algumas


formas de gerar uma variável aleatória normal, facto que já foi aflorado ao
longo dos capítulos anteriores.

Média de uma amostra de dimensão n Pelo TLC, podemos


gerar amostras particulares de uma variável aleatória normal standard a
partir da geração de amostrasaleatórias de uma variável aleatória qualquer.
Tem especial interesse a uniforme, pela facilidade que apresenta na geração
de amostras. Tal como já referimos anteriormente, dada uma sequência de
n variáveis aleatórias i.i.d., Ui ∼ U[0,1] , i = 1, ..., n então
¡ ¢
U1 + U2 + · · · + Un − n 12 ·
1 √ ∼ N (0, 1) .
12 n

Inversa da função distribuição Φ−1 Já vimos que podemos con-


struir uma série normal de números pseudo-aleatórios através do método da
inversa da função distribuição da variável aleatória normal. Ou seja, a variá-
vel aleatória Φ−1 (U ) , onde U ∼ U[0,1] , segue a distribuição normal standard.
Dito isto, o problema sério é a inversão1 de Φ (x) , que pode resolver-se por
1
Existe no mercado software diversificado que fornece valores de inversas de dis-
tribuições. Neste texto, o que se pretende é referir processos analíticos e numéricos que
estão por detrás da construção de possível software.
9.2. GERAÇÃO DE VECTORES ALEATÓRIOS NORMAIS 151

cálculo algébrico directo sobre uma aproximação de Φ (x), como a aprox-


imação (9.1), referida no início deste capítulo, ou pelo método de Newton
aplicado à equação
Φ (x) = u,
onde u é um valor possível de U, o que mostra que calcular Φ−1 (x) é equiv-
alente a resolver a equação transcendente
Z x µ 2¶
1 x
√ exp − dx = u.
2π −∞ 2

9.2 Geração de vectores aleatórios normais


Uma extensão normal do conceito de variável aleatória é o de vector aleatório
de dimensão n que se define como um vector X n-dimensional, em que as
suas componentes X1 , X2 , . . . , Xn , são v.a.

X = (X1 , X2 , . . . , Xn ) .

9.2.1 Vector normal de dimensão 2


Comecemos por tomar n = 2, ou seja, o par aleatório (X, Y ) . Consideremos
a função de distribuição conjunta

F (x, y) = P [X ≤ x, Y ≤ y] .

No caso gaussiano, isto é, da distribuição normal bi-dimensional, a densidade


conjunta é
1 S
− 12 (x−μ)T −1 (x−μ)
f (x, y) = e , x =(x, y) ∈ R2 (9.2)
(2π)(det Σ)1/2

onde μ ∈ R2 é o vector dos valores esperados de X e Y , Σ é a matriz das


variâncias e covariâncias das duas variáveis, simétrica e definida positiva,
det Σ é o seu determinante e Σ−1 a sua inversa. Escreve-se X ∼ N (μ, Σ).
Considerando o caso standard, e ainda que X e Y são não correlacionadas
(o que é equivalente a dizer-se que são independentes), então X ∼ N (0, Σ),
com " #
1 0
0 = (0, 0) e Σ =
0 1
e a função de densidade toma a expressão
1 − x2 +y2
f (x, y) = e 2 .

152 CAPÍTULO 9. VECTORES ALEATÓRIOS NORMAIS

A função distribuição obtém-se pela integração estendida ao domínio plano

[−∞, x] × [−∞, y] .

Ou, dito de outro modo,


ZZ
1 − x2 +y2
F (x, y) = e 2 dxdy.

[−∞,x]×[−∞,y]

Devido ao teorema de Fubini e à igualdade

1 − x2 +y2 1 x2 1 y2
e 2 = √ e− 2 × √ e− 2
2π 2π 2π

então,
Z x Z y
1 x2 1 y2
F (x, y) = √ e− 2 dx × √ e− 2 dy,
−∞ 2π −∞ 2π

igualdade esta que resulta da independência mútua assumida entre as duas


variáveis aleatórias e que, em muitas situações, não se verifica.

9.2.2 Método de Box — Muller

Como vamos ver, o método de Box — Muller fornece um algoritmo simples


para gerar vectores pseudo aleatórios normais de dimensão 2
Exprima-se o vector aleatório (X, Y ) em coordenadas polares:
( √
X = R · cos (V )

Y = R · sin (V )

sendo R e V duas variáveis aleatórias, com

R = X 2 + Y 2.

Pode provar-se o seguinte:

• R segue a lei exponencial, isto é,

r
P [R ≤ r] = 1 − e− 2 , r ≥ 0.
9.2. GERAÇÃO DE VECTORES ALEATÓRIOS NORMAIS 153

Com efeito
£ ¤
FR (r) = P [R ≤ r] = P X 2 + Y 2 ≤ r
h √ √ p p i
= P − r ≤ X ≤ r , − r − X2 ≤ Y ≤ r − X2

Z √ ÃZ √ !
r r−x2
1 − x2 +y2
= √ √ e 2 dy dx
− r − r−x2 2π

Z √r ÃZ √r−x2 !
1 − x2 +y2
= 4 e 2 dy dx
0 0 2π
Z π µZ r ¶
2 1 −R
= 4 e 2 dR dV
0 0 4π

1 π³ r
´
= 4 −2e− 2 + 2
4π 2
r
= 1 − e− 2 .

• Fixando R, V segue uma distribuição uniforme com suporte em [0, 2π].

Estes factos são suficientes para criar o algoritmo seguinte que gera vec-
tores pseudo aleatórios normais de dimensão 2.

Algoritmo (o método de Box — Muller)

1. Gerar uma concretização da variável uniforme U1 ∼ U[0,1] (número


pseudo-aleatório u1 =rand()).

2. Escrever r = −2 ln (u1 ) .

3. Gerar uma concretização da variável uniforme U2 ∼ U[0,1] (número


pseudo-aleatório u2 =rand()).

4. Escrever v = 2π · u2 .
√ √
5. Considerar x = r · cos (v) e y = r · sin (v) .

6. Tomar a concretização (x, y) do vector aleatório (X, Y ).


154 CAPÍTULO 9. VECTORES ALEATÓRIOS NORMAIS

9.2.3 Vector aleatório normal de dimensão n


As noções gerais sobre pares aleatórios (X, Y ) normais referidas no iní-
cio da Subsecção 3.2.1 estendem-se de forma clara aos vectores aleatórios
normais de dimensão n. A distribuição do vector aleatório normal X =
(X1 , X2 , . . . , Xn ) é especificada pelo vector dos valores esperados μ = (μ1
, ..., μn ) e pela matriz das variâncias e covariâncias
⎡ ⎤
σ 21 σ 12 · · · σ 1n
⎢ ⎥
⎢ σ 21 σ 22 · · · σ 2n ⎥
Σ=⎢ ⎢ ⎥
..
. ⎥
⎣ ··· ··· ··· ⎦
σ n1 σ n2 · · · σ 2n

onde
Z +∞ Z +∞ ¡ ¢
σ ij = Cov (Xi , Xj ) = ··· (xi − μi ) · xj − μj · f (x) dx
−∞ −∞

e, analogamente a (9.1),
1 S
− 12 (x−μ)T −1 (x−μ)
f (x) = e , x =(x1 , ..., xn ) ∈ Rn . (9.3)
(2π)(det Σ)1/2
Tem-se
σ ij = σ ji e σ 2i = V ar(Xi ).
Se as variáveis (X1 , X2 , . . . , Xn ) forem mutuamente independentes então

f (x1 , x2 , . . . , xn ) = f1 (x1 ) × f2 (x2 ) × . . . × fn (xn )

logo,
Cov (Xi , Xj ) = 0, i 6= j
e nesse caso a matriz das covariâncias assume a forma
⎡ ⎤
σ 21 0 ··· 0
⎢ ⎥
⎢ 0 σ 22 · · · 0 ⎥
Σ=⎢ ⎢ ..


⎣ ··· ··· . ··· ⎦
0 0 ··· σ 2n
Se as variáveis tiverem variâncias unitárias
⎡ ⎤
1 0 ··· 0
⎢ ⎥
⎢ 0 1 ··· 0 ⎥
Σ=I=⎢ ⎢ ..
⎥.

⎣ ··· ··· . ··· ⎦
0 0 ··· 1
9.2. GERAÇÃO DE VECTORES ALEATÓRIOS NORMAIS 155

9.2.4 Factorização de Cholesky


¡ ¢
Tomemos um vector aleatório normal standard Z ∼ N 0, I
Z = (Z1 , Z2 , Z3 , . . . , Zn ) .
Põe-se a questão de a partir de Z gerar um vector aleatório X v N (μ, Σ) .
Seja A uma matriz n × n e μ um vector n × 1. O vector aleatório
X =μ+A·Z (9.4)
também é normal e tem como média μ e como matriz das variâncias e
covariâncias
Σ = A · AT
Então, para gerarmos um vector aleatório normal X v N (μ, Σ) bastar-nos-á
encontrar uma matriz A tal que
Σ = A · AT (9.5)
e usar a igualdade (9.4). Para o efeito, um modo prático é a factorização de
Cholesky que vai ser descrita a seguir.

Dimensão 2 A factorização de Cholesky de uma matriz Σ consiste em


encontrar uma matriz A = [aij ] que seja triangular inferior e satisfaça (9.5).
Nesse caso AT é triangular superior. Vamos considerar um primeiro exemplo
com n = 2: " #
σ 21 ρσ 1 σ 2
Σ=
ρσ 1 σ 2 σ 22
Neste caso, " #
σ1 0
A= p
ρσ 2 σ 2 1 − ρ2
e " #
T σ1 ρσ 2
A = p
0 σ 2 1 − ρ2
o que resulta em
A · AT = Σ.
Deste modo podemos construir uma série de vectores aleatórios de dimensão
2, X = (X1 , X2 ) escrevendo
X1 = μ1 + σ 1 Z1
p
X2 = μ2 + ρσ 2 Z1 + σ 2 1 − ρ2 · Z2
sendo Z1 e Z2 duas variáveis aleatórias normais centradas e reduzidas, e
independentes.
156 CAPÍTULO 9. VECTORES ALEATÓRIOS NORMAIS

Dimensão n Em dimensão n, no que diz respeito à matriz das covariân-


cias, deveremos ter
⎡ ⎤ ⎡ ⎤
A11 0 ··· 0 A11 A21 · · · An1
⎢ ⎥ ⎢ ⎥
⎢ A21 A22 · · · 0 ⎥ ⎢ 0 A22 · · · An2 ⎥
⎢ ⎥·⎢ ⎥=Σ
⎢ ..
. ··· ⎥ ⎢ ..
. ⎥
⎣ ··· ··· ⎦ ⎣ ··· ··· ··· ⎦
An1 An2 · · · Ann 0 0 ··· Ann

o que conduz a uma solução. Com efeito, do produto das duas matrizes
obtem-se o sistema

A211 = Σ11
A21 A11 = Σ21
..
.
A2n1 + A2n2 + · · · + A2nn = Σnn

que se resolve de forma simples, equação a equação.


Apêndice A

Apêndice

Apresentamos em seguida uma Lei Forte dos Grandes Números e o Teo-


rema do Limite Central, bem como alguns corolários, na medida em que
constituem princípios teóricos que subjazem ao método de Monte Carlo.
Começamos por rever algumas noções de convergência de sucessões de va-
riáveis aleatórias.

A.1 Convergência de variáveis aleatórias


No que se segue suporemos sempre considerado um espaço de probabilidade
(Ω, F, P) e variáveis aleatórias definidas de Ω para R.

Convergência em distribuição
Seja F1 , F2 , ..., Fn ,...uma sucessão de funções distribuição correspon-
dentes a variáveis aleatórias X1 , X2 , ... Xn ,... e seja F a função distribuição
da variável aleatória X. Diz-se que a sucessão Xn converge para X em
distribuição quando
lim Fn (x) = F (x)
x→∞
nos pontos x em que F é contínua.
d •
Notação: Xn −→ X ou Xn ∼ X

Convergência em probabilidade
Diz-se que uma sucessão de variáveis aleatórias Xn converge para uma
variável aleatória X em probabilidade quando

∀ > 0, P ({ω ∈ Ω : |Xn (ω) − X (ω) | > }) −→ 0.


p
Notação: Xn −→ X.

157
158 APÊNDICE A. APÊNDICE

Convergência quase certa


Diz-se que uma sucessão de variáveis aleatórias Xn converge quase cer-
tamente para X se
³n o´
P ω ∈ Ω : lim Xn (ω) = X(ω) = 1.
n→∞
q.c.
Notação: Xn −→ X.

Convergência em média quadrática


Diz-se que uma sucessão de variáveis aleatórias Xn converge em média
quadrática para X, se E|Xn |2 < ∞ para todo n, e
¡ ¢
lim E |Xn − X|2 = 0,
x→∞

onde E é a esperança matemática ou valor esperado.


L2
Notação: Xn −→ X.

A.2 Lei Forte dos Grandes Números. Teorema do


Limite Central
Teorema 5 Lei Forte dos Grandes Números
Seja X1 , X2 , . . . , Xn , ... uma sucessão de variáveis aleatórias mutuamente
independentes e com o mesmo valor médio, isto é

E [Xi ] = μ, ∀i ∈ N

Então, se E [|Xi |] for finito para todo i ∈ N, tem-se


X1 + X2 + . . . + Xn q.c.
−→ μ.
n n→∞

Teorema 6 Teorema do Limite Central


Seja X1 , X2 , . . . , Xn , ... uma sucessão de variáveis aleatórias mutuamente
independentes e identicamente distribuídas (i.i.d), de quadrado integrável,
de média μ e variância σ 2 , isto é,

E [Xi ] = μ e Var [Xi ] = σ 2 , ∀i ∈ N

Então, a variável aleatória


Pn
Xi − nμ X1 + X2 + . . . + Xn − nμ
Zn = i=1 √ = √
σ n σ n
A.2. LEI FORTE DOS GRANDES NÚMEROS. TEOREMA DO LIMITE CENTRAL159

converge em distribuição para a normal standard quando n → +∞, isto é


X1 + X2 + . . . + Xn − nμ d
Zn = √ −→ N (0, 1).
σ n

Dito de outro modo, a distribuição de Zn é assintoticamente a distribuição


normal N (0, 1), ou ainda, para n suficientemente grande,

X1 + X2 + . . . + Xn − nμ ·
Zn = √ ∼ N (0, 1).
σ n
.

Corolário 7 Seja X1 , X2 , . . . , Xn , ... uma sequência de variáveis aleatórias


i.i.d, de quadrado integrável, de média μ e variância σ 2 . Então,

X −μ d
−→ N (0, 1),
√σ
n

isto é, para n suficientemente grande,

X −μ ·
∼ N (0, 1)
√σ
n

X1 +X2 +...+Xn
onde X = n .

Corolário 8 Seja X1 , X2 , . . . , Xn , ... uma sucessão


³ de ´variáveis aleatórias
i.i.d com a variável aleatória X, tal que μ = E |X|2 < ∞ e variância
σ 2 > 0. Seja
n
1 X¡ ¢2
σ 2n = Xi − X .
n−1
i=1
X1 +X2 +...+Xn
onde X = n . Então,

X −μ d
σn −→ N (0, 1).

n

.
160 APÊNDICE A. APÊNDICE
Apêndice B

Bibliografia

.
[1] Bjork, Tomas, Arbitrage Theory in Continuous Time, Oxford Uni-
versity Press, 2nd edition, 2004.
[2] Glasserman, Paul. Monte Carlo Methods in Financial Engineering-
Stochastic Modelling and Applied Probability. Springer 2003.
[3] Hogg, R. V. e A. Tanis. Probability and statistical inference, 7th
edition, Prentice-Hall 2005.
[4] Hull, John. Options, Futures & Other Derivatives. 7th Edition Pa-
perback, Prentice Hall of India, 2008
[5] Murteira, Bento (1999). Probabilidades e Estatística, volume I, 2a
edição revista, McGraw-Hill.
[6] Rohatgi, Vijay K. . Statistical Inference. Dover 2003.
[7] Taha, H. A. (2003). Operations research: an introduction, 7th edi-
tion, Prentice-Hall.
[8] Tavella, Domingo. Quantitative Methods in Derivatives Pricing: An
Introduction to Computational Finance. Wiley 2000.
[9] Tavella, Domingo & Randall, Kurt. Pricing Financial Instruments:
The Finite Difference Method. Wiley 2000.
[10] Willmot, Paul, Dewynne, J. & Howison. S. Option Pricing - Math-
ematical models and computation. Oxford Financial Press,1993 (last reprint
1998).

161

Оценить