| | | | |

2.4 Método de Steffensen

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

O método de Steffensen1818endnote: 18Johan Frederik Steffensen, 1873 - 1961, matemático e estatístico dinamarquês. Fonte: Wikipédia. é uma aplicação do método de aceleração de convergência Δ2 de Aitken1919endnote: 19Alexander Aitken, 1895 - 1967, matemático neozelandês. Fonte: Wikipédia. à iteração de ponto fixo.

2.4.1 Acelerador Δ2 de Aitken

Seja dada uma sequência (x(k))k=1 monotonicamente convergente para x*. Assumimos que k seja suficientemente grande tal que

x(k+1)x*x(k)x*x(k+2)x*x(k+1)x*. (2.101)

Então, isolando x* obtemos

x*x(k)x(k+2)(x(k+1))2x(k)2x(k+1)+x(k+2). (2.102)

Ainda, somando e subtraindo (x(k))2 e 2x(k)x(k+1) no numerador acima e rearranjando os termos, obtemos

x*x(k)(x(k+1)x(k))2x(k+2)2x(k+1)+x(k). (2.103)

O observado acima, nos motiva a introduzir o acelerador Δ2 de Aitken

Δ2{x(k),x(k+1),x(k+2)}:=x(k)(x(k+1)x(k))2x(k+2)2x(k+1)+x(k). (2.104)
Exemplo 2.4.1.

Consideremos o problema de encontrar o zero da função

f(x) =sen2(x+π4)x3 (2.105)
+π4x2+5π216x+3π364.

no intervalo [2,3]. Para tanto, podemos aplicar a iteração de ponto fixo dada por

x(k+1) =g(x(k)) (2.106)
:=x(k)αf(x(k)),k=1,2,,

com α=0.05 e x(0)=2.6. Na Tabela 2.4 temos os valores das iteradas x(k) e das correções Δ2=Δ2{x(k),x(k+1),x(k+2)} de Aitken. Neste caso, a aceleração de convergência é notável.

Tabela 2.4: Resultados referentes ao Exemplo 2.4.1.
k x(k) Δ2
0 2.6000 -x-
1 2.4632 -x-
2 2.4073 2.3687
3 2.3814 2.3590
4 2.3688 2.3569
5 2.3625 2.3564
6 2.3594 2.3562
7 2.3578 2.3562
1import numpy as np
2
3# fun obj
4f = lambda x: np.sin(x+np.pi/4)**2 \
5  - x**3 + np.pi/4*x**2 + 5*np.pi**2/16*x \
6  + 3*np.pi**3/64
7
8# fun pto fixo
9alpha = -0.05
10g = lambda x: x - alpha*f(x)
11
12x0 = 2.6
13print(f'\n1: {x0:.4f}')
14for k in range(7):
15  x1 = g(x0)
16  x2 = g(x1)
17  x = x0 - (x1-x0)**2/(x2-2*x1+x0)
18  print(f'\n{k+2}: {x1:.4f}, {x:.4f}')
19  x0 = x1

2.4.2 Análise Numérica

Definição 2.4.1.

(Diferença Progressiva.) Para uma sequência (x(k))k=1, Δx(k) denota o operador de diferença progressiva e é definido por

Δx(k):=x(k+1)x(k) (2.107)

Potências maiores do operador são definidas recursivamente por

Δnx(k)=Δ(Δn1x(k)),n2. (2.108)

Da definição acima, temos que

Δ2x(k) :=Δ(δx(k)) (2.109)
=Δ(x(k+1)x(k)) (2.110)
=Δx(k+1)Δx(k) (2.111)
=(x(k+2)x(k+1))(x(k+1)x(k)) (2.112)
=x(k+2)2x(k+1)+x(k) (2.113)

Com isso, temos que o acelerador Δ2 de Aitken (2.104) pode ser reescrito como

Δ2{x(k),x(k+1),x(k+2)}:=x(k)(Δx(k))2Δ2x(k). (2.114)
Teorema 2.4.1.

Seja (x(k))k=1 uma sequência linearmente convergente para x* e

limkx(k+1)x*x(k)x*<1. (2.115)

Então, a sequência Δ2 de Aitken (x^(k))k=1, com

x^(k):=Δ2{x(k),x(k+1),x(k+2)}, (2.116)

converge para x* mais rápido que (x(k)) no sentido de que

limkx^(k)x*x(k)x*=0. (2.117)
Demonstração.

Em construção …∎

2.4.3 Algoritmo de Steffensen

O método de Steffensen consiste em aplicar o acelerador Δ2 de Aitken à iteração de ponto fixo. Mais especificamente, sejam uma aproximação inicial x(0) e uma iteração de ponto fixo

x(k+1)=g(x(k)),k=0,1,2,. (2.118)

O algoritmo de Steffensen consiste em:

  1. 1.

    xx(0).

  2. 2.

    Para k=0,1,2,,N1:

    1. (a)

      x1g(x).

    2. (b)

      x2g(x1).

    3. (c)

      x(k+1)Δ2{x,x1,x2}.

    4. (d)

      xx(k+1).

Exemplo 2.4.2.

Retornamos ao exemplo anterior (Exemplo 2.4.1. Na Tabela 2.5 temos os valores das iteradas de Steffensen x(k) e do indicador de convergência |x(k)x(k1)|.

Tabela 2.5: Resultados referentes ao Exemplo 2.4.2.
k x(k) |x(k)x(k1)|
0 2.6000 -x-
1 2.3687 2.3e1
2 2.3562 1.2e2
3 2.3562 4.2e5
1import numpy as np
2
3# fun obj
4f = lambda x: np.sin(x+np.pi/4)**2 \
5  - x**3 + np.pi/4*x**2 + 5*np.pi**2/16*x \
6  + 3*np.pi**3/64
7
8# fun pto fixo
9alpha = -0.05
10g = lambda x: x - alpha*f(x)
11
12x0 = 2.6
13print(f'\n1: {x0:.4f}')
14for k in range(3):
15  x1 = g(x0)
16  x2 = g(x1)
17  x = x0 - (x1-x0)**2/(x2-2*x1+x0)
18  nd = np.fabs(x-x0)
19  print(f'\n{k+2}: {x:.4f}, {nd:.1e}')
20  x0 = x

Exercícios

E. 2.4.1.

Use o método de Steffensen para obter uma aproximação do zero de f(x)=x3sen(x)cos(x) no intervalo [0.5,1] com precisão de 106.

Resposta.

9.15811×101

E. 2.4.2.

Use o Método da Iteração de Ponto Fixo para aproximar um zero de

f(x)=x3sen(x)cos(x) (2.119)

no intervalo inicial [0.5,1].

E. 2.4.3.

Use o Método de Steffensen para computar a(s) solução(ões) das seguintes equações com precisão de 8 dígitos significativos.

  1. a)

    x=2x para 0x2.

  2. b)

    ex2=3xx2 para 1x4.

Resposta.

a) 6.4118574×101; b) 3.3536470×101; 2.9999589

E. 2.4.4.

Use o Método de Steffensen para encontrar uma aproximação com precisão de 4 dígitos significativos do zero de

f(x)=(x2+1.154x0.332929)cos(x)+x21.154x+0.332929 (2.120)

no intervalo [1,0].

Resposta.

7.861×101

E. 2.4.5.

Use o Método de Steffensen para encontrar uma aproximação com precisão de 104 do zero de

f(x) =(x2+1.154x0.332929)cos(x)+x2 (2.121)
1.154x+0.332929

no intervalo (0.55,0.65). Forneça a aproximação computada com 7 dígitos significativos por arredondamento.

Resposta.

5.770508×101

E. 2.4.6.

Use o Método de Steffensen para encontrar o ponto crítico2020endnote: 20Definimos que x é ponto crítico de uma dada f, quando f(x)=0 ou f(x). de

f(x)=(1x2)ex2 (2.122)

no intervalo (0,2). Obtenha o resultado com precisão de 5 dígitos significativos por arredondamento.


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!