3. Dada a função f ( x ) = x 4 + x - 4 :

a) Aplique o método de Newton para encontrar um valor aproximado da raiz de f(x). Para cada iteração, apresente os valores de x i e f ( x i ) . Considere x 0 = 1,5 = e utilize 4 casas decimais e arredondamento padrão. Utilize como critério de parada 4 iterações (i = 0, 1, 2, 3, 4) ou |f(xi)|

b) Complemente a implementação do código a seguir para encontrar o zero da função f(x) pelo método da Bissecção utilizando |f(xi)|

Passo 1

Para a letra b, temos que o método da Bissecção é outro método iterativo para encontrar a raiz de uma função! Mas dessa vez vamos optar por um código para nos poupar daquele um montão de contas das iterações, beleza?

Nesse caso, vamos partir de um intervalo [a,b] que contém a raiz da função, segundo o teorema de Bolzano. Para quem não lembra, esse camarada enunciou o seguinte: um intervalo [ a , b ] contém a raiz de uma função f ( x ) se f ( a ) × f ( b ) < 0 .

A ideia desse método é dividir o nosso intervalo pela metade, quantas vezes for necessário, até atingir o critério de parada. Isso significa fazer:

x = a + b 2

Depois de obter o x , calculamos f ( x ) e verificamos se f ( x ) × f ( a ) < 0 ou se f ( x ) × f ( b ) < 0 , para decidir se a próxima iteração usará o intervalo [a,x] ou o intervalo [x,b] como entrada. Assim, vamos respeitar o teorema de Bolzano e garantir que nossa raiz está contida no intervalo escolhido!

Traduzindo essa história, a cada iteração descobrimos um valor mais próximo da nossa raiz reduzindo o intervalo de entrada! Vamos ficar com um código assim:

Primeiro fazemos usamos a estrutura de repetição while para repetir uma série de comandos, enquanto o critério de parada não for atingido ( | f ( x i ) | <   0,00001 ). Em seguida, calculamos os valores de f ( a ) , f ( b ) , a aproximação x da raiz e f ( x ) . Também imprimimos algumas informações importantes: o intervalo [a,b] atual e os valores que acabamos de calcular nas linhas anteriores!

No final, damos aquela conferida que eu comentei agora pouco para reduzir o intervalo de entrada! Usando um condicional if/else, definimos se o próximo intervalo de entrada será [a,b=x] ou [a=x,b].

Quando o critério de parada for atingido, imprimos o último valor aproximado de x ! Tranquiloooo!

Resposta

b) Código descrito acima.

Exercícios Resolvidos de Método da Bisseção

Ver Teoria

Exercícios de Livros Relacionados