• Nenhum resultado encontrado

FP3 - Ex 3) Dada a equação

N/A
N/A
Protected

Academic year: 2019

Share "FP3 - Ex 3) Dada a equação"

Copied!
12
0
0

Texto

(1)

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

FP3 - Ex 3) Dada a equação     , verifique graficamente e com a ajuda do método da bissecção que as três raízes da equação estão perto de 2.35, 0.20 e 2.10.

>> fp3_ex3 (-2.5, 2.5)

Determinar as raízes de é equivalente a determinar os pontos que intersectam as funções e .

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)

Determinar aproximações das raízes da equação linear x3 = 5x-1 usando o método da bissecção com erro absoluto inferior a ε = 10-5.

ƒ Para aproximar r1

I1=[-2.5, -2]

>> y1 = f3(-2.5)

y1 = -2.12500000000000 >> y2 = f3(-2)

y2 = 3

Como f(-2.5) * f(-2) < 0 e f’(x)= 3 x2 – 5 > 0 x I

1 então r1 é o único zero em I1.

Podemos usar o método da bissecção para determinar uma aproximação de r1 em I1.

>> bissec('f3', -2.5,-2, 10^-5, 20)

Após 16 iterações, obtemos

r1 ≈x16 = -2.3300552368164 com | e(x16) | < 0.7629394531 x 10-5 < ε = 1 x 10-5

Como | e(x16) | < 0.7629394531 x 10-5 < 0.5 x 10-4

esta aproximação da raiz r1 ∈ I1 tem pelo menos 4 casas decimais correctas.

r1 = - 2.330058739567982 (tomando como valor exacto o valor calculado com a função fzero)

x16 = -2.3300552368164

Podemos constatar que as 4 primeiras casas decimais da aproximação encontrada resultam de um arredondamento correctamente efectuado sobre r1.

(a quinta casa decimal da aproximação x16 se for obtida por um arredondamento correcto seria 6 e não 5).

ƒ

Para aproximar r

2

I

2

=[0, 0.5]

>> y1 = f3(0)

y = 1 (valor da função f(x)=x3 – 5 x + 1) >> y2 = f3(0.5)

y = -1.37500000000000

Como f(0) * f(0.5) < 0 e f’(x)= 3 x2 – 5 < 0 x I

2 então r2 é o único zero em I2.

Podemos usar o método da bissecção para determinar uma aproximação de r2 em I2.

>> bissec('f3', 0, 0.5, 10^-5, 20)

Após 16 iterações, obtemos

r2 ≈x16 = 0.20163726806641 com | e(x16) | < 0.7629394531 x 10-5 < ε = 1 x 10-5

Como | e(x16) | < 0.7629394531 x 10-5 < 0.5 x 10-4

Seja f(x) uma função contínua num intervalo I=[a , b].

(1) Se f(a) f(b) <0 então existe pelo menos um zero α em I

(2) Se f’(x) existir e preservar o sinal em ]a , b[, então α é o

(3)

r2 = 0.201639675723405 (calculado com a função fzero do MatLab) x16 = 0.20163726806641

Podemos constatar que as 4 primeiras casas decimais da aproximação encontrada resultam de um arredondamento correctamente efectuado sobre r2.

(a quinta casa decimal da aproximação x16 se for obtida por um arredondamento correcto seria 4 e não 3).

ƒ Para aproximar r3 I3=[2, 2.5]

>> y1 = f3(2) y = -1

>> y2 = f3(2.5) y = 4.125

Como f(2) * f(2.5) < 0 e f’(x)= 3 x2 – 5 > 0 x I

3 então r3 é o único zero em I3.

Podemos usar o método da bissecção para determinar uma aproximação de r3 em I3.

>> bissec('f3', 2, 2.5, 10^-5,20)

Após 16 iterações, obtemos

r3 ≈x16 = 2.1284255981445 com | e(x16) | < 0.7629394531 x 10-5 < ε = 1 x 10-5

Como | e(x16) | < 0.7629394531 x 10-5 < 0.5 x 10-4

esta aproximação da raiz r3 ∈ I3 tem pelo menos 4 casas decimais correctas.

r3 = 2.1284190638446 (calculado com a função fzero do MatLab)

x16 = 2.1284255981445

(4)

2 3(5 1)

3 5 )

( '

− =

x x

g

) 1 5 ( )

(x =3 xg

a) Encontre, para cada raiz, uma função iteradora g que torne o método do ponto fixo convergente. Justifique.

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 )

I. Função iteradora para aproximar a única raiz de f(x) em I

1

= [-2.5, -2]

3 3

3

1

5

)

(

1

5

0

1

5

+

=

=

=

x

x

x

g

x

x

x

>> fp3_ex3_a_1(-2.5, -2)

Graficamente verifica-se que g(x) e g'(x) são contínuas em I1. Além disso: i) g(x) ⊂ I1=[-2.5, -2], ∀ x ∈ I1

ii) 0 < M = max |g’(x)| < 1

Como g’(x) é monótona crescente, então M= | g’(-2) | ≈ 0.337 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 ( i.e.

g

(x) ∈ I, ∀x∈ I)

ii) 0 < M= max |

g

’(

x

)| < 1

x

∈ I

então

x

0

I

(5)

>> [y, y1]=f3_it_1(-2.5) y =

-2.3811 % g(x) y1 =

0.2940 % g’(x)

>> [y, y1]=f3_it_1(-2) y =

-2.2240 % g(x) y1 =

0.3370 % g’(x)

3 5 1

)

(x = x

g

Então, ∀ x0 ∈ I1 a fórmula de iteração definida por

x

k

=

3

5

x

k−1

1

,

k = 1, 2, … converge para a única raiz da equação f(x)=0 existente em I1=[-2.5, -2].

Podemos também verificar as condições de convergênciaanaliticamente:

3 5 1

)

(x = x

g ,

2 3 (5 1)

3 5 )

( '

− =

x x

g , I1 = [-2.5, -2]

Podemos constatar pelas expressões de g(x) e g'(x) que ambas as funções são contínuas em I1=[-2.5, -2].

Verificando condições i) e ii):

i) g(x)

I1,

x

I1

Como g'(x) > 0 ∀ x ∈ I1 ⇒ g(x) é monótona crescente em I1

Por outro lado, g(-2.5) = -2.3811 e g(-2.0) = -2.2240

⇒ g(x) ⊂ I1 = [-2.5, -2] ∀ x ∈I1

ii) 0 < M = max |g’(x)| < 1

g'(x) monótona cresce em I1

( h(x) = (5x-1)2 é monótona decrescente em I

1 (h’(x)= 50x -10 < 0 ∀ x ∈ I1) e

3 h(x)mantém o sinal, pelo que

3 ( )

1

x h

resulta numa função monótona crescente)

Por outro lado, g'(-2.5) = 0.2940 e g'(-2.0) = 0.3370

⇒ 0 < M = max | g'(x) | = | g'(-2.0) | ≈ 0. 3370 < 1

x

0

I1

=[-2.5, -2]

a fórmula de iteração definida por

x

k

=

3

5

x

k−1

1

,

k = 1, 2, …

converge para a única raiz existente emI1.

II. Função iteradora para aproximar a única raiz de f(x) em I

2

= [0, 0.5]

>> fp3_ex3_a_1(0, 0.5)

2 3 (5 1)

3 5 )

( '

− =

x x

(6)

2

5

3

)

(

'

x

x

g

=

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

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

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

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

Como g’(x) é monótona crescente, então M= |g’(0.5) | ≈ 0.15 Então, ∀ x0 ∈ I2 a fórmula de iteração definida por:

5

1

3

1

+

=

k

k

x

x

, k = 1, 2, ….

converge para a única raiz existente em I2=[0, 0.5].

5

1

)

(

5

1

0

1

5

3

3 3

+

=

+

=

=

+

x

x

g

x

x

x

(7)

III. Função iteradora para aproximar a única raiz de f(x) em I

3

= [2, 2.5]

>> fp3_ex3_a_2(2, 2.5)

5

1

)

(

3

+

=

x

x

g

2

5

3

)

(

'

x

x

g

=

Não podemos considerar esta função de iteração pois g’(x)>1 ∀ x I3.

Voltamos a considerar a 1ª função de iteração:

>> fp3_ex3_a_1(2, 2.5)

g(x)=3 5x1

2 3 (5 1)

3 5 )

( '

− =

x x

g

Graficamente verifica-se que g(x) e g'(x) são contínuas em I3. Além disso: i) g(x) ⊂ I3, ∀ x ∈ I3

ii) 0 < M = max |g’(x)| < 1

(8)

>> [y, y1]=f3_it_1(2) y =

2.0801 % g(x) y1 =

0.3852 % g’(x)

>> [y, y1]=f3_it_1(2.5) y =

2.2572 y1 =

0.3271

Podemos também verificar as condições de convergênciaanaliticamente:

3 5 1

)

(x = x

g ,

2 3 (5 1)

3 5 )

( '

− =

x x

g , I3 = [2, 2.5]

Podemos constatar pelas expressões de g(x) e g'(x) que ambas as funções são contínuas em I3.

Verificando condições i) e ii):

i) g(x)

I3,

x

I3

Como g'(x) > 0 ∀ x ∈ I3 ⇒ g(x) é monótona crescente em I3.

Por outro lado, g(2) = 2.0801 e g(2.5) = 2.2572

⇒ g(x) ⊂ I3 = [2, 2.5] ∀ x ∈I3

ii) 0 < M = max |g’(x)| < 1

g'(x) monótona decresce em I

( h(x) = (5x-1)2 é monótona crescente em I3 (h’(x)= 50x -10 > 0 ∀ x ∈ I3)

e 3 h(x)mantém o sinal, pelo que

3 ( )

1

x h

resulta numa função monótona decrescente)

Por outro lado, g'(2) = 0.3852 e g'(2.5) = 0.3271

⇒ 0 < M = max | g'(x) | = | g'(2.0) | ≈ 0. 385 < 1

x

0

I3 a fórmula de iteração definida por

x

k

=

3

5

x

k−1

1

,

k = 1, 2, … converge

(9)

b) Considerando x0=2.10, execute 10 iterações do método do ponto fixo

usando uma iteradora xk = g(xk-1) convergente, e diga, justificando qual a

ordem de convergência da sequência de iterações obtida.

Pretende-se aproximar a raiz r3∈ I3=[2, 2.5] da equação    5 1 pelo método do ponto

fixo

Aproximação Inicial: x0= 2.10

Fórmula Iteradora: 3

1

1

)

5

1

(

=

=

k k

k

g

x

x

x

, k

= 1, 2, …

(na alinha anterior foi provada a convergência desta iteradora) Critério de Paragem: k_max = 10

k xk = g(xk-1) |f(xk)|

0 2.1 0.238999999999999

1 2.11791179212745 0.089558960637234

2 2.12454635469756 0.033172812850546

3 2.12699332396014 0.012234846312916

4 2.12789439916539 0.004505376026243

5 2.12822602012021 0.001658104774124

6 2.12834803992282 0.000610099013032

7 2.12839293354130 0.000224468092405

8 2.12840945035895 0.000082584088268

9 2.12841552699921 0.000030383201306

10 2.12841776262435 0.000011178125664  

r3 = 2.1284190638446 (calculado com a função fzero do MatLab)

r3 ≈x16 = 2.1284255981445 com |e(x16)| = |r3 - x16| < 0.8 x 10-5 < 0.5 x 10-4 (Bissecção) r3 ≈x10 = 2.1284177626243 com |e(x10)| = |r3 - x10| ≈ 0.1 x 10-5 < 0.5 x 10-5 (PontoFixo)

A aproximação de r3 encontrada pelo método do ponto fixo é melhor pois com menos iterações (10 vs. 16) foi determinada uma aproximação com pelo menos 5 casas decimais correctas

(10)

>> [y, y1]=f3_it_1(2.12841776262435)

y =

2.128418585120388 y1 =

0.367904131281848

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 Diga, justificando qual a ordem de convergência da sequência de iterações obtida.

Seja α o ponto fixo de g(x)=3 5x1 em I

3 = [2, 2.5].

Como g’(x) monótona decresce em I3

g'(2) = 0.3852, g'(2.5) = 0.3271 e por outro lado α∈ I3= [2, 2.5]

então | g’(α) | ≠ 0

⇒ a convergência é linear.

Assim, a sucessão {xk} gerada pela fórmula iterativa

x

k

=

3

5

x

k−1

1

,

k = 1, 2,… com

aproximação inicial x0 = 2.1 converge para α com ordem de convergência linear sendo a

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

Considerando para raiz αo valor aproximado de x10 temos que

c = | g’(x10) | ≈ 0.3679

Isto quer dizer que quando

k

:

e

k+1

0.3679

×

e

k

c) Indique estimativas, a priori e a posteriori, para o erro absoluto da aproximação x7 obtida na alínea anterior.

ƒ 1 0

1

L

x

x

L

x

e

k

k

k

=

α

- estimativa

a priori

para |ek |

ƒ 1

1

=

k k k

k

x

x

L

L

x

e

α

- estimativa

a posteriori

para |ek |

onde

max

[ ]

|

'

(

)

|

,

g

x

L

b a x

(11)

Tem-se que: 1 1 0

1

1

L

x

x

L

x

x

L

L

x

k k k k

α

Para g(x)=3 5x1,

2 3 (5 1)

3 5 ) ( ' − = x x

g , I3 = [2, 2.5]:

ƒ

L

0.3852 < 1

(o máximo de g’(x) se atinge quando x=2)

ƒ | x1 – x0 | = | 2.11791179212745 - 2.1 | = 0.01791179212745

ƒ | x7 – x6 | = | 2.12839293354130 - 2.12834803992282 | = 0.44893618480036 x 10-4

então:

ƒ Estimativa a priori para |e7 | : 1 0 7

7

1

L

x

x

L

x

α

0.36619 x 10-4

ƒ Estimativa a posteriori para |e7 | : 7 7 6

1

L

x

x

L

x

α

≈ 0.28128 x 10-4

d) Indique um conjunto de comandos em MatLab que considerando x0=2.10, permita executar 10 iterações do método do ponto fixo usando a iteradora

(

)

5

1

,

1

,

2

,...,

3

1

1

=

=

=

g

x

x

k

x

k k k .

para aproximar a raiz r3∈ I3=[2, 2.5] da equação    5 1.

Implementação em MatLab

• Implementação na Linha de Comandos

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

k xk = g(xk-1) |f(xk)|

0 2.1 0.238999999999999 1 2.11791179212745 0.089558960637234 2 2.12454635469756 0.033172812850546 3 2.12699332396014 0.012234846312916 4 2.12789439916539 0.004505376026243 5 2.12822602012021 0.001658104774124 6 2.12834803992282 0.000610099013032 7 2.12839293354130 0.000224468092405 8 2.12840945035895 0.000082584088268 9 2.12841552699921 0.000030383201306 10 2.12841776262435 0.000011178125664

  >> g=inline('(5*x-1).^(1/3)'); >> x0=2.1 >> x1=g(x0) x1 = 2.117911792127447 >> x2=g(x1) x2 = 2.124546354697556 >> x3=g(x2) x3 = 2.126993323960139 >> x4=g(x3) x4 = 2.127894399165388 >> x5=g(x4) x5 = 2.128226020120213 >> x6=g(x5) x6 =

2.128348039922820 >> x7=g(x6) x7 = 2.128392933541300 >> x8=g(x7) x8 = 2.128409450358953 >> x9=g(x8) x9 = 2.128415526999214 >> x10=g(x9) x10 = 2.128417762624346 g=inline('(5*x-1).^(1/3)'); x=2.1; for i=1:10 x=g(x); end

(12)

Ao executar o programa anterior obtemos

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

Ao executar o novo programa obtemos todas as aproximações com 8 casas decimais:

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

Nota: para obter a raiz real de um número real negativo "x", em vez de executar: x.^(1/3) devemos utilizar sign(x).*abs(x.^(1/3)). A raiz retornada pelo operador ^ do MatLab é a raiz complexa com o menor ângulo de fase.

Após 10 iterações a aproximação encontrada é

x =

2.128417762624346

g=inline('(5*x-1).^(1/3)'); x=2.1;

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

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

display('Após 10 iterações a aproximação encontrada é'); x

x(1)= 2.1179118 x(2)= 2.1245464 x(3)= 2.1269933 x(4)= 2.1278944 x(5)= 2.128226 x(6)= 2.128348 x(7)= 2.1283929 x(8)= 2.1284095 x(9)= 2.1284155 x(10)= 2.1284178

Após 10 iterações a aproximação encontrada é x =

2.128417762624346

>> f=inline('x.^3-5*x+1');

>> g=inline('sign(5*x-1).*abs((5*x-1).^(1/3))');

Referências

Documentos relacionados

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..

Pelo menos nas cartas de Paulo temos argumentos suficientes para dizer que não são cartas pessoais, mas que, com a exceção de Filemom, se trata de cartas

Os depósitos da gruta dos Buracos podem resultar da lexiviação ácida de piroclastos e rochas basálticas, por água de precipitação/escorrência acidificada por

No entanto, conhecendo a realidade brasileira de falta de profissi- onais para se trabalhar o atendimento educacional especializado com es- ses educandos, nas suas três

[r]

One of the main strengths in this library is that the system designer has a great flexibility to specify the controller architecture that best fits the design goals, ranging from

§8- O aumento das horas extras acima da jornada normal de trabalho, será determinado pela empresa, assim como a redução do trabalho, e as horas objeto de compensação não

Foi realizada também uma simulação da aplicação da metodologia proposta para estimar os benefícios ambientais através das compensações financeiras do Programa “Produtor de