Calculo Numerico Bisseccao Newton Raphson e Secantes
2
(1)
f (x )=x−cos( x )
O código abaixo utilizou o método da Bissecção para encontrar a raiz da equação (1).
Codigo 1a – Resolução para encontrar a raiz da equação (1) pelo método da Bissecção.
/********************************EXERCICIO PROGRAMA 1 - EP1***********************************************/
/***************************TEMA - CALCULO DAS RAIZES DE x - cos(x*x²)**************************************/
/*********************************METODO - BISSECCAO******************************************************/
// NOME: Anderson do Nascimento Silva 7581544
//feito em: 05/03/2014
#include
#include
/********************FUNCOES***************************************/
double bisseccao( double x1)
{
return (x1 - cos( x1*x1 ));
}
/******************************************************************/ int main ()
{
double a1 , a2 , fa1 , fa2 , amed , famed , comp = 1; double err = 0.000001;
FILE*tabelaEP1a;
//RETORNA FUNCAO ESTUDADA
//o erro é 10 x maior que o mostrado aqui
//Aponta o arquivo a ser acessado
printf("DIGITE UM INTERVALO QUE CONTENHA 1 RAIZ DA FUNCAO f(x) = x - cos(x*x) \n"); printf("inicio = "); scanf("%lf",&a1); printf("final = "); scanf("%lf",&a2); if((tabelaEP1a=fopen("tabelaEP1a.txt","w"))==NULL)
{
printf("Erro na abertura do arquivo tababelaEP1a\n"); return (0);
}
fprintf(tabelaEP1a,"\n\t X1\t X2\t Xmed\t fX1\t fX2\t fXmed\t erro\n\n"); printf("\n\t X1\t X2\t Xmed\t fX1\t fX2\t fXmed\t erro\n\n"); while(comp>=err) { fa1 = bisseccao( a1 ); fa2 = bisseccao( a2 ); amed = ( a1 + a2 ) / 2; famed = bisseccao( amed );
//Testa o arquivo a ser escrito
//Calculo do metodo da besseccao
fprintf(tabelaEP1a," %9.5lf %9.5lf %9.5lf %9.5lf %9.5lf %9.5lf %9.5lf\n",a1,a2,amed,fa1,fa2,famed,comp); printf(" %9.5lf %9.5lf %9.5lf %9.5lf %9.5lf %9.5lf %9.5lf\n",a1,a2,amed,fa1,fa2,famed,comp); if(famed>0 && fa1>0 || famedconta2)
{