Derivação numérica - DEM · Departamento de … h E x h fx h E x haaf fx h h ++ +− − + − ξ...
Transcript of Derivação numérica - DEM · Departamento de … h E x h fx h E x haaf fx h h ++ +− − + − ξ...
Matemática Computacional, MEMec, LEAN, MEAer
Derivação numérica→ Aproximar a derivada recorrendo à interpolação
Polinómio interpolador Derivar polinómio
x
x0 x1 x2
p(x)
x
x0 x1 x2
p(x)
Conjunto de pontos
x
Matemática Computacional, MEMec, LEAN, MEAer
Diferença finita regressiva de 2º ordem
−=−
−− −− −=
−−=−
0 0
1 00 1
1 0
1 02 1
2 1 1 01 1 0 1 2
2 0
2 11 2
2 1
2 2
[ , ]
[ , , ]
[ , ]
x yy yy x xx x
y yy yx x x xx y y x x x
x xy yy x xx x
x y
( )0 0 1 0 0 1 2 0 1
0 1 0 1 2 1 0
0 1 2
( ) [ , ] ( ) [ , , ] ( ) ( )
'( ) [ , ] [ , , ] ( ) ( )
''( ) 2 [ , , ]
p x y y x x x x y x x x x x x x
p x y x x y x x x x x x x
p x y x x x
= + ⋅ − + ⋅ − ⋅ −
= + ⋅ − + −
= ⋅
Polinómio interpolador nos nós x0, x1, x2 – tabela diferenças divididas
x0 x1 x2
p(x)
Matemática Computacional, MEMec, LEAN, MEAer
Diferença finita regressiva de 2º ordem
Considerando nós equidistantes, h=x1 – x0, h=x2 – x1
( )
( )
= + ⋅ − + −
−− −− − −= + ⋅ − + −− −
0 1 0 1 2 1 0
1 02 1
1 0 2 1 1 01 0
1 0 2 0
'( ) [ , ] [ , , ] ( ) ( )
'( ) ( ) ( )
p x y x x y x x x x x x x
y yy yy y x x x xp x x x x xx x x x
−− −−− −− − − += ⋅ = ⋅ = ⋅ =−
1 02 1 1 02 1
2 1 1 0 2 1 00 1 2 2
2 0
2''( ) 2 [ , , ] 2 2
2
y yy y y yy yx x x x y y yh hp x y x x x
x x h h
( )−− −−= + ⋅ − + −
1 02 1
1 01 0'( ) ( ) ( )
2
y yy yy y h hp x x x x x
h h
( )− − += + ⋅ − + −1 0 2 1 01 02
2'( ) ( ) ( )
2y y y y yp x x x x x
h h
x0 x1 x2
h h
Matemática Computacional, MEMec, LEAN, MEAer
Diferença finita regressiva de 2º ordem
Particularizando para x=x2, resulta
− − + = + ⋅ − + − 2 2
1 0 2 1 01 02 2
2
2'( ) ( ) ( )
2h h
y y y y yp x xx xh h
x
x
x0 x1 x2
p(x)
A diferença finita designa-se porregressiva porque os nós utilizadossão o ponto onde calculamos a“derivada” e pontos “para trás”
( )− − += + ⋅ +1 0 2 1 02 2
2'( ) 2
2y y y y yp x h h
h h
− += 2 1 02 2
2''( )
y y yp xh
− − += +1 0 2 1 02
2'( ) 3
2y y y y yp x
h h
− += 2 1 02
3 4'( )
2y y yp x
h
Matemática Computacional, MEMec, LEAN, MEAer
Diferença finita regressiva de 2º ordemExpansão em série de Taylor de ordem 2 com resto de ordem 3
ξ− = + × − + × − + × −2 31''( ) '''( )( ) ( ) '( ) ( ) ( ) ( )
2 6f x ff x h f x f x h h h
ξ− = + × − + × − + × −2 32''( ) '''( )( 2 ) ( ) '( ) ( 2 ) ( 2 ) ( 2 )
2 6f x ff x h f x f x h h h
ξ − = − + −2 31''( ) '''( )
( ) ( ) '( )2 6
f x ff x h f x f x h h h (*)
2 32''( ) '''( )( 2 ) ( ) 2 '( ) 4 8
2 6f x ff x h f x f x h h hξ
− = − × + × − × (**)
Efectuando (**) – 4×(*), de modo a anular o termo em f ’’(x), resulta
3 31 2'''( ) '''( )( 2 ) 4 ( ) 3 ( ) 2 '( ) 8 4
6 6f ff x h f x h f x f x h h hξ ξ− − − = − + − +
2 32''( ) '''( )( 2 ) ( ) 2 '( ) 4 8
2 6f x ff x h f x f x h h hξ− = − × + × − ×
ξ− =× × × ×−×− + 2 314 4 4 4''( ) '''( )
( ) ( ) '( )2
46
f x ff x h f x f x h h h×4 (*)
− ×4(**) (*)
(**)
Matemática Computacional, MEMec, LEAN, MEAer
Diferença finita regressiva de 2º ordemDesenvolvendo
3 31 2'''( ) '''( )( 2 ) 4 ( ) 3 ( ) 2 '( ) 8 4
6 6f ff x h f x h f x f x h h hξ ξ− − − = − + − +
3'''( )( 2 ) 4 ( ) 3 ( ) 2 '( ) 4
6ff x h f x h f x f x h hξ
− − − = − + − [ 2 , ]x h xξ ∈ −
ξ− − − + = +
( )
2( 2 ) 4 ( ) 3 ( ) '''( )'( )
2 3hD f x Erro
f x h f x h f x ff x hh
Diferença finita regressiva de 2ª ordem e respectivo erro (de método)
( 2 ) 4 ( ) 3 ( )( )
2hf x h f x h f xD f x
h− − − += 2
2'''( )
'( )3
fE x hξ=
Matemática Computacional, MEMec, LEAN, MEAer
Resumo das principais diferenças finitas
( ) ( )( )h
f x f x hD f x
h− −=
Prim
eira
der
ivad
a
2 ''( ) '''( )E x h f ξ= − ⋅
Prim
eira
ord
em1
1'( ) ''( )
2E x h f ξ= ⋅ ⋅
( ) ( )( )
2hf x h f x h
D f xh
+ − −= 21
1'( ) '''( )
6E x h f ξ= − ⋅ ⋅
( ) ( )( )h
f x h f xD f x
h+ −= 1
1'( ) ''( )
2E x h f ξ= − ⋅ ⋅
Segu
nda
orde
m ( 2 ) 4 ( ) 3 ( )( )
2hf x h f x h f x
D f xh
− + + + −= 22
1'( ) '''( )
3E x h f ξ= ⋅ ⋅
3 ( ) 4 ( ) ( 2 )( )
2hf x f x h f x h
D f xh
− − + −= 22
1'( ) '''( )
3E x h f ξ= ⋅ ⋅
Segu
nda
deriv
ada 2
2
( 2 ) 2 ( ) ( )( )h
f x h f x h f xD f x
h+ − + +=
Segu
nda
orde
m Progressiva
Regressiva 22
( ) 2 ( ) ( 2 )( )h
f x f x h f x hD f x
h− − + −= 2 ''( ) '''( )E x h f ξ= ⋅
22
( ) 2 ( ) ( )( )h
f x h f x f x hD f x
h+ − + −= 2
21
''( ) ''''( )12
E x h f ξ= − ⋅ ⋅Central
Progressiva
Regressiva
Central
Progressiva
Regressiva
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamentoExemplo: Seja f(x)=x4. Calcular f’(1), utilizando diferenças finitas centrais
Diferença finita central e respectivo erro (de método)
( ) ( )( )
2hf x h f x hD f x
h+ − −= 2'''( )
( )6
fE x hξ= −Quando h tender para zero, o erro deverá diminuir
4 3Valor exacto: ( ) '( ) 4 '(1) 4f x x f x x f= = =
h diferença finita erro absoluto1.0E-01 4.04000000000 -4.00E-021.0E-02 4.00040000000 -4.00E-041.0E-03 4.00000400000 -4.00E-061.0E-04 4.00000004000 -4.00E-081.0E-05 4.00000000040 -4.04E-101.0E-06 3.99999999995 5.15E-111.0E-07 4.00000000012 -1.15E-101.0E-08 4.00000000345 -3.45E-091.0E-09 4.00000010892 -1.09E-071.0E-10 4.00000033096 -3.31E-07
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamento
Aplicando logaritmos à expressão do erro
2'''( )( )
6fE x hξ=
'''( )log log 2 log( )
6 xyb
fE hξ = + ×
2y b x = + recta de declive 2
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1-11
-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
10log E
10log ( )h
110i ih =
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamento
Aplicando logaritmos à expressão do erro
2'''( )( )
6fE x hξ=
'''( )log log 2 log( )
6 xyb
fE hξ = + ×
2y b x = + recta de declive 2
10log E
10log ( )h-12 -10 -8 -6 -4 -2 0
-12
-10
-8
-6
-4
-2
0
12.5i ih =
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamento
Quando se diminui o valor de h, a partir de certo valor de h o erro não diminui (aumenta)
2'''( )6método
fE hξ= −
→ A razão são os erros de arredondamento
Não considerando os erros de arredondamento:
'( ) ( )método hE f x D f x= −
Para a diferença finita central:
2( ) ( ) '''( )'( )
2 6f x h f x h ff x h
hξ+ − − = + −
Tendo em considerando erros de arredondamento:
( ) ( ) (( ))arredondament aoE x fx xE f x= = −
onde ( ) representa a aproximação de ( )f x f x
( ) ( ) af x f x E = +
'( ) ( )h métodof x D f x E = +
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamentoEntão,
Erro total:
2( ) ( ) '''( )'( )
2 6f x h f x h ff x h
hξ+ − −= −
2( ) ( ) ( ) ( ) '''( )
'( )2 6
a af x h E x h f x h E x h ff x hh
ξ + + + − − + − = + −
erro de métododiferença finita calculada erro de arredond
erro to
ament
t l
o
a
2( ) ( )( ) ( ) '''( )'( )
2 2 6a aE x h E x hf x h f x h ff x h
h hξ+ − −+ − − = + + −
erro de métodoerro de arredondamento
2( ) ( ) '''( )2 6
a atotal
E x h E x h fE hh
ξ+ − − = + −
Majorando o erro total: 2( ) ( ) 1'''( )
2 6a a
total
E x h E x hE f h
hξ
∞
+ + −≤ +
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamento
2( ) ( ) 1'''( )
2 6a a
total
E x h E x hE f h
hξ
∞
+ + −≤ +
Considerando: 3; '''( )aE f Mε ξ∞
≤ =
23
2 12 6totalE M h
hε
≤ +
Majorante Majorante
erro de erro dearredondament
23
o método
16totalE M h
hε
≤ +
Etotal
Earredonda
Emétodo
hoptimo h
Erro
Espaçamento óptimo (h óptimo):
Ponto de mínimo, 0Eh
∂ =∂
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamento
h óptimo: 23
10 0
6E M hh h h
ε∂ ∂ = + = ∂ ∂ 32
20
6M h
hε
− + = 3 2
13
M hhε
=
3
3
3hM
ε =
1 3
3
3opth
Mε
=
No exemplo:
4 3 2( ) '( ) 4 ''( ) 12 '''( ) 24f x x f x x f x x f x x= = = =
4( ) ; 1f x x x= =
3 '''(1) 24M f ≈ =
4( ) ; (1) 1f x x f= =
ε representa o majorante do erro de arredondamento do valor da função.Em termos relativos ε é igual à unidade de arredondamento (Matlab, u=1,1x10–16)
16(1) 1,1 10u fε − = × = ×
1 3 1 3166
3
3 3 1,1 103,5 10
24opt opth hM
ε −− × ×= = = ×
Matemática Computacional, MEMec, LEAN, MEAer
Diferenças finitas – erros de arredondamento
2'''( )( )
6fE x hξ=
'''( )log log 2 log( )
6 xyb
fE hξ = + ×
2y b x = + recta de declive 2
10log E
10log ( )h-12 -10 -8 -6 -4 -2 0
-12
-10
-8
-6
-4
-2
0
12.5i ih =
Matemática Computacional, MEMec, LEAN, MEAer
Formula de Aitken-Neville
x0 x1 xn xn+1
1 1 0 1 1( ) ( ) ( ) ( ) [ , ,... , ] ( )n n n n n n n np x p x a W x p x y x x x x W x+ + += + ⋅ = + ⋅
( )0,00
1,,, 1
1 00
( )( ) )
( ( )(
) nnnn
n
p x p xx xp x
xp
xx+
+
− ⋅ −= +
−
Formula de Aitken-Neville
x0 x1 xn xn+1
p0,n
p1,n
p0,n+1
x2 xn-1
Matemática Computacional, MEMec, LEAN, MEAer
Formula de Aitken-Neville
( )000
,20,,3
3 02
1,2( )( )
( )(
( ))
p xx xp x
x x
p xp x
− ⋅ −= +
−
Formula de Aitken-Neville
Exemplo: n=2
x0 x1 x2
p0,2(x)
x3
p1,2(x)p0,3(x)
Matemática Computacional, MEMec, LEAN, MEAer
Formula de Aitken-Neville
( )1
1,
,,1
, ( )(
( ( ))( ) ) m km
m km k
m km k
m
p p xp x
x xp x
x
x
x+
++
+
− ⋅ −= +
−
Generalizando
Formula de Aitken-Neville
x0 x1 xm+k
pm,k
pm+1,k
pm,k+1
xm xm+k+1xm+1
Matemática Computacional, MEMec, LEAN, MEAer
Formula de Aitken-Neville
( )1, ,, 1 ,
1
( ) ( ) ( )( ) ( ) m m k m k
m k m km k m
x x p x p xp x p x
x x+
++ +
− ⋅ −= +
−
Se pretendermos efectuar o cálculo do polinómio para x=0 resulta,
( ), 1,, 1 ,
1
(0) (0)(0) (0) m m k m m k
m k m km k m
x p x pp p
x x+
++ +
⋅ − ⋅= +
−
( )1, ,, 1 ,
1
0 0 00 0
( ) ( ) ( )( ) ( ) m m k m k
m k m km k m
x p pp p
x x+
++ +
− ⋅ −= +
−
1 , 1,, 1
1
(0) (0)(0) m k m k m m k
m km k m
x p x pp
x x+ + +
++ +
⋅ − ⋅=
−
Matemática Computacional, MEMec, LEAN, MEAer
Extrapolação de Richardson
Extrapolação de Richardson:
• Sucessão de valores de h: hm, hm+1, …, hm+k
• Calcular diferenças finitas para cada valor de h –> termos de ordem zero dos polinómios
1 , 1,, 1
1
(0) (0)(0) m k m k m m k
m km k m
x p x pp
x x+ + +
++ +
⋅ − ⋅=
−1 , 1,
, 11
m k m k m m km k
m k m
h D h DD
h h+ + +
++ +
⋅ − ⋅=
−
• Usar Aitken-Neville para calcular os valores do polinómio em h=0 (extrapolação)
2 3''( ) '''( )( ) ( ) '( ) ...
2! 3!f x f xf x h f x f x h h h+ = + ⋅ + ⋅ + ⋅ +Expansão em série
2
1
( ) ( ) ''( ) '''( ) ( ) ( )'( ) ... '( )
2! 3!i
i
i
f x h f x f x f x f x h f xf x h h f x C hh h
∞
=
+ − + − = − ⋅ − ⋅ − = + ⋅
1
polinómio na variável
( ) ( )'( ) ( )
k
ii
i
h
f x h f xf x C h p hh
=
+ − + ⋅ =
A diferença finita é o termo de ordem zero do polinómio na variável h
Matemática Computacional, MEMec, LEAN, MEAer
Extrapolação de RichardsonExemplo: f(x)=exp(x), calcular f ’(1) utilizando extrapolação de Richardson
1 0,0 0 1,00,1
1 0
0.2 3.342295 0.4 3.0091750.2 0.4
h D h DD
h h× − × × − ×= =
− −
Nota: Valor exacto, f ’(1)=exp(1)=2.718282Sugestão: considerar h0=0.4, hm=h0/2m
0 ,00( ) ( ) (1.4) (1)
0.4 Diferença finita,0.4
f x h f x f fh Dh
+ − −= → = =
01 ,01
( ) ( ) (1.2) (1)0.2 Diferença finita,
2 0.2h f x h f x f fh D
h+ − −= = → = =
1 , 1,, 1
1
m k m k m m km k
m k m
h D h DD
h h+ + +
++ +
⋅ − ⋅=
−
0,1 2.676055D =Tabela
0,1
0 0,0
1 1,0
h D
h DD
Gráfico
h1 h0
hD0,1
D0,0
D1,0
00, 3.342295D =
01, 3.009175D =
Matemática Computacional, MEMec, LEAN, MEAer
Extrapolação de RichardsonNovo ponto, h2=h0/22=0.1
2 1,0 1 2,01,1
2 1
0.1 3.009175 0.2 2.8588422.708509
0.1 0.2h D h D
Dh h
× − × × − ×= = =− −
Valor exacto,
f ’(1) =2.718282
02 ,02 2
( ) ( ) (1.1) (1)0.1 Diferença finita, 2.858842
2 0.1h f x h f x f fh D
h+ − −= = → = = =
1 , 1,, 1
1
m k m k m m km k
m k m
h D h DD
h h+ + +
++ +
⋅ − ⋅=
−
Tabela0 0,0
0,1
1 1,0
1,1
2 2,
0,2
0
Dh D
h
h
D
DD
D
Gráfico
h1 h0
D0,0
D1,0
h2
D0,1D1,1
D0,2
D2,0
2 0,1 0 1,10,2
2 0
0.1 2.676055 0.4 2.7085092.719327
0.1 0.4h D h D
Dh h
× − × × − ×= = =− −
Matemática Computacional, MEMec, LEAN, MEAer
Extrapolação de RichardsonTabela
= =
= =
= =
=
==
0 0,0
1 1,0
2 2,
0,
,
0
0,1
1
2
1
0.4 3.342295
0.2 3.00912.676055
2.7085092.7193275
0.1 2.858842
7
h DD
Dh D
h DD
Gráfico
h1 h0
D0,0
D1,0
h2
D0,1D1,1
D0,2
D2,0
Valor exacto,
f ’(1) =2.718282
diferenças finitas
Matemática Computacional, MEMec, LEAN, MEAer
Extrapolação de Richardson
A convergência é mais rápida e a formula de Aitken-Neville adaptada resulta
2 4 2
1
( ) ( ) '''( ) '''''( ) ( ) ( )'( ) ... '( )
2 3! 5! 2i
i
i
f x h f x h f x f x f x h f x hf x h h f x C hh h
∞
=
+ − − + − − = − ⋅ − ⋅ − = + ⋅
1 , 1,, 1
1
(0) (0)(0) m k m k m m k
m km k m
x p x pp
x x+ + +
++ +
⋅ − ⋅=
−
2 21 , 1,
, 1 2 21
m k m k m m km k
m k m
h D h DD
h h+ + +
++ +
⋅ − ⋅=
−
Se usarmos diferenças finitas centrais a série de potencias de h só tem potências pares
2 3
2 3
3
''( ) '''( )( ) ( ) '( ) ...
2! 3!''( ) '''( )
( ) ( ) '( ) ...2! 3!
'''( )( ) ( ) 2 '( ) 2 ...
3!
f x f xf x h f x f x h h h
f x f xf x h f x f x h h h
f xf x h f x h f x h h
+ = + ⋅ + ⋅ + ⋅ +
− − = − ⋅ + ⋅ − ⋅ +
+ − − = ⋅ ⋅ + ⋅ ⋅ +
2
2 2
1
polinómio na variável
( ) ( )'( ) ( )2
k
ii
i
h
f x h f x hf x C h p hh
=
+ − − + ⋅ =