Derivação numérica - DEM · Departamento de … h E x h fx h E x haaf fx h h ++ +− − + − ξ...

24
Matemática Computacional, MEMec, LEAN, MEAer Derivação numérica Aproximar a derivada recorrendo à interpolação Polinómio interpolador Derivar polinómio x x 0 x 1 x 2 p(x) x x 0 x 1 x 2 p(x) Conjunto de pontos x

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

+ + −≤ +

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

+ + −≤ +

Considerando: 3; '''( )aE f Mε ξ∞

≤ =

23

2 12 6totalE M h

≤ +

Majorante Majorante

erro de erro dearredondament

23

o método

16totalE M 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

− + = 3 2

13

M hhε

=

3

3

3hM

ε =

1 3

3

3opth

=

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

=

+ − − + ⋅ =