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
Informações relevantes fornecidas (ou que sempre precisamos ter para aplicar o fluxograma):\n
- Uma função
definida no intervalo .\n - Um intervalo inicial
tal que (ou seja, há mudança de sinal nos extremos).\n - Uma tolerância desejada
para a aproximação da raiz (critério de parada) ou um número máximo de iterações .\n - O objetivo final: encontrar uma aproximação
da raiz de no intervalo .\n
Passo 2
Entendendo a condição inicial
:\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
. Em palavras simples: se uma ponta do intervalo tem positiva e a outra ponta tem negativa, então, ao caminhar de até , a função precisa cruzar o eixo em algum ponto.\n - Por isso sempre verificamos
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
. Chamamos esse ponto de , dado por \n- Avaliamos .\n- Se (caso ideal), então é raiz exata.\n- Se , verificamos em qual metade do intervalo ainda existe mudança de sinal:\n - Se , então a raiz está em e atualizamos .\n - Caso contrário (assumindo ), a raiz está em e atualizamos .\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
. Isso significa que a semienvergadura do intervalo é menor que a tolerância: a raiz está aproximada com erro em menor que .\n- Outro critério possível é , isto é, o valor da função em é suficientemente pequeno.\n- Relação entre número de iterações e erro: após iterações o comprimento do intervalo é . Para garantir precisamos de\n \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
- Entrada:
, , , , .\n2) Verificar se . Se não, informar erro e terminar.\n3) Inicializar .\n4) Enquanto :\n 4.1) Calcular .\n 4.2) Calcular .\n 4.3) Se (ou ), retornar e terminar.\n 4.4) Se , retornar e terminar.\n 4.5) Se então senão .\n 4.6) .\n5) Se saiu do laço por atingir , retornar 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 , depois ) 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
, , , , .\n- Diamante de decisão 1: checar .\n - Não: mostrar mensagem de erro e terminar.\n - Sim: continuar.\n- Caixa de processo: inicializar .\n- Laço (seta que retorna): sequência {calcular , avaliar , testar critérios de parada, atualizar ou , incrementar }.\n- Diamante de decisão (critérios de parada): testar se ou (ou ).\n- Diamante de decisão (qual metade): testar para decidir atualizar ou .\n- Caixa de saída: retornar (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:
,
,
,
,
\nDecision:
?\n-- No --> Output: “Erro: sem mudança de sinal em [a,b]”\n-- End\n-- Sim --> Process:
\nLoopStart:\nProcess:
\nProcess: calcular
\nDecision:
ou
ou
?\n-- Sim --> Output: aproxim. da raiz
; End\n-- Não --> Decision:
?\n – Sim --> Process:
\n – Não --> Process:
\nProcess:
\nDecision:
?\n-- Sim --> Output: aproxim.
com aviso “maxIter atingido” ; End\n-- Não --> Goto LoopStart