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