introdução aos métodos numéricos -...

Post on 10-Oct-2019

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução aos Métodos Numéricos

Instituto de Computação UFFDepartamento de Ciência da Computação

Otton Teixeira da Silveira Filho

Conteúdo temático

● Zeros de Função

Conteúdo específico

● Aspectos básicos sobre zeros de função

● Métodos de partição

Método da bissecção

Critério de parada

Zeros de função

Suponha que, por algum motivo, necessitamos de determinar onde uma função se anula

f (x)=0

Zeros de função

Parece que a solução é simples: basta achar a função inversa da função e a calcular em zero

x=f −1(0)

Zeros de função

Parece que a solução é simples: basta achar a função inversa da função e a calcular em zero

Pena que achar a inversa de uma função não seja uma coisa simples em geral

x=f −1(0)

Zeros de função

Parece que a solução é simples: basta achar a função inversa da função e a calcular em zero

Pena que achar a inversa de uma função não seja uma coisa simples em geral

Sem contar que podemos ter a função anulando em mais de um ponto, como na figura que mostramos...

x=f −1(0)

Zeros de função

Mas em que situações necessitaríamos determinar os pontos uma função se anula?

● Determinação de máximos de funções

Zeros de função

Mas em que situações necessitaríamos determinar os pontos uma função se anula?

● Determinação de máximos de funções

● Apresentação realística de contato entre objetos em computação gráfica (animações, etc.)

Zeros de função

Mas em que situações necessitaríamos determinar os pontos uma função se anula?

● Determinação de máximos de funções

● Apresentação realística de contato entre objetos em computação gráfica (animações, etc.)

● Determinação de níveis de energia em simulações

● Etc.

Zeros de função

Existe um conjunto de funções das quais sabemos algo sobre o ponto no qual elas se anulam como os polinômios.

Zeros de função

Existe um conjunto de funções das quais sabemos algo sobre o ponto no qual elas se anulam como os polinômios.

Se um polinômio de grau n sabemos que terá n pontos onde se anulará, seja no eixo real ou no plano complexo

Mesmo aqui temos problemas

Zeros de função

● Sabemos fórmulas algébricas para polinômios de grau até 4.

Zeros de função

● Sabemos fórmulas algébricas para polinômios de grau até 4.

● Deste grau para cima é demonstrável que não existem fórmulas algébricas para o caso geral, apenas para casos particulares.

Zeros de função

● Sabemos fórmulas algébricas para polinômios de grau até 4.

● Deste grau para cima é demonstrável que não existem fórmulas algébricas para o caso geral, apenas para casos particulares.

● Usar o recurso de dividir polinômios é numericamente instável...

Zeros de função

Mas o que fazer se as equações forem como estas?

Existem pontos onde se anulam?

e x−3 cos x=0 ;cos x−sen2 x+

32=0 ;∫

0

xsen tt

dt−x+1=0

Zeros de função

Mas o que fazer se as equações forem como estas?

Existem pontos onde se anulam?

Se tem, quantos?

e x−3 cos x=0 ;cos x−sen2 x+

32=0 ;∫

0

xsen tt

dt−x+1=0

Zeros de função

Mas o que fazer se as equações forem como estas?

Existem pontos onde se anulam?

Se tem, quantos?

Como achar estes pontos?

e x−3 cos x=0 ;cos x−sen2 x+

32=0 ;∫

0

xsen tt

dt−x+1=0

Zeros de função

Diremos que determinar onde funções se anulam está em determinarmos os zeros destas funções

Zeros de função

Diremos que determinar onde funções se anulam está em determinarmos os zeros destas funções

O termo “raízes“ é mais adequado aos pontos onde polinômios se anulam

Zeros de função

Mudaremos a visão do problema

No lugar de termos um problema com n zeros, vamos transformar este problema em n problemas de um zero a determinar

Zeros de função

Mudaremos a visão do problema

No lugar de termos um problema com n zeros, vamos transformar este problema em n problemas de um zero a determinar

Faremos isto isolando cada zero num determinado intervalo que o contém...

Zeros de função

...como na figura abaixo

Zeros de função

Escolhamos um zero

Zeros de função

Escolhamos um zero

Como sabemos que há um

zero no intervalo (A,B)?

Zeros de função

Escolhamos um zero

Como sabemos que há um

zero no intervalo (A,B)?

Se a função f(x) for

diferenciável no intervalo

então f (A ) f (B)<0

Zeros de função

Na grande maioria das vezes não temos o gráfico da função e nem nos interessa ter um gráfico!

Queremos o zero da função

Pergunta:

● O teste que fizemos anteriormente sempre funcionará?

Zeros de função

Isolar raizes em geral não é simples, precisamos ter um estudo minimamente aprofundado da função

Zeros de função

Isolar raizes em geral não é simples, precisamos ter um estudo minimamente aprofundado da função

...e muitas vezes a função é tão complexa que temos dificuldade em isolar mas raizes, ou seja,

podemos cometer erros.

Zeros de função – Zeros múltiplos

Observe a figura:

Se escolhermos isolar o zero no intervalo teremos um problema com nosso teste. Ele dirá que não há nenhum zero no intervalo. De fato há dois zeros!

[1/2,3 /2]

Zeros de função – Zeros múltiplos

A função na figura é da função que tem como zeros os valores 1 e 2, sendo 1 uma raiz dupla.

Diremos que:

● x = 1 é zero de multiplicidade 2

● x = 2 é zero de multiplicidade 1 ou um zero simples

−x3+4 x2

−5 x+2

Zeros de função – Zeros múltiplos

Observe agora a figura:

Se escolhermos isolar o zero no intervalo não teremos um problema com nosso teste. Mas aqui há três zeros!

[1/2,3 /2]

Zeros de função – Zeros múltiplos

A função desta figura é da função que tem como zeros o valores 1 que é um zero triplo.

Diremos que:

● x = 1 é zero de multiplicidade 3.

−x3+3 x2

−3 x+1

Zeros de função – Zeros múltiplos

Podemos generalizar estes exemplo observando que:

● Se uma função tiver um zero de multiplicidade par o nosso teste falhará

● Se uma função tiver um zero de multiplicidade impar o nosso teste funcionará mas indicará menos zeros do que os existentes

Zeros de função – Zeros múltiplos

Generalizando mais ainda, temos que:

Se uma função tiver um zero R de multiplicidade n então não só a função se anulará em R como também se anularão em R suas n-1 derivadas

Experimente isto com as funções apresentadas

Zeros de função

Partiremos agora do suposto que fizemos uma boa análise da função de nosso interesse e sabemos que isolamos um zero simples, ou seja, que o zero não é múltiplo.

Assim nosso teste valerá e nos dará um método útil de determinarmos zeros de função

Zeros de função

Apresentaremos um método da categoria de Métodos de Partição, ou seja, métodos que sucessivamente obtém subintervalos que contém a solução do problema

Método da bissecção

Este método começa por acharmos o ponto médio do intervalo, ou seja,

X=A+B

2

Método da bissecção

Como o zero se encontra entre A e B, temos que este zero se encontra no intervalo (A,X] ou no intervalo [X,B).

Usaremos o teste

Se f (A ) f (X )<0 ; R∈(A , X )

Método da bissecção

Como o zero se encontra entre A e B, temos que este zero se encontra no intervalo (A,X] ou no intervalo [X,B).

Usaremos o teste

Se

Se

f (A ) f (X )<0 ; R∈(A , X )

f (A ) f (X )>0 ; R∈(X ,B)

Método da bissecção

Feito isto faremos

Se

Se

Novamente calculamos

para o novo A ou B. A figura ficará...

f (A ) f (X )<0 ; R∈(A , X );B← X

f (A ) f (X )>0 ; R∈(X ,B); A← X

X=A+B

2

Método da bissecção

Novamente faremos o teste

com uma pequena

modificação

Método da bissecção

Se

Isto é necessário pois não temos como prever o comportamento da função em X

f (A ) f (X )<0 ; R∈(A , X );B←X

f (A ) f (X )>0 ; R∈(X ,B); A←X

f (A ) f (X )=0; R=A ou R=X

Método da bissecção

Calculando

X=A+B

2

Método da bissecção

Resumo do que fizemos

Método da bissecção

Seja f(x) diferenciável em [A, B]. Tenhamos f(A)

I) Calcule

II) Se

III) Se o critério de parada não for satisfeito, retorne a I

f (A) f (X )<0 ;R∈(A , X );B←Xf (A) f (X )>0 ;R∈(X ,B); A←Xf (A ) f (X )=0 ;R=A ou R=X

X=A+B

2e f (X )

Método da bissecção

No momento não abordaremos o critério de parada

Método da bissecção – Um exemplo

Determine aproximações para o ponto onde a função abaixo se anula no semi-eixo positivo.

e x−3 cos x

Método da bissecção – Um exemplo

Determine aproximações para o ponto onde a função abaixo se anula no semi-eixo positivo.

Isto significa que queremos resolver a equação abaixo

e x−3 cos x

e x−3 cos x=0

Zeros de função

O primeiro obstáculo é localizar o zero dentro de um intervalo. Isto pode ser feito por

● Um estudo da natureza do problema

Zeros de função

O primeiro obstáculo é localizar o zero dentro de um intervalo. Isto pode ser feito por

● Um estudo da natureza do problema

● Um estudo exploratório

Zeros de função

O primeiro obstáculo é localizar o zero dentro de um intervalo. Isto pode ser feito por

● Um estudo da natureza do problema

● Um estudo exploratório

O estudo da natureza do problema é o melhor e exige boa compreenção do que estamos fazendo

Zeros de função

Aqui olharemos para o problema como a intersecção entre duas curvas, ou seja,

e x−3 cos x=0

Zeros de função

Aqui olharemos para o problema como a intersecção entre duas curvas, ou seja,

e conhecemos bem estas duas funções.

e x−3 cos x=0⇒ ex

=3 cos x

Zeros de função

Aqui olharemos para o problema como a intersecção entre duas curvas, ou seja,

e conhecemos bem estas duas funções.

Já que é assim, façamos um esboço destas duas funções no semi-eixo positivo, lembrando que cosseno atinge o primeiro valor zero em π/2

e x−3 cos x=0⇒ ex

=3 cos x

Zeros de função

Esboço do ponto de intersecção

e x=3 cos x

Zeros de função

Esboço do ponto de intersecção

É fácil de perceber que existe um

ponto entre 0 e 1 na qual e

se intersectam, ou seja,

a nossa função tem um zero em

[0,1]

e x=3 cos x

ex

3cos(x)

Zeros de função

Verifiquemos... f (x)=ex−3 cos x

f (0)=e0−3 cos 0=1−3=−2

f (1)=e1−3 cos1=2,7182818−3×0,540302=1,097374

Zeros de função

Verifiquemos...

Temos a confirmação que há um zero neste intervalo

f (x)=ex−3 cos x

f (0)=e0−3 cos 0=1−3=−2

f (1)=e1−3 cos1=2,7182818−3×0,540302=1,097374

Zeros de função

Verifiquemos...

Temos a confirmação que há um zero neste intervalo

Apliquemos o Método da Bissecção fazendo A=0, B=1

f (x)=ex−3 cos x

f (0)=e0−3 cos 0=1−3=−2

f (1)=e1−3 cos1=2,7182818−3×0,540302=1,097374

Método da bissecção – Um exemplo

Agora continuando...

f (x)=ex−3 cos x

f (X )= f ( 12 )=e1/2

−3 cos12=−0,984026

X=A+B

2=

0+12

=12

f (A )=−2

f (A ) f (X )>0 ; A←X

A=12

e f (A )=−0,984026

Método da bissecção – Um exemplo

Agora continuando...

f (x)=ex−3 cos x

f (X )= f ( 34 )=e3/4

−3 cos34=−0,078066

X=A+B

2=

1 /2+12

=34

f (A ) f (X )>0 ; A←X

A=34

e f (A )=−0,078066

f (A )=−0,984026

Método da bissecção – Um exemplo

Agora continuando...

f (x)=ex−3 cos x

f (X )= f ( 78 )=e7 /8

−3 cos78=0,475884

X=A+B

2=

3/4+12

=78=0,875

f (A ) f (X )<0 ;B←X

B=78

e f (B)=0,475884

f (A )=−0,078066

Método da bissecção – Um exemplo

Agora

f (x)=ex−3 cos x

f (X )= f ( 1316 )=e13 /16

−3 cos1316

=0,190478

X=A+B

2=

3/4+7 /82

=1316

=0,8125

f (A ) f (X )<0 ;B←X

B=1316

f (A )=−0,078066

Método da bissecção – Um exemplo

Agora paremos por aqui...

f (x)=ex−3 cos x

f (X )= f ( 1316 )=e13 /16

−3 cos1316

=0,190478

X=A+B

2=

3/4+7 /82

=1316

=0,8125

f (A ) f (X )<0 ;B←X

B=1316

f (A )=−0,078066

Método da bissecção – Um exemplo

Resumindo temos a seguinte progressão

R∈[0,1]⇒R∈[ 12 ,1 ]

Método da bissecção – Um exemplo

Resumindo temos a seguinte progressão

R∈[0,1]⇒R∈[ 12 ,1 ]⇒R∈ [ 34,

1 ]

Método da bissecção – Um exemplo

Resumindo temos a seguinte progressão

R∈[0,1]⇒R∈[ 12 ,1 ]⇒R∈ [ 34,

1 ] ⇒R∈[ 34,

78 ]

Método da bissecção – Um exemplo

Resumindo temos a seguinte progressão

ou na última avaliação R∈[0,75 ;0,8125 ]

R∈[0,1]⇒R∈[ 12 ,1 ]⇒R∈ [ 34,

1 ] ⇒R∈[ 34,

78 ]⇒R∈[ 3

4,1316 ]

Método da bissecção – Um exemplo

Resumindo temos a seguinte progressão

ou na última avaliação

Temos uma progressão mas como ela se dá?

R∈[0,75 ;0,8125 ]

R∈[0,1]⇒R∈[ 12 ,1 ]⇒R∈ [ 34,

1 ] ⇒R∈[ 34,

78 ]⇒R∈[ 3

4,1316 ]

Método da bissecção – Um exemplo

Resumindo temos a seguinte progressão

ou na última avaliação

Temos uma progressão mas como ela se dá?

Quando parar?

R∈[0,75 ;0,8125 ]

R∈[0,1]⇒R∈[ 12 ,1 ]⇒R∈ [ 34,

1 ] ⇒R∈[ 34,

78 ]⇒R∈[ 3

4,1316 ]

Método da bissecção

Acredito que seja fácil de perceber que o intervalo que contém o zero decresce para metade de sua amplitude a cada passo, ou seja,

Ln=|B−A|

2n

Método da bissecção

Acredito que seja fácil de perceber que o intervalo que contém o zero decresce para metade de sua amplitude a cada passo, ou seja,

onde B e A são os valores iniciais. Isto nos dá um critério de parada.

Ln=|B−A|

2n

Método da bissecção

Vamos supor que desejamos parar quando o intervalo que contém R for de tamanho tol. Assim,

Com isto, sabemos quantos passos do método teremos que executar para obtermos o resultado que desejamos

tol=|B−A|

2n ⇒2n=

|B−A|tol

⇒n=log2 (|B−A|tol )

Método da bissecção

Se no nosso exemplo desejássemos que tol fosse um milésimo do intervalo original, teríamos

Este método não parece tão ruim assim.

n=log2 (|B−A|tol )= log2 (|1−0|

0,001 )=log2(1000)≈10

Método da bissecção

Se no nosso exemplo desejássemos que tol fosse um milésimo do intervalo original, teríamos

Este método não parece tão ruim assim.

Mas é lento...

n=log2 (|B−A|tol )= log2 (|1−0|

0,001 )=log2(1000)≈10

Método da bissecção

O método da bissecção não leva em consideração o valor das funções, somente os sinais.

Método da bissecção

O método da bissecção não leva em consideração o valor das funções, somente os sinais.

Abaixo temos alguns valores numéricos calculados durante o uso do algoritmo

f (0)=−2; f (1)=1,097374 ; f ( 12 )=−0,984026

f ( 34 )=−0,078066 ; f ( 7

8 )=0,475884 ; f ( 1316 )=0,190478

Método da bissecção

O método da bissecção não leva em consideração o valor das funções, somente os sinais.

Abaixo temos alguns valores numéricos calculados durante o uso do algoritmo

o valor em ¾ parece próximo da solução...

f (0)=−2; f (1)=1,097374 ; f ( 12 )=−0,984026

f ( 34 )=−0,078066 ; f ( 7

8 )=0,475884 ; f ( 1316 )=0,190478

Método da bissecção

O método da bissecção não leva em consideração o valor das funções, somente os sinais.

Abaixo temos alguns valores numéricos calculados durante o uso do algoritmo

o valor em ¾ parece próximo da solução...

...e o método não “viu“...

f (0)=−2; f (1)=1,097374 ; f ( 12 )=−0,984026

f ( 34 )=−0,078066 ; f ( 7

8 )=0,475884 ; f ( 1316 )=0,190478

Método da bissecção

● O método da bissecção parece eficaz mas não é eficiente, afinal despresa propriedades numéricas da função;

● Implementações em computadores podem fazer com que ele se torne instável, pois num computador não temos números Reais mais números de ponto flutuante;

● O fato dele desconsiderar propriedades da função pode ser útil se a função tem propriedades analíticas que dificultem determinarmos os zeros

top related