Buscar

5CN_Aula_Pratica_TurmaB

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

Continue navegando