Universidade Federal de Pernambuco, Área II, Cálculo Numérico, 2019-2, 1ª prova, 17/09/2019, 3b
3. Dada a função :
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 e . Considere = 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 contém a raiz de uma função se .
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:
Depois de obter o , calculamos e verificamos se ou se , 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 (). Em seguida, calculamos os valores de , , a aproximação da raiz e . 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 ! Tranquiloooo!
Resposta
b) Código descrito acima.