Sunteți pe pagina 1din 8

Mtodos Numricos e Computao para a Economia

Exerccios e solues

Derivao e integrao numricas


J.A. Matos, P.B. Vasconcelos (FEP)

Contedo
1 Integrao numrica 2 Integrao numrica pelo mtodo de Monte Carlo 3 Clculo do volume de hiperesferas 4 ndice de Gini 2 5 7 8

Mestrado em Economia 2010-2011 Faculdade de Economia da Universidade do Porto

Mtodos Numricos e Computao para a Economia

-Mestrado em Economia

1 Integrao numrica
Calcular uma aproximao dos seguinte integrais de modo numrico
1 0

sin x dx e

6 4

x3.5 dx.

Aproximao
Para calcular numericamente os integrais acima escritos temos que fazer uma aproximao ao integral. Vamos aproximar o integral pela soma da rea dos retngulos que resultam de discretizarmos o intervalo entre a e b em N pontos igualmente espaados. Neste caso a altura do retngulo dada pelo valor da funo no ponto xi , o extremo superior do intervalo i ou seja h N retngulos no total.
b a

f (x) dx

f (xi ) h = h
i=1 i=1

f (xi )

(1)

onde h =
0.8

ba n

e xi = a + i h,

i = 1 . . . n.

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 0 0.2 0.4 0.6 0.8 1

Figura 1: Aproximao do integral do seno entre 0 e 1 com 10 pontos. de notar que na formulao do problema podemos tirar partido da paralelizao do Octave/MATLAB. Existe j uma funo que calcula o somatrio (sum ) e por isso o mais difcil s calcular o valor dos pontos xi . Um exemplo para N = 10 pode ser encontrado abaixo.

Derivao e integrao numricas

2/ 8

Mtodos Numricos e Computao para a Economia


>> a= 0 ; b= 1 ; N = 10; >> dx= ( ba ) /N dx = x = 0.10000 0.90000 >> x = x = 0.10000 0.90000 0.20000 1.00000 0.30000 0.40000 0.50000 0.20000 1.00000 0.30000 0.40000 0.50000 0.10000 >> x = a + [ 1 : N] dx

-Mestrado em Economia

0.60000

0.70000

0.80000

linspace ( a+dx , b , N)
0.60000 0.70000 0.80000

>> x = a+dx : dx : b x = 0.10000 0.90000 0.20000 1.00000 0.30000 0.40000 0.50000 0.60000 0.70000 0.80000

>> dx sum ( sin ( x ) )

ans

0.50139

Na implementao anterior usamos trs formas distintas de calcular os pontos xi a primeira seguiu directamente a denio acima. A segunda recorreu funo linspace que retorna um vector igualmente espaado entre os dois primeiros argumentos e com um nmero de pontos dado pelo terceiro argumento. A ltima implementao usa a j estuda gama de valores, com o primeiro a ser o primeiro valor, o segundo o incremento e o terceiro o valor nal. Se aumentarmos o nmero de pontos ento a preciso ir melhorar. Na implementao que se segue repetimos os mesmos cculos para N = 100000.
>> a= 0 ; b= 1 ; N = 100000; >> dx= ( ba ) /N dx = 1 . 0 0 0 0 e 05 >> x = a + [ 1 : N] dx ; >> dx sum ( sin ( x ) )

ans ans ans

>> >>

quad ( @sin ,
= =

0.45970 0, 1) 0.45970 0.45970

cos (0) cos ( 1 )

O resultado obtido ento comparado com o valor que se obtm quer da funo quad (de quadratura) que usada para fazer a integrao. A chamada desta funo apresentada aqui apenas para ilustrao, os detalhes do modo de funcionamento s sero apresentadas nas aulas seguintes. Finalmente e como neste caso conhecemos o valor exacto do integral subesttuimos e mais uma vez encontramos o mesmo resultado. Repetindo o procedimento anterior mas para a funo seguinte temos:
>> a= 4 ; b= 6 ; N = 100000; >> dx= ( ba ) /N

Derivao e integrao numricas

3/ 8

Mtodos Numricos e Computao para a Economia


dx = 2 . 0 0 0 0 e 05

-Mestrado em Economia

>> x = a + [ 1 : N] dx ; >> dx sum ( x . ^ 3 . 5 )

ans ans

= =

591.68 591.68

>>

2/9(6^4.5 4^4.5)

Mais uma vez se compararmos o valor da nossa aproximao com a valor exacto vericamos que os resultados so iguais para a preciso apresentada.

Integrao pelo mtodo de Monte Carlo


Na equao 1 consideramos que os valores de xi era igualmente espaados. Uma outra aproximao a de em vez de usarmos valores igualmente espaados usarmos valores aleatrios igualmente distribudos no intervalo [a; b].
>> a= 4 ; b= 6 ; N = 100000; >> dx= ( ba ) /N dx = 2 . 0 0 0 0 e 05 >> x = a +

>> dx sum ( x . ^ 3 . 5 )

rand ( 1 ,N) ( ba ) ;

ans

591.16

De notar que o valor no to bom como o anterior e para integrais uni-dimensionais o mtodo de Monte Carlo no a melhor opo. Para dimenses superiores no entanto o desempenho deste mtodo melhora quando comparado com as outras alternativas.

Derivao e integrao numricas

4/ 8

Mtodos Numricos e Computao para a Economia

-Mestrado em Economia

2 Integrao numrica pelo mtodo de Monte Carlo


Calcular uma aproximao, usando o mtodo de Monte Carlo, de

d xd y

onde representa o crculo unitrio usando vrios tamanhos da amostra.

Soluo
A rea pretendida dada pela Figura 2.
1

0.5

0 -1 -0.5 0 0.5 1

-0.5

-1

Figura 2: Crculo unitrio centrado na origem. Para simplicar o clculo do integral proposto podemos reparar que

dxdy =

1 1

(x, y ) dxdy

onde (x, y ) a funo caracterstica de , ou seja, vale 1 se (x, y ) e zero nos outros casos. Podemos usar ainda a simetria da gura para reduzir o cculo do integral ao cculo do integral no primeiro quadrante.
1 1 1 1

(x, y ) dxdy = 4

1 0 0

(x, y ) dxdy

Derivao e integrao numricas

5/ 8

Mtodos Numricos e Computao para a Economia

-Mestrado em Economia

Para usar Monte Carlo para o clculo da rea vamos agora gerar N pontos (xi , yi ) aleatriamente tal que quer xi quer yi se situam no intervalo [0, 1]. Do mesmo modo que aproximamos o integral no exerccio anterior poderiamos repetir o mesmo procedimento agora do seguinte modo
b a c d

f (x, y ) dxdy

f (xi , yi )A
i=1

)(dc) onde A = (baN por analogia com o caso anterior. O somatrio j sabemos como calcular do exerccio anterior, para calcular a funo caracterstica vamos usar as funes lgicas que actuam sobre vectores. Por exemplo:
>> a = [ 3 >> b = [ 2 >> a <= b 4 5 6]; 3];

ans
0

= 1 0

Os operadores lgicos retornam um novo vector constitudo s por zeros e uns em que zero quer dizer falso e um quer dizer verdadeiro. Neste exerccio a funo a integrar tem uma forma simples
(x, y ) = 1 se x2 + y 2 1 e 0 nos outros casos.

Tirando partido das possibilidade de paralelizao o cdigo ca ento da seguinte forma:
>> N = 1 0 0 0 0 0 0 ; >> x = >> y = >>

rand ( 1 ,N ) ; rand ( 1 ,N ) ; a r e a = 4 sum ( x .^2+ y .^2 <=1)/N


3.1438 = 1.0007

>> a r e a / pi

area =

ans

A ltima linha d-nos a comparao entre o valor obtido e o valor exacto. O resultado exacto at terceira casa decimal, nada mau para um programa com apenas quatro linhas.

Derivao e integrao numricas

6/ 8

Mtodos Numricos e Computao para a Economia

-Mestrado em Economia

3 Clculo do volume de hiperesferas


1. Considere uma hiperesfera em dimenso 5 de raio 1 ou seja
2 2 2 2 S = (x1 , . . . , x5 ) R5 : x2 1 + x2 + x3 + x4 + x5 1 .

Qual o volume desta hiperesfera? 2. Repita este clculo para dimenses entre 6 e 10. Sugesto: crie uma funo que retorna o hipervolume para uma dada dimenso n. Para comparao com o valor exacto usar:
2 Cn = n ( 2 + 1)
n

onde (x) a funo gama que pode ser calculado invocando a funo gamma na linguagem. O volume de uma hiperesfera de raio r dado por Vn (r) = Cn rn .

Derivao e integrao numricas

7/ 8

Mtodos Numricos e Computao para a Economia

-Mestrado em Economia

4 ndice de Gini
Suponha que a funo de distribuio relativa da riqueza de um dado pas dada por 2 FX (x) = x2 e(1x) com 0 x 1 e onde FX (x) = y signica que a proporo x mais pobre da populao uma proporo y da riqueza total do pas. 1. Desenhe a funo de distribuio no intervalo [0, 1], faa o mesmo para a funo identidade no mesmo intervalo e no mesmo grco. 2. Calcule o ndice de Gini que nos d uma medida da assimetria na distribuio de riqueza (para mais detalhes sobre o ndice de Gini ver os exerccios do mdulo 1.). a) Use a frmula dada no mdulo 1. b) Calcule o ndice como um integral em dimenso 1. c) Calcule o ndice como um integral em dimenso 2.

Derivao e integrao numricas

8/ 8

S-ar putea să vă placă și