• Nenhum resultado encontrado

Pretende-se calcular uma aproximação para a menor raiz positiva da equação

N/A
N/A
Protected

Academic year: 2021

Share "Pretende-se calcular uma aproximação para a menor raiz positiva da equação"

Copied!
13
0
0

Texto

(1)

function y=f3(x) y = x.^3-5*x+1;

Pretende-se calcular uma aproximação para a menor raiz positiva da equação

    ,

pelos métodos de Newton-Raphson e ponto fixo.

a) Localize um intervalo que contenha a menor raiz positiva da equação dada

Determinar as raízes de é equivalente a determinar os

pontos que intersectam as funções e .

Graficamente podemos constatar que o intervalo I=[0, 0.5] contém a menor raiz positiva.

Podemos determinar o zero de uma função ou raiz da equação 0  utilizando a

função fzero do MatLab. Para programar a função f(x) podemos utilizar a função inline na

linha de comandos ou criar e salvar a função num ficheiro externo.

>> f3 = inline(‘x.^3-5*x+1'); ou no ficheiro f3.m

>> fzero('f3', [0,0.5]) ([0, 0.5] é o intervalo onde vai ser determinado o zero)

ans =

0.201639675723405

Como a função f(x) é um polinómio de grau 3 podemos alternativamente utilizar a função

roots para determinar as raízes de um polinómio.

>> roots([1 0 -5 1]) ([1 0 -5 1] representam os 4 coeficientes do polinómio de grau 3 , 5 1)

ans =

(2)

Teorema: (condições suficientes de convergência

do método de Newton-Raphson): Seja f uma função C2

[a, b] .

Se forem satisfeitas as condições: 1) f(a) . f(b) < 0 2) f '(x) ≠ 0 , ∀ x ∈ [a, b] 3) f ‘’(x) ≠ 0 , ∀ x ∈ [a, b] 4) ( ) ) ´( ) ( a b a f a f < e ) ( ) ´( ) ( a b b f b f − <

então ∀ x0 ∈ [a, b] o método de Newton-Raphson

converge para o único zero α de f(x) em I= [a, b] .

b) Considerando como ponto inicial x0=0.1, calcule uma aproximação do

menor zero positivo da função f(x) = x

3

- 5x + 1 em [0, 0.5] pelo método de

Newton-Raphson utilizando como critério de paragem que |f(xk) | < 10

-5

.

f(x) = x3-5 x+1 Requer: f ∈ C2 ([0, 0.5]) 1) f(0) x f(0.5) < 0 f(0) = 1, f(0.5)= -1.375 2) f’(x) ≠ 0, ∀ x ∈ [0, 0.5] 3) f’’(x) ≠ 0, ∀ x ∈ [0, 0.5] f’(x)= 3 x2 – 5 < 0 ∀ x ∈ [0, 0.5] f’’(x)= 6 x > 0 ∀ x ∈ (0, 0.5]

(não muda de sinal)

4) a) 0.2 0.5 5 1 ) 0 ´( ) 0 ( < ≈ = f f e b) 5 . 0 0.3235 4.250 -1.375 -) 5 . 0 ´( ) 5 . 0 ( < ≈ = f f

Como todas as condições são satisfeitas, podemos concluir que o método de Newton-Raphson converge para a única raiz em I= [0, 0.5] tomando como solução inicial qualquer ponto x0 ∈ I.

(3)

Método de Newton-Raphson

Aproximação Inicial: x0= 0.1 Fórmula Iteradora:

,

1

,

2

,...

)

´(

)

(

1 1 1

=

=

− − −

k

x

f

x

f

x

x

k k k k

(f(x) = x3 – 5 x + 1, f’(x) = 3 x2 - 5) Critério de Paragem: |f(xk )| < 10-5

Iter. Abcissa do ponto de intersecção da tangente com o eixo x Valor da função em xk f(x) = x3 – 5 x + 1 Valor da 1ª derivada da função em xk f’(x) = 3 x2 - 5 |f(xk)| < 10-5 ? k xk f(xk) f’(xk) | f(xk) | 0 0.1 0.501 -4.97 0.501 1 0.200804828973843 0.00407282377878 -4.879032261982 0.00407283 2 0.201639589549319 0.00000042035929 -4.87802442778 0.00000042 < 0.00001 PARAR !!!  

Foram necessárias 2 iterações para aproximar a menor raiz positiva com a tolerância desejada

α ≈ 0.201639675723405

(valor calculado com a função fzero do Matlab)

x2 = 0.201639589549319 com erro absoluto:

|e 2 |= |α - x2| = 0.86174086006 x 10-7 < 0.5 x 10-6

Como 0.5 x 10-7 < |e

(4)

IMPORTANTE:

ƒ O método de Newton-Raphson tem ordem de convergência linear

se α é um zero duplo, i.e., se f’(α)=0, f’’(α) ≠ 0

ƒ O método de Newton-Raphson tem ordem de convergência quadrática

se α é um zero simples, i.e., se f’(α) ≠ 0

c) Diga, justificando qual a ordem de convergência da sequência de

iterações obtida na alinha b) para aproximar a menor raiz positiva da

equação dada

Considerando para a menor raiz positiva α o valor aproximado pelo método de Newton-Raphson x2 temos que f’(α) ≈ f’(x2) =- 4.878 ≠ 0

Como α é um zero simples de f(x) (f’(α)≠ 0), então a sucessão de aproximações {xk}

gerada pelo método de Newton-Raphson para qualquer aproximação inicial x0 em [0,

0.5] converge para α (a menor raiz positiva da equação dada) com ordem de

convergência quadrática e razão de convergência C= 0.1240:

0.5 0.2480 0.1240 8780 . 4 | 2098 . 1 2 1 ) ( ' ) ( '' 2 1 lim 12 = × = − = = = + ∞ →

α

α

f f e e C k k k

(5)

2 3 (5 1) 3 5 ) ( ' − = x x g 3 5 1 ) (x = xg

d) Encontre uma função iteradora g(x) que torne o método do ponto fixo

convergente na aproximação do menor zero positivo da função

f(x) = x

3

- 5x + 1 no intervalo [0, 0.5]

Definição: Um ponto fixo de uma função g(x) é um número real α tal que α=g (α).

Podemos encontrar uma função g(x) tal que f(x) = 0 ⇔ x = g(x)

(g(x) é chamada função iteradora )

Função iteradora para aproximar a única raiz no intervalo I=[0, 0.5] 3 3 3

1

5

)

(

1

5

0

1

5

+

=

=

=

x

x

x

g

x

x

x

Teorema: (condições de convergência do método de ponto fixo)

Seja α uma raiz da equação f(x) = 0, isolada num intervalo I=[a,b]. Seja g(x) ∈ C’(I) uma função iteradora para a equação f(x) = 0.

se:

i)

g

(I) ⊂ I (

g

(x) ∈ I, ∀ x ∈ I)

ii) 0 < M= max |

g

’(

x

)| < 1 (g é contractiva)

x

∈ I então

∀ x0 ∈ I

(6)

2 5 3 ) ( ' x x g = 5 1 ) ( 3+ = x x g

Como g'(x) não é contínua em I (para x=0.2 g'(x) está indefinida) não podemos usar esta função iteradora em I=[0, 0.5].

Temos que procurar uma outra função iteradora alternativa:

5

1

)

(

5

1

0

1

5

3 3 3

+

=

+

=

=

+

x

x

g

x

x

x

x

Graficamente verifica-se que g(x) e g'(x) são contínuas em I. Além disso:

i) g(x) ∈ [0.2, 0.225] ⊂ I=[0, 0.5], ∀ x ∈ I ii) 0 < M = max |g’(x)| < 1

Como g’(x) é monótona crescente então M= |g’(0.5) | =0.15 < 1 Então, ∀ x0 ∈ I=[0, 0.5] a fórmula iteradora definida por:

5

1

3 1

+

=

kk

x

x

; k = 1, 2, …,

(7)

5 1 ) ( 3+ = x x g

e) Considerando como ponto inicial x0=0.1, calcule uma aproximação do

menor zero positivo da função f(x) = x

3

- 5x + 1 em [0, 0.5] utilizando a

iteradora g(xk) encontrada na alinha anterior e usando como critério de

paragem |f(xk) | < 10

-5

.

Na alínea anterior foi provado que uma função iteradora g(x) convergente para aproximar a raiz em [0, 0.5] é

Método do Ponto-Fixo

Aproximação Inicial: x0= 0.1 Fórmula Iteradora:

,

1

,

2

,...

5

1

3 1

+

=

=

k

x

x

k k Critério de Paragem: |f(xk)| < 10-5 k xk = g(xk-1) |f(xk)| 0 0.1 0.501 1 0.200200000000000 0.007024024008 2 0.201604804801600 0.000170101940274 3 0.201638825189655 0.000004148924756 < 0.00001 PARAR !!!  

Foram necessárias 3 iterações para aproximar a raiz com a tolerância desejada Tomando como valor exacto, o valor obtido com a função fzero do MatLab α = 0.20163967572405 (tomando o valor obtido em MatLab com fzero)

x3 = 0.201638825189655 com erro absoluto:

|e 3 |= |α - x3| ≈ 0.85053375 x 10-6 ≤ 0.5 x 10-5

A aproximação de α encontrada pelo método do ponto fixo tem pelo menos 5 casas decimais correctas .

(8)

IMPORTANTE:

ƒ O método do ponto fixo tem convergência linear se g’(α) ≠ 0

ƒ O método do ponto fixo tem convergência quadrática se g’(α) = 0, g’’(α) ≠ 0

5 1 ) ( 3+ = x x g 2 5 3 ) ( ' x x g =

f) Diga, justificando qual a ordem de convergência da sequência de

iterações obtida pelo método do ponto fixo

Seja α o ponto fixo de em I=[0, 0.5] com

Como:

‰ g’(x) ∈ [0, 0.15] (g(x) monótona cresce em I=[0, 0.5] , g’(0)=0 e g’(0.5)=0.15) ‰ α ∈ (0, 0.5)

⇒ | g’(α) | ≠ 0

Assim, para qualquer aproximação inicial x0 próxima da raiz em [0, 0.5], a sucessão

{xk} gerada pela fórmula iteradora

,

1

,

2

,...

5

1

3 1

+

=

=

x

k

x

k

k converge para α com

ordem de convergência linear e razão de convergência C = |g’(α)|.

Considerando para a menor raiz positiva α o valor aproximado x3 temos que

!

1

)

(

1

α

g

C

=

≈ | g’(x3) | ≈ 0.2016388

(9)

5 1 ) ( 3+ = x x g 5 1 ) ( 3+ = x x g

g) Compare as aproximações obtidas e exponha as conclusões a que chegou

tendo em conta a ordem de convergência de cada método

Método Ordem de convergência

lim |e k+1| = C |ek|p k→∞ se p=1, linear se p=2, quadrática iter. Valor aproximado xk α ≈0.201639675723405

(valor obtido com a função

fzero do Matlab) Erro absoluto |e k| associado à aproximação obtida Newton Raphson

linear se zero duplo (f’(α)=0, f’’(α)≠0)

quadrática se zero simples (f’(α)≠0)

Como o zero que

corresponde à menor raiz positiva é simples então a

convergência é quadrática

com razão de convergência

0.1240 ) ( ' ) ( '' 2 1 = α α f f C (tomando como α a

aproximação x2 obtida pelo

método de N-R) Assim, para k=1,2,…: 2 1 0.1240 k k e e + ≈ × 2 x2=0.20163958954931 |e 2| ≤ 0.5 x 10-6 (6 casas decimais correctas) Ponto Fixo x=g(x) linear se g’(α) ≠0 quadrática se g’(α)=0, g’’(α) ≠0 usando a função iteradora

como |g’(α)| ≠ 0, então a convergência é linear com razão de convergência 0.2016 ) ( 1 = g α C (tomando como α a aproximação x3 obtida pelo

método do ponto fixo) Assim, para k=1,2,…: k k

e

e

+1

0.2016

×

3 x3=0.20163882518966 |e 3| ≤ 0.5 x 10-5 (5 casas decimais correctas)

Como neste exemplo o método de N-R tem convergência quadrática e o do ponto fixo (com a função iteradora aqui usada) tem convergência linear, a sucessão gerada pelo método de N-R converge mais rapidamente para a menor raiz positiva da equação dada.

5 1 ) ( 3+ = x x g

(10)

function [y, y1] = f3(x) y = x.^3-5*x+1;

y1= 3*x.^2-5;

function [y, y1] = f3(x)

y = polyval([1,0,-5,1], x); y1= polyval([3,0,-5], x);

function [y, y1] = f3(x)

y = polyval([1,0,-5,1], x); y1= polyval([3,0,-5], x);

Implementação em MatLab

Considerando como ponto inicial x0=0.1, calcule uma aproximação do menor

zero positivo da função f(x) = x

3

- 5x + 1 em [0, 0.5] pelo método de

Newton-Raphson utilizando como critério de paragem que |f(xk) | < 10

-5

.

Em Matlab podemos implementar o método de Newton utilizando a rotina newton1

do pacote de MN:

>> newton1('f3', 0.1, 0, 10^-5, 20)

A função f3 deve retornar os valores de y(x) e de y’(x). No caso de funções polinomiais é melhor utilizar a função polyval

Podemos também implementar duas iterações do método de Newton a partir da aproximação inicial x0=0.1 através deste simples programa (script) em Matlab:

A função f3 deve retornar os valores de y(x) e de y’(x).

Ao executar o programa anterior obtemos format long; x0=0.1; [y, dy]=f3(x0); x1=x0-y/dy [y, dy]=f3(x1); x2=x1-y/dy x1 = 0.200804828973843 x2 = 0.201639589549319

(11)

e) Considerando como ponto inicial x0=0.1, calcule uma aproximação do

menor zero positivo da função f(x) = x

3

- 5x + 1 em [0, 0.5] de tal forma que

|f(xk) | < 10

-5

utilizando a iteradora convergente

,...

2

,

1

,

5

1

3 1

+

=

=

x

k

x

k k

Implementação na Linha de Comandos

Implementação construindo um programa (script) em Matlab

Podemos também construir um script em MatLab que nos permita determinar todas as aproximações utilizando o critério de paragem |f(xk)| < 10-5

>> g=inline('(x.^3+1)/5'); >> x0=0.1; >> x1=g(x0) x1 = 2.117911792127447 >> x2=g(x1) x2 = 2.124546354697556 >> x3=g(x2) x3 = 2.126993323960139 % dados de entrada f=inline('x.^3-5*x+1'); g=inline('(x.^3+1)/5'); x=0.1; tol=1e-5 % processo iterativo for k=1:1000 x=g(x); if (abs(f(x))< tol)

break; % foi satisfeito o critério de paragem

end

end

display('A aproximação encontrada é'); x

(12)

Para visualizar todas as aproximações, basta apenas enviar uma mensagem com o comando display após de ser calculada cada aproximação.

Implementação construindo a nossa própria função

Para que este algoritmo possa ser utilizado com outras funções f e g e outros dados, podemos construir uma função em MatLab com os seguintes parâmetros de entrada:

a função f(x)

a função iteradora g(x)a solução inicial x0

a tolerância desejada (segundo o o critério |f(x

k) | < 10-5

o número máximo de iterações kmax

e que como saída retorne o valor da aproximação encontrada. % dados de entrada f=inline('x.^3-5*x+1'); g=inline('(x.^3+1)/5'); x=0.1; tol=1e-5 % processo iterativo for k=1:1000 x=g(x);

display(['x(', num2str(k),')= ', num2str(x,8)]);

if (abs(f(x))< tol)

break; % foi satisfeito o critério de paragem

end

end

display('A aproximação encontrada é'); x

function x = pfixo(f, g, x0, tol, kmax)

x=x0;

for k=1:kmax x=g(x);

display(['x(', num2str(k),')= ', num2str(x,8)]);

if (abs(f(x))< tol)

break; % foi satisfeito o critério de paragem

end

end

if (k==kmax & f(x)>=tol)

disp('O ponto fixo não foi encontrado com a tolerância

desejada.')

else

display('A aproximação encontrada é'); x

(13)

Uma vez construída a função, esta deve ser guardada num ficheiro com o mesmo nome, pfixo.m. Depois, pode ser chamada para execução na janela do comando do MatLab:

Como resultado obtém-se:

Implementação utilizando a função pontofixo do pacote de rotinas de MN

A função pontofixo pode ser chamada para execução na janela do comando do MatLab: >> f=inline('x.^3-5*x+1'); >> g=inline('(x.^3+1)/5'); >> pfixo(f,g,0.1,1e-5,1000) x(1)= 0.2002 x(2)= 0.2016048 x(3)= 0.20163883 A aproximação encontrada é x = 0.201638825189655 >> f=inline('x.^3-5*x+1'); >> g=inline('(x.^3+1)/5'); >> pontofixo(f,g,0.1,1e-5,1000)

Referências

Documentos relacionados

E perceberás, então, como o Cristo fustigado na cruz, que os teus mais acirrados perseguidores são apenas crianças de curto entendimento e de

Considera-se que a interdisciplinaridade contribui para uma visão mais ampla do fenômeno a ser pesquisado. Esse diálogo entre diferentes áreas do conhecimento sobre

Quando entramos em Deus por meio da oração a fim de permanecer Nele, recebemos o Espírito Santo como nosso suprimento de vida (representado pelos pães, o peixe e o ovo), de maneira

Código Descrição Atributo Saldo Anterior D/C Débito Crédito Saldo Final D/C. Este demonstrativo apresenta os dados consolidados da(s)

num ritmo aproximado de uma flexão em cada 3 segundos, partindo da posição facial, mantendo o corpo em extensão, atingindo ou ultrapassando o nível de prestação definido (

A partir dos estudos empíricos será possível (re)conhecer comportamentos de recusa e rejeição por parte de mulheres pentecostais, pois as práticas femininas de

Principais mudanças na PNAB 2017  Estratégia Saúde da Família/Equipe de Atenção Básica  Agentes Comunitários de Saúde  Integração da AB e Vigilância 

Identificar a língua espanhola como instrumento de acesso a informações, a outras culturas e grupos sociais com foco na área de Recursos Humanos.. Aplicar