16- Faça o fluxograma do método das secantes.

Passo 1

O que o enunciado pede: fazer o fluxograma (um diagrama de execução) do método das secantes.
Informações dadas (implícitas no pedido): precisamos representar graficamente os passos do método num fluxo que começa com dados iniciais e termina quando a solução aproximada atende um critério de parada ou ocorre falha. Não há outras restrições explícitas (por ex., formato do fluxograma), então vamos criar um fluxograma completo e robusto que cubra entradas, iterações, critérios de parada e tratamento de problemas.

Passo 2

O que é e como funciona o método das secantes — explicação didática curta e necessária para montar o fluxograma.
  • Objetivo: achar uma raiz de uma função f(x), isto é um x tal que f(x)=0.
  • Ideia básica: aproximar a função por uma reta (secante) que passa por dois pontos (x_{n-1},f(x_{n-1})) e (x_n,f(x_n)) e usar a interseção dessa reta com o eixo x como próxima aproximação x_{n+1}. Repetimos até convergir.
  • Fórmula da iteração (resultado da interseção da secante com o eixo x):
x_{n+1} = x_n - f(x_n)\,\frac{x_n - x_{n-1}}{f(x_n) - f(x_{n-1})}.
Aqui x_{n-1} e x_n são as duas últimas aproximações conhecidas, e f(x_{n-1}), f(x_n) são os respectivos valores da função.

Passo 3

Derivação rápida e explicativa da fórmula (para você entender e lembrar na prova).
  • A equação da reta que passa por (x_{n-1},f(x_{n-1})) e (x_n,f(x_n)) é
y - f(x_n) = m\,(x-x_n),
onde a inclinação m é
m = \frac{f(x_n)-f(x_{n-1})}{x_n-x_{n-1}}.
  • Para achar a interseção com o eixo x colocamos y=0 e resolvemos para x:
0 - f(x_n) = m\,(x_{n+1}-x_n)\quad\Rightarrow\quad x_{n+1} = x_n - \frac{f(x_n)}{m}.
  • Substituindo m obtemos a fórmula do passo anterior. Isso mostra de onde vem a expressão e o porquê dela.

Passo 4

Entradas necessárias e critérios de parada (essenciais para o fluxograma).
Entradas que o fluxograma deve requisitar:
  • A função f(x).
  • Aproximações iniciais \,x_0 e \,x_1.
  • Tolerância \text{tol}>0 (critério de precisão).
  • Número máximo de iterações N_{\max}.
    Critérios de parada típicos (uso no fluxograma como testes):
  • |x_{n+1}-x_n| < \text{tol} (mudança pequena entre iterações).
  • ou |f(x_{n+1})| < \text{tol} (valor da função próximo de zero).
  • ou atingir n > N_{\max} (parar por segurança).
    Também é necessário verificar a condição perigosa f(x_n)-f(x_{n-1}) = 0 (divisão por zero) e tratar esse caso.

Passo 5

Possíveis decisões de projeto do fluxograma (por que escolher tal estrutura).
  • Vamos priorizar usar ambos os testes de convergência ( |x_{n+1}-x_n| e |f(x_{n+1})|) e também checar N_{\max}. Isso dá robustez.
  • Se ocorrer divisão por zero em f(x_n)-f(x_{n-1}) o fluxograma deve oferecer uma saída de falha (ou tentar perturbear x_n); para simplicidade do fluxograma, exibiremos uma mensagem de erro e interromperemos.
  • O fluxo deve ser claro: leitura de dados → loop de iteração com checagens → saída com sucesso ou falha.

Passo 6

Pseudocódigo do método (passo a passo num formato que será traduzido para caixas do fluxograma). Isso facilita transformar em fluxograma depois.
  • Entrada: f, x_0, x_1, \text{tol}, N_{\max}.
  • Inicializar n \leftarrow 1.
  • Enquanto n \le N_{\max} faça:
    1. Calcular f_{n-1} \leftarrow f(x_{n-1}) e f_n \leftarrow f(x_n).
    2. Se f_n - f_{n-1} = 0 então parar com erro (divisão por zero).
    3. Calcular
    x_{n+1} \leftarrow x_n - f_n\,\frac{x_n - x_{n-1}}{f_n - f_{n-1}}.
    1. Se |x_{n+1}-x_n| < \text{tol} ou |f(x_{n+1})| < \text{tol} então sair com sucesso (retornar x_{n+1}).
    2. Atualizar x_{n-1}\leftarrow x_n, x_n\leftarrow x_{n+1}, n\leftarrow n+1.
  • Se saiu do laço por n>N_{\max}, parar indicando falha por não convergência.

Passo 7

Mapeamento do pseudocódigo para símbolos de fluxograma (para você saber que caixa usar para cada ação):
  • Início: elipse com “Start”.
  • Entrada de dados: paralelogramo com os itens f, x_0, x_1, \text{tol}, N_{\max}.
  • Inicialização de variáveis: retângulo (processamento).
  • Cálculo de f(x_{n-1}), f(x_n): retângulo.
  • Decisão (teste): losango (ex.: verificar se f_n - f_{n-1} = 0).
  • Cálculo de x_{n+1}: retângulo.
  • Testes de convergência: losango.
  • Atualizar índices/variáveis: retângulo.
  • Saída (sucesso ou erro): paralelogramo.
  • Fim: elipse com “End”.
    No fluxograma usaremos setas direcionais que conectam essas caixas.

Passo 8

Fluxograma detalhado em linguagem textual passo-a-passo (cada caixa descrita e a seta entre elas). Você pode transformar esta descrição em um desenho facilmente. Vou numerar as caixas e indicar as decisões e ramos claramente.
  1. [Start]
  2. [Input] Ler f, x_0, x_1, \text{tol}, N_{\max}.
  3. [Process] Colocar n \leftarrow 1.
  4. [Process] Calcular f_{n-1} \leftarrow f(x_{n-1}) e f_n \leftarrow f(x_n).
  5. [Decision] Teste: f_n - f_{n-1} = 0\\ ?
    • Se Sim: ir para 5a).
    • Se Não: ir para 6).
      5a) [Output/Error] Mostrar "Erro: divisão por zero em f_n-f_{n-1}". Ir para [End-erro].
  6. [Process] Calcular
x_{n+1} \leftarrow x_n - f_n\,\frac{x_n - x_{n-1}}{f_n - f_{n-1}}.
  1. [Decision] Teste de convergência: |x_{n+1}-x_n| < \text{tol} OU |f(x_{n+1})| < \text{tol} ?
    • Se Sim: ir para 7a).
    • Se Não: ir para 8).
      7a) [Output/Success] Mostrar "Raiz aproximada x_{n+1}". Ir para [End-sucesso].
  2. [Process] Atualizar: x_{n-1} \leftarrow x_n, x_n \leftarrow x_{n+1}, n \leftarrow n+1.
  3. [Decision] Teste de iteração: n \le N_{\max}\\ ?
    • Se Sim: voltar para 4) (laço).
    • Se Não: ir para 9a).
      9a) [Output/Failure] Mostrar “Falha: máximo de iterações atingido, sem convergência”. Ir para [End-falha].
  4. [End-sucesso] e [End-erro] e [End-falha] são elipses de término (cada uma finaliza o fluxo).
Observações sobre setas: a seta parte de cada caixa e aponta para a próxima indicada acima; no losango (decisão) haverá duas saídas claramente rotuladas “Sim” e “Não”.

Passo 9

Dicas práticas e variações que você pode inserir no fluxograma (úteis na prova ou na implementação):
  • Em 5a) em vez de terminar com erro, pode-se tentar uma pequena perturbação, por ex. substituir x_n por x_n + \delta com \delta pequeno e continuar; isso complica o fluxograma, então só faça se pedir robustez extra.
  • Ordem de avaliação: calcular |x_{n+1}-x_n| e |f(x_{n+1})| depois de obter x_{n+1} (não antes).
  • Mostre no fluxograma que a saída deve retornar também o número de iterações n e o status (sucesso/falha).
  • Para clareza na prova, desenhe cada tipo de caixa com legenda: elipse = início/fim, paralelogramo = entrada/saída, retângulo = processo, losango = decisão.

Resposta

Start
-> Input: Ler f, x_0, x_1, \text{tol}, N_{\max}
-> Process: n \leftarrow 1
-> Process: f_{n-1} \leftarrow f(x_{n-1}), f_n \leftarrow f(x_n)
-> Decision: f_n - f_{n-1} = 0\\ ?
  • Sim -> Output/Error: "Erro: divisão por zero em f_n-f_{n-1}" -> End (erro)
  • Não -> Process: x_{n+1} \leftarrow x_n - f_n\,\dfrac{x_n - x_{n-1}}{f_n - f_{n-1}}
    -> Decision: |x_{n+1}-x_n| < \text{tol} OU |f(x_{n+1})| < \text{tol} ?
  • Sim -> Output/Success: "Raiz aproximada x_{n+1}" -> End (sucesso)
  • Não -> Process: atualizar x_{n-1}\leftarrow x_n, x_n\leftarrow x_{n+1}, n\leftarrow n+1
    -> Decision: n \le N_{\max}\\ ?
  • Sim -> voltar para cálculo de f_{n-1}, f_n (laço)
  • Não -> Output/Failure: “Falha: máximo de iterações atingido, sem convergência” -> End (falha)

Exercícios relacionados