Ejecutando:# include<stdio.h> # include<conio.h> # include<math.h> # include<process.h> # include<string.h> # define TOL 0.000001 # define F(x) (x)*log10(x) - 1.2 void Bisect(); int i=1, n; float raiz = 1; void main(){ printf("\n Solucion por el Metodo de Biseccion \n"); printf ("\n La ecuacion es: "); printf("\n\t\t\t (x)*log10x) -1.2 = 0 \n\n"); printf("Numero Maximo de Iteracciones: "); scanf ("%d",&n); Bisect(); } void Bisect(){ float x1,x2,x0; float f0,f1,f2; int j=0; for (x2=1;;x2++){ f2 = F(x2); if(f2 >0){ break; } } for (x1=x2-1;;x2--){ f1 = F(x1); if(f1<0){ break; } } printf ("\t\t------------------------------------\t\t"); printf ("\n\t\t Iteracion Raiz \n"); printf("\t\t-------------------------------------\t\t"); for (;i<=n;i++){ x0 = (x1+x2)/2.0; f0 = F(x0); if (f0==0){ raiz = x0; } if(f0*f1<0){ x2=x0; } else{ x1 = x0; f1= f0; } printf("\n\t\t Iteracion %d ", i); printf("\t :\t %f", x0); if(fabs((x1-x2)/x1) < TOL ){ printf("\n\t\t ------------------------------------"); printf("\n\t\t Raiz = %f",x0); printf("\n\t\t Iteracion = %d\n",i); printf("\t\t-------------------------------------"); getch(); exit(0); } } printf("\n\t\t---------------------------------------"); printf("\n\t\t\t Raiz = %7.5f",x0); printf("\n\t\t\t Iteracion = %d\n", i-1); printf("\t\t-----------------------------------------"); getch(); }
videotutoriales de matlab, octave, numpy, python, POA, algoritmia, simulacion de procesos en ingenieria quimica, y algo de ingenieria quimica
domingo, 29 de junio de 2014
Método de Bisección en C, Usando funciones
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario