Escreva o algoritmo respectivo a cada um dos métodos iterativos de obtenção de zeros de funções: Bisseção; Ponto fixo e Newton-Raphson.

Passo 1

O enunciado pede que a gente escreva o pseudocódigo dos três métodos iterativos de busca de raiz de uma função f(x):
– Método da Bisseção
– Método do Ponto Fixo
– Método de Newton–Raphson
Para cada um, vamos explicitar as entradas (função, chute(s), tolerância e número máximo de iterações) e o critério de parada baseado na diferença entre iterações ou no tamanho do intervalo.

Passo 2

Construímos o algoritmo da Bisseção que explora o teorema do valor médio: se f(a) e f(b) têm sinal oposto, existe raiz em [a,b]. A cada iteração dividimos o intervalo ao meio e escolhemos o subintervalo que contém a raiz até que o tamanho do intervalo seja menor que a tolerância.

Passo 3

Montamos o algoritmo de Ponto Fixo. Primeiro reescrevemos f(x)=0 na forma x = g(x). A iteração é xk+1 = g(xk). O critério de parada é lvert xk+1-xkrvert < tol ou atingir o número máximo de iterações.

Passo 4

Desenvolvemos o algoritmo de Newton–Raphson, que usa a aproximação linear de f em torno de xk. A fórmula iterativa é
xk+1 = xk - f(xk)f'(xk)
O critério de parada é lvert xk+1-xkrvert < tol ou número máximo de iterações.

Resposta

A seguir o pseudocódigo de cada método.
Método da Bisseção
Entrada: função \(f\), extremos \(a,b\) com \(f(a) \cdot f(b) < 0\), tolerância \(\text{tol}\), \(\text{Nmax}\)
Saída: aproximação da raiz \(c\)

\(1.\)  if \(f(a) \cdot f(b) \geq 0\) then
\(2.\)      erro "Intervalo inválido"
\(3.\)  end if
\(4.\)  for \(k\) from \(1\) to \(\text{Nmax}\) do
\(5.\)      c \leftarrow \frac{a + b}{2}.      if \frac{|b - a|}{2} < \text{tol} then
\(7.\)          return \(c\)
\(8.\)      end if
\(9.\)      if \(f(a) \cdot f\text{(c)} < 0\) then
\(10.\)         b \leftarrow c
\(11.\)     else
\(12.\)         a \leftarrow c
\(13.\)     end if
\(14.\) end for
\(15.\) return \(c\)
Método do Ponto Fixo
Entrada: função \(g\) (tal que \(x = g(x)\)), chute inicial \(x_0\), tolerância \(\text{tol}\), \(\text{Nmax}\)
Saída: aproximação da raiz \(x\)

\(1.\)  \(x \leftarrow x_0\)
\(2.\)  for \(k\) from \(1\) to \(\text{Nmax}\) do
\(3.\)      \(x_{\text{new}} \leftarrow g(x)\)
\(4.\)      if \(|x_{\text{new}} - x| < \text{tol}\) then
\(5.\)          return \(x_{\text{new}}\)
\(6.\)      end if
\(7.\)      \(x \leftarrow x_{\text{new}}\)
\(8.\)  end for
\(9.\)  return \(x\)
Método de Newton–Raphson
Entrada: função \(f\), derivada \(f'\), chute inicial \(x_0\), tolerância \(\text{tol}\), \(\text{Nmax}\)
Saída: aproximação da raiz \(x\)

\(1.\)  \(x \leftarrow x_0\)
\(2.\)  for \(k\) from \(1\) to \(\text{Nmax}\) do
\(3.\)      if \(f'(x) = 0\) then
\(4.\)          erro "Derivada zero"
\(5.\)      end if
\(6.\)      \(x_{\text{new}} \leftarrow x - \frac{f(x)}{f'(x)}\)
\(7.\)      if \(|x_{\text{new}} - x| < \text{tol}\) then
\(8.\)          return \(x_{\text{new}}\)
\(9.\)      end if
\(10.\)     \(x \leftarrow x_{\text{new}}\)
\(11.\) end for
\(12.\) return \(x\)

Exercícios relacionados