• Nenhum resultado encontrado

Aproxima¸c˜ ao por trap´ ezios

No documento Apostila de Programação Estatística (páginas 112-116)

Uma outra alternativa para aproximar a ´area em baixo da curva de f ´e usar trap´ezios em vez de retˆangulos. Essa alternativa torna o c´alculo mais preciso, isto ´e, com menor n conseguimos melhores aproxima¸c˜oes. Veja uma ilustra¸c˜ao dessa aproxima¸c˜ao na Figura 13.5.

(a) Valor exato. (b) Valor aproximado.

Figura 13.5: Aproxima¸c˜ao por trap´ezios.

A ´area de um trap´ezio ´e definida por A = (h1+ h2)b2, onde h1 e h2 s˜ao as duas alturas

e b a base do trap´ezio. Logo, o i-´esimo trap´ezio definido pela curva f temos os seguintes valores: h1 = f (xi−1), h2 = f (xi) e b = (xi− xi−1). Logo a ´area do i-´esimo trap´ezio pode

ser expressa por AT

i = (f (xi−1) + f (xi))2δ.

Ent˜ao a soma das ´areas dos trap´ezios, que ser´a uma aproxima¸c˜ao para a integral, pode ser definida por:

ST = n X i=1 (f (xi−1) + f (xi)) δ 2. Vejamos agora um resultado interessante. Sejam AL

i = δ min (f (xi−1), f (xi)) e AUi =

δ max (f (xi−1), f (xi)) as ´areas dos i-´esimos retˆangulos abaixo e acima da curva de f ,

respectivamente. Veja que o valor m´edio entre essas duas ´areas pode ser calculado da seguinte maneira:

Integra¸c˜ao Num´erica

ALi + AUi

2 =

1

2(δ min (f (xi−1), f (xi)) + δ max (f (xi−1), f (xi)))

= δ

2(min (f (xi−1), f (xi)) + max (f (xi−1), f (xi)))

= δ

2(f (xi−1) + f (xi)) = ATi

Logo, a m´edia entre a ´area dos retˆangulos acima e abaixo da curva de f ´e a ´area do trap´ezio. Ent˜ao o mesmo acontecer´a com a soma das ´areas:

ST =

SL+ SU

2 .

13.3

Algoritmo

Como j´a foi discutido, ser˜ao usados os retˆangulos e trap´ezios para aproximar a ´area em baixo da curva de f . Mas como determinar o n´umero de subintervalos n que ir´a fornecer uma aproxima¸c˜ao relativamente boa?

Veja que quanto mais subdivis˜oes tem o intervalo [a, b] mais precisa ser´a a aproxi- ma¸c˜ao. Al´em disso sabemos calcular SL e SU tais que SL ≤ ´Area Real ≤ SU, ou seja,

conhecemos uma conta inferir (SL) e uma cota superior (SU) para o real valor da ´area.

O que vamos fazer ´e buscar n tal que essas duas cotas j´a estejam perto os suficiente. A ideia do algoritmo ser´a come¸car com um n qualquer, por exemplo n = 100, e calcular para esse n´umero de subintervalos os valores de SL e SU. Se j´a estivermos perto do valor

procurado teremos SU − SL < ε, onde ε um erro pr´e-estabelecido. Se isso n˜ao acontecer

significa que precisamos fazer as contas com mais subintervalos. Ent˜ao o processo ser´a repetido para um valor maior de n.

Veja a seguir como fica o algoritmo que fornece uma aproxima¸c˜ao para Rabf (x)dx a partir dessa ideia.

Entrada: a, b, f e ε.

Sa´ıda: uma aproxima¸c˜ao para Rabf (x)dx . Nome: IntegralNum´erica

Defina n = 100; 1 Defina δ = b−an ; 2 Defina SL= 0 e SU = 0; 3 Inicie x = a; 4 Fa¸ca SL= SL+ δ min(f (x), f (x + δ)); 5 Fa¸ca SU = SU + δ max(f (x), f (x + δ)); 6 Incremente x = x + δ; 7

Se x < b, volte para a linha 5;

8

Se SU − SL< ε, retorne ST = SL+S2 U;

9

Fa¸ca n = n + 10 e volte para a linha 2.

10

Integra¸c˜ao Num´erica

Veja que o que o algoritmo de fato faz ´e calcular a ´area dos retˆangulos abaixo e acima para n = 100. Se elas j´a estiverem pr´oximas o suficiente, isto ´e, se SU − SL < ε, fim. Se

n˜ao, repete o processo para n maior, ou seja, para mais divis˜oes no dom´ınio. Depois de determinado o valor para n o que vamos retornar ´e a ´area referente a soma das ´areas dos trap´ezios.

Veja o mesmo algoritmo de forma recursiva. Nesse caso ser´a necess´ario passar o n´umero de subdivis˜oes do intervalo (a, b) como parˆametro de entrada.

Entrada: a, b, f , ε e n.

Sa´ıda: uma aproxima¸c˜ao para Rb

a f (x)dx .

Nome: IntegralNum´ericaRec Defina δ = b−an ; 1 Defina SL= 0 e SU = 0; 2 Inicie x = a; 3 Fa¸ca SL= SL+ δ min(f (x), f (x + δ)); 4 Fa¸ca SU = SU + δ max(f (x), f (x + δ)); 5 Incremente x = x + δ; 6

Se x < b, volte para a linha 4;

7

Se SU − SL< ε, retorne ST = SL+S2 U;

8

Retorne IntegralNum´ericaRec(a, b, ε, n + 10).

Integra¸c˜ao Num´erica

Exerc´ıcios - 13ª Semana

13.1 Primeiro vamos aplicar o m´etodo em uma fun¸c˜ao que sabemos integrar. Considere a fun¸c˜ao f (x) = x2− x − 1. Calcule na m˜ao o valor de R−11 f (x)dx. Esse ´e o valor que queremos aproximar.

a) Implemente uma fun¸c˜ao que recebe como entrada a, b e n e retorna a soma da ´

area dos n retˆangulos definidos em sala de aula. Veja que a sa´ıda dessa fun¸c˜ao ´e uma aproxima¸c˜ao para Rabf (x)dx usando a ´area de n retˆangulos

OBS: use retˆangulos com a altura que preferir: o ponto m´edio, ponto `a direita ou ponto `a esquerda.

b) Usando a fun¸c˜ao implementada no item 1a encontre uma aproxima¸c˜ao para R1

−1f (x)dx com 50 retˆangulos.

c) Implemente uma fun¸c˜ao que recebe como entrada a, b e n e retorna a soma da ´

area dos n trap´ezios definidos em sala de aula. Veja que a sa´ıda dessa fun¸c˜ao ´e uma aproxima¸c˜ao para Rabf (x)dx usando a ´area de n trap´ezios.

d) Usando a fun¸c˜ao implementada no item 1c encontre uma aproxima¸c˜ao para R1

−1f (x)dx com 50 trap´ezios.

e) O que podemos dizer sobre as aproxima¸c˜oes encontradas nos itens 1b e 1d? Qual das duas ´e mais precisa? Para responder isso compare com o valor exato encontrado no in´ıcio do exerc´ıcio.

f) Agora vamos implementar o pseudo-c´odigo visto em sala de aula. Implemente uma fun¸c˜ao que recebe como entrada a, b e ε e retorna uma aproxima¸c˜ao para Rb

af (x)dx com erro menor que ε.

g) Usando a fun¸c˜ao implementada no item 1f encontre uma aproxima¸c˜ao para R1

−1f (x)dx com erro menor que 0, 001.

h) Refa¸ca a quest˜ao 1f de forma que ela retorne al´em da aproxima¸c˜ao para a integral o n´umero de subintervalos usado.

i) Usando a fun¸c˜ao implementada no item 1h encontre uma aproxima¸c˜ao para R1

−1f (x)dx com erro menor que 0, 001 e veja quantos subintervalos foram ne-

cess´arios para se conseguir essa precis˜ao. Compare a aproxima¸c˜ao encontrada com o valor real e com as aproxima¸c˜oes encontradas em 1b e 1d.

j) Refa¸ca a quest˜ao 1f de forma recursiva. k) Refa¸ca a quest˜ao 1h de forma recursiva.

Integra¸c˜ao Num´erica

13.2 Considere f (x) = √1 2πe

−x2

2 . Vocˆe conhece essa fun¸c˜ao? Sabe calcular Rb

a f (x)dx de

forma exata? N˜ao. Por isso vamos buscar uma aproxima¸c˜ao para essa integral. a) Implemente uma fun¸c˜ao que recebe como entrada a, b e ε e retorna uma aproxi-

ma¸c˜ao para Rabf (x)dx com erro menor que ε.

b) Usando a fun¸c˜ao implementada no item 2a encontre uma aproxima¸c˜ao para R0,5

0 f (x)dx,

R−1

−2 f (x)dx e

R3

−3f (x)dx com erro menor que 0, 001.

c) Usando a fun¸c˜ao implementada no item 2a vamos construir uma (mini) Tabela Normal, ou seja, preencha a tabela a seguir com aproxima¸c˜oes para Rz

0 f (x)dx

para diferentes valores de z.

z ,0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9

0,

1, ?

2, 3,

OBS: na posi¸c˜ao ? da tabela deve entrar R1,2

0 f (x)dx.

Para isso comece com uma matriz nula com 4 linhas e 10 colunas. Cada posi¸c˜ao da matriz guarda uma entrada da tabela. Vamos preencher essa matriz por linhas. Para fazer isso de forma autom´atica comece com i = 1, j = 1 e z = 0. Cada vez que mudamos de posi¸c˜ao na matriz a vari´avel z deve ser incrementada: z = z + 0.1. Para cada posi¸c˜ao (i, j) dessa matriz ser´a calculado o valor de Rz

No documento Apostila de Programação Estatística (páginas 112-116)