Академический Документы
Профессиональный Документы
Культура Документы
Capítulo 11
Integração e Interpolação
É bem conhecido que a maioria dos integrais definidas só podem ser calculadas
numericamente. Neste capitulo, vamos estudar alguns métodos numéricos do
tipo Newton-Côtes, que empregam os valores de f(x) para valores de x
uniformemente espaçados. Dois métodos simples desse grupo são a regra dos
trapézios e a regra de Simpson
Para obter a regra geral, dividimos a área debaixo da curva y = f(x) entre x = a
= x0 e x = b = xn em n faixas da mesma largura h = (b-a)/n. A integral será
aproximada pela seguinte soma de áreas de trapézios:
b
h h
∫ f ( x)dx = ( f ( x0 ) + f ( x1 )) + ( f ( x1 ) + f ( x2 )) + ...
a 2 2
h
( f ( xn −1 ) + f ( xn )) = (1)
2
h
( f ( x0 ) + f ( xn )) + h( f ( x1 ) + f ( x2 ) + ... + f ( xn −1 ))
2
O programa anterior parece ser preferível para a maioria dos usuários. Para
2
ln( x )
calcular ∫ 1 + x2 , usando 6 faixas, a macro deve ser chamada como
1
=Trapezio_Run( 1;2;6;"Funcao"):
155
Regra de Simpson
Como foi feito com a regra dos trapézios, deve-se subdividir o intervalo de
integração [a,b] em n subintervalos iguais de largura h. Com a regra de
Simpson, o número n de subintervalos deve ser, porém, sempre par. A fórmula
composta de Simpson é dada por
b
h
∫ f ( x)dx ≈ 3 ( y0 + 4 y1 + 2 y2 + 4 y3 + 2 y4 + ... (2)
a
+ 2 yn − 2 + 4 yn −1 + yn )
Mas, a seguinte macro é mais curta devido a um simples truco. Utiliza-se uma
variável w = 6 - w que, no programa, somente pode tomar os valores 2, 4, 2,
4 ... se começa-se com w = 4.
Observe que o programa trabalha com uma soma só e que utilizamos somente
um For To – Loop.
156
a0 ∞
Uma série de senos e co-senos do tipo + ∑ (an cos nx + bn sen nx) é
2 n =1
chamada de série trigonométrica. Se esta série converge, ela representa então
uma certa função f(x) que se pode escrever como
a0 ∞
f ( x) = + ∑ (an cos nx + bn sen nx) (3)
2 n =1
1 +π
a0 = ∫ f ( x)dx (4)
π −π
1 +π
an = ∫ f ( x)cos nx dx (n ≥ 0)
π −π
(5),(6)
+π
1
bn = ∫ f ( x)sen nx dx (n > 0)
π −π
numérico analítico
A0 = 3,2899 3,2899
A1 = -3,9999 -4,0000
A2 = 0,9995 1,0000
A3 = -0,4432 -0,4444
A4 = 0,2477 0,2500
A5 = -0,1560 -0,1600
A6 = 0,1046 0,1111
A7 = -0,0715 -0,0816
+ 0,2477·cos(4x) – 0,16·cos(5x)
Planilha de Excel
Também vale a pena criar uma planilha para três formulas (Trapézios,
Tangentes, Simpson). Repetimos as bases teóricas utilizando as somas de
Riemann. (A seguinte figura foi produzida em MuPAD cuja descrição pode-se
encontrar no site do autor em http://www.geocities.com/Athens/Agora/6594/ .)
Sem dúvida, nestes casos é preferível utilizar as macros que foram desen-
volvidas mais acima.
48
I= ∫ 1 + cos 2 x dx
0
Existem métodos melhores dos que utilizamos acima, por exemplo o método de
Romberg, que dá o valor I ≈ 58,47047 com 4 casas decimais corretas.
Vamos supor que, por meio de um experimento, temos uma tabela de dados:
x -2 -1 0 1 2
y 3 0 -2 6 1
Consideremos uma tabela com n+1 pontos (x0,y0), (x1,y1), ... ,(xn,yn) e
desejamos determinar um polinômio da forma
a0 = y0
a1 = (y1 – y0)/(x1 – x0) := [x0,x1,y]
a2 = ((y2 – y1)/(x2 – x1) – (y1 – y0)/(x1 – x0))/(x2 – x0) := [x0,x1,x2,y]
.....................
an = [x0,x1,...,xn,y]
163
p(x) = 3 -3(x+2)+0.5(x+2)(x+1)+1.5(x+2)(x+1)(x)-4/3·(x+2)(x+1)(x)(x-1)
Na coluna E temos:
Obviamente, é muito desejável ter uma macro VBA que é capaz de fazer tudo
isso mais rápido e praticamente com um só clique da mouse.
O programa VBA que segue baseia-se num artigo de R. Pfeifer no site
http://www.arstechnica.de/computer/msoffice/vba/vba0094.html (em alemão).
Ele se mantém ao esquema à pouco apresentado e trabalha com dois listas
(Arrays) embutidas na macro. Desafortunadamente, o programa não pode
determinar, explicitamente, o polinômio interpolador, como o vimos acima no
caso do programa MuPAD. Porém, ele nos permite determinar o valor de p(x)
para qualquer x fornecido por meio de uma InputBox. A sub-rotina "valor"
contém os Arrays x, y dos dados observados e a função "InterNewton" calcula
para cada valor x a ser interpolado primeiro o polinômio que depois é avaliado
usando o método de Horner, que estudamos no último capítulo.
165
Para produzir uma tabela inteira de valores interpolados, que nos permitiria
mostrar também a curva interpolador, precisamos de desenhar outra macro,
assim como a nossa "Interpol", veja o próximo programa.
Se pode demonstrar que sempre existe o polinômio p(x) que interpola a função
f(x), desconhecida, em x0, x1, ..., xn e que é único. No entanto, existem várias
formas para se obter tal polinômio. Ao lado do método de Newton é bem
conhecida a forma de interpolação segundo Lagrange que consta de uma soma
de polinômios especiais (os polinômios de Lagrange).
p ( x) = y0 L0 ( x ) + y1L1 ( x) + ... + yn Ln ( x)
( x − x0 )( x − x1 )...( x − xi −1 )( x − xi +1 )...( x − xn )
Li ( x) =
( xi − x0 )( xi − x1 )...( xi − xi −1 )( xi − xi +1 )...( xi − xn )
n ( x − xk )
Também podemos escrever Li ( x) = ∏ (x − x )
; k ≠ i para i = 0,..., n
k =0 i k
L0 = (x2-7x+12)/6
168
CORRESP(valor_procurado;matriz_procurada;tipo_correspondência)
Para poder usar MATCH num macro VBA, devemos introduzi-lo pelo objeto
Application. Veja o capítulo 7 onde isso foi usado e explicado.
Com os três pontos padrão (1;4), (3;6), (4;12) temos a seguinte planilha:
172
v(t) = At2 + Bt + C
∆t
o∫ v(t)dt = o∫∆t (At2+Bt+C)dt = A·(∆t)3/3 + B·(∆t)2/2 + C·∆t
x −t 2
1
S ( x) = ∫ f (t )dt com f (t ) = e 2
−x 2π
Solução: