3- Fazer o fluxograma do método da bissecção.

Passo 1

O enunciado pede: “Fazer o fluxograma do método da bissecção.”\n
Informações relevantes fornecidas (ou que sempre precisamos ter para aplicar o fluxograma):\n
  • Uma função f definida no intervalo [a,b].\n
  • Um intervalo inicial [a,b] tal que f(a)\cdot f(b)<0 (ou seja, há mudança de sinal nos extremos).\n
  • Uma tolerância desejada \text{tol} para a aproximação da raiz (critério de parada) ou um número máximo de iterações \text{maxIter}.\n
  • O objetivo final: encontrar uma aproximação c da raiz de f no intervalo [a,b].\n

Passo 2

Entendendo a condição inicial f(a)\cdot f(b)<0:\n
  • Essa condição garante (pela ideia do Teorema do Valor Intermediário, explicado de forma intuitiva) que existe pelo menos uma raiz ímpar de multiplicidade ímpar no intervalo [a,b]. Em palavras simples: se uma ponta do intervalo tem f positiva e a outra ponta tem f negativa, então, ao caminhar de a até b, a função precisa cruzar o eixo x em algum ponto.\n
  • Por isso sempre verificamos f(a)\cdot f(b)<0 antes de começar; se não for verdade, o método não pode garantir que exista raiz no intervalo.\n

Passo 3

Ideia básica do método (explicação didática passo a passo):\n
  • Pegamos o ponto médio do intervalo [a,b]. Chamamos esse ponto de c, dado por c=\frac{a+b}{2}.\n- Avaliamos f\text{(c)}.\n- Se f\text{(c)}=0 (caso ideal), então c é raiz exata.\n- Se f\text{(c)}\neq 0, verificamos em qual metade do intervalo ainda existe mudança de sinal:\n - Se f(a)\cdot f\text{(c)}<0, então a raiz está em [a,c] e atualizamos b\leftarrow c.\n - Caso contrário (assumindo f\text{(c)}\cdot f(b)<0), a raiz está em [c,b] e atualizamos a\leftarrow c.\n- Repetimos esse processo até que o intervalo seja pequeno o suficiente (critério de tolerância) ou até atingir o número máximo de iterações.\n
Esse processo garante que o comprimento do intervalo contendo a raiz é reduzido pela metade a cada iteração, daí o nome “bissecção”.\n

Passo 4

Critérios de parada e estimativa de erro (aulas curtas dentro da resolução):\n
  • Uma escolha comum de critério é parar quando |b-a|/2 < \text{tol}. Isso significa que a semienvergadura do intervalo é menor que a tolerância: a raiz está aproximada com erro em x menor que \text{tol}.\n- Outro critério possível é |f\text{(c)}| < \text{tol}, isto é, o valor da função em c é suficientemente pequeno.\n- Relação entre número de iterações e erro: após n iterações o comprimento do intervalo é \dfrac{b-a}{2^n}. Para garantir \dfrac{b-a}{2^n} \le \text{tol} precisamos de\n n \ge \left\lceil \log_2\!\left(\frac{b-a}{\text{tol}}\right)\right\rceil.\n
  • Esse valor nos dá uma noção de quantas iterações são suficientes para obter a precisão desejada.\n

Passo 5

Algoritmo passo a passo (versão que será traduzida para o fluxograma):\n
  1. Entrada: f, a, b, \text{tol}, \text{maxIter}.\n2) Verificar se f(a)\cdot f(b)<0. Se não, informar erro e terminar.\n3) Inicializar \text{iter}\leftarrow 0.\n4) Enquanto \text{iter}<\text{maxIter}:\n 4.1) Calcular c=\dfrac{a+b}{2}.\n 4.2) Calcular f\text{(c)}.\n 4.3) Se f\text{(c)}=0 (ou |f\text{(c)}|<\text{tol}), retornar c e terminar.\n 4.4) Se |b-a|/2 < \text{tol}, retornar c e terminar.\n 4.5) Se f(a)\cdot f\text{(c)}<0 então b\leftarrow c senão a\leftarrow c.\n 4.6) \text{iter}\leftarrow \text{iter}+1.\n5) Se saiu do laço por atingir \text{maxIter}, retornar c com aviso de iteração máxima.\n\nObservação prática: na implementação costuma-se testar os critérios de parada na ordem mais barata (por exemplo, primeiro |b-a|/2<\text{tol}, depois |f\text{(c)}|<\text{tol}) para economizar cálculos dependendo do caso.\n

Passo 6

Mapeamento do algoritmo para os símbolos do fluxograma (o que cada caixa significa):\n
  • Caixa “Start”: início do processo.\n- Caixa “Input”: ler f, a, b, \text{tol}, \text{maxIter}.\n- Diamante de decisão 1: checar f(a)\cdot f(b)<0.\n - Não: mostrar mensagem de erro e terminar.\n - Sim: continuar.\n- Caixa de processo: inicializar \text{iter}\leftarrow 0.\n- Laço (seta que retorna): sequência {calcular c, avaliar f\text{(c)}, testar critérios de parada, atualizar a ou b, incrementar \text{iter}}.\n- Diamante de decisão (critérios de parada): testar se f\text{(c)}=0 ou |b-a|/2<\text{tol} (ou |f\text{(c)}|<\text{tol}).\n- Diamante de decisão (qual metade): testar f(a)\cdot f\text{(c)}<0 para decidir atualizar b ou a.\n- Caixa de saída: retornar c (aproximação da raiz) e terminar.\n\nAgora que já explicamos passo a passo e o mapeamento, apresento o fluxograma final (apenas o fluxograma pedido) na seção resposta.\n

Resposta

Start\nInput: f, a, b, \text{tol}, \text{maxIter}\nDecision: f(a)\cdot f(b)<0?\n-- No --> Output: “Erro: sem mudança de sinal em [a,b]”\n-- End\n-- Sim --> Process: \text{iter}\leftarrow 0\nLoopStart:\nProcess: c \leftarrow \dfrac{a+b}{2}\nProcess: calcular f\text{(c)}\nDecision: |b-a|/2 < \text{tol} ou |f\text{(c)}|<\text{tol} ou f\text{(c)}=0?\n-- Sim --> Output: aproxim. da raiz c ; End\n-- Não --> Decision: f(a)\cdot f\text{(c)}<0?\n – Sim --> Process: b\leftarrow c\n – Não --> Process: a\leftarrow c\nProcess: \text{iter}\leftarrow \text{iter}+1\nDecision: \text{iter} \ge \text{maxIter}?\n-- Sim --> Output: aproxim. c com aviso “maxIter atingido” ; End\n-- Não --> Goto LoopStart

Exercícios relacionados