Baixe o app para aproveitar ainda mais
Prévia do material em texto
Cálculo Numérico Resolução Numérica de Equações Aula Prática Prof. Jorge Cavalcanti – jorge.cavalcanti@univasf.edu.br 2 Método da Bissecção Algoritmo k := 0; a0 := a; b0 := b; x0 := a; xk+1 := (ak + bk)/2; while critério de parada não satisfeito if f(ak)f(xk+1) < 0 then /* raiz em [ak , xk+1] */ ak+1 := ak; bk+1 := xk+1; else /* raiz em [xk+1, bk] */ ak+1 := xk+1; bk+1 := bk ; endif k := k +1; xk+1 := (ak + bk)/2; endwhile if k > L parada falhou endif 3 Método da Bissecção Construção do Programa em C Função Exemplo: f(x) = exp(x) – 3*x Headers #include <stdio.h> #include <math.h> #include <conio.h> Variáveis Contador de Iterações (iter), ak, bk, xk, precisão (10-6), raiz; O intervalo inicial será fornecido pelo usuário (a0, b0) Definir erro ou precisão: Erro = |ak – bk| < ε Precisão = |F(xk)| < ε Testar erro ou precisão após cada iteração. 4 Método da Bissecção Construção do Programa em C Outros procedimentos Comentar as linhas do programa. Testar cada xk para saber qual o próximo intervalo (direito ou esquerdo). A função f(x) deverá ser chamada em um procedimento separado (tornar o programa mais fácil de alterar). A saída será no formato: printf(“Método da Bissecção - Convergiu apos %4d iteracoes para a raiz = %10.6f", iter, raiz); Link código exemplo - salvar no formato .C ou CPP http://migre.me/fxQsH 5 Método da Falsa Posição Mesma estrutura do programa para o método da bisseção. Apenas muda a função para o cálculo do x em cada iteração. A saída será no formato: printf(“Método da Falsa Posição - Convergiu apos %4d iteracoes para a raiz = %10.6f", iter, raiz); Link código exemplo - salvar no formato .C ou CPP http://bit.ly/2vyfxvM 6 Método de Newton-Raphson Algoritmo k := 0; x0 := x; while critério de interrupção não satisfeito k := k +1; xk+1 := xk – f(xk)/f’(xk) endwhile 7 Método de Newton-Raphson Construção do Programa em C Função Exemplo: f(x) = exp(x) – 3*x Headers #include <stdio.h> #include <math.h> #include <conio.h> Variáveis Contador de Iterações (iter), xk, precisão (10 -6), raiz; O Valor inicial Xk será fornecido pelo usuário. Definir erro ou precisão: Precisão = |F(xk)| < ε Testar precisão após cada iteração. 8 Método de Newton-Raphson Construção do Programa em C Outros procedimentos Comentar as linhas do programa. As funções f(x) e f’(x) deverão ser chamadas em um procedimento separado (tornar o programa mais fácil de alterar). A saída será no formato: printf(“Método de Newton-Raphson - Convergiu apos %4d iteracoes para a raiz = %10.6f", iter, raiz); Link código exemplo - salvar no formato .C ou CPP http://migre.me/fxQui 9 Método da Secante Algoritmo k := 0; x0 := X0; x1 := X1 while critério de interrupção não satisfeito and k L k := k +1; xk+1 := (xk-1*f(xk) - xk*f(xk-1))/(f(xk) - f(xk-1)) endwhile 10 Exercícios: 1. Em duplas, criar um programa para o Método da Secante, para achar uma raiz aproximada para a função f(x) = 2x2 - exp(x), para os valores iniciais X0 = -2.0 e X1 = 0.0, com = 10 -7 (a serem fornecidos como entradas pelo usuário). Salvar como prog1_nomes_dupla.cpp. 2. Aperfeiçoar o programa para receber como entrada do método de Secante os valores X2 e X3, obtido na 3ª iteração do método da Falsa Posição. Salvar como prog2_nomes_dupla.cpp. Enviar somente o código fonte (arquivo c ou cpp) e o nome dos integrantes da equipe para jorge.cavalcanti@univasf.edu.br
Compartilhar