Bisección en C ¿como?

Victor
29 de Marzo del 2005
Tengo que implementar una funcion, que evalue una función matematica y me de el numero de raices que tiene esa función matematica. Me dice que se pues implementar aplicando el metodo de la Bisección que es un metodo numérico. Si alguien sabe de algo pues que opine sobre el tema. GRACIAS

JUAN
29 de Marzo del 2005
hla como estas

stephani
29 de Marzo del 2005
me pueden enviarel metodo de biseccion es que lo necesito para un proyecto urgentemente. si puedes de una ves que lees este mensaje.

porfavor gracias
stephani

Oliverio
29 de Marzo del 2005
PAF!!!!! (sonido de cucurucho de helado estrellado en la frente)
NI SIQUIERA LEYÓ EL MENSAJE DE ARRIBA.
Un consejo para todos los que piden código, LEAN por lo menos antes de pedir.

orlando
29 de Marzo del 2005
casualmente estoy haciendo eso que tu necesitas como un proyecto..
ya lo tengo listo, pero solo me falta limpiar las pantallas.. tengo metodo de biseccion y secante...
si lo quieres..
con mucho gusto.
pero averigua como limpio mis pantallas.

i5arck
29 de Marzo del 2005
/*Program para realizar Metodo de Biseccion

Descripcion de variables :
a : Coordenada x1 del intervalo
b : Coordenada x1 del intervalo
p : Punto medio

*/

#include <stdio.h>
#include <conio.h>
#include<math.h>
#define N 30
float f(float x);

main ()
{
int i=0,j=0,k=0,l=0,m=0;
float a[N],b[N],p[N],c[N],d;
clrscr();
do{
printf("tMETODO DE BISECCIONn");
printf("Con la ecuaci¢n: x^2-5*x-6");
printf("nintroduce la coordenada x: ");scanf("%f",&a[0]);
printf("nintroduce la coordenada y: ");scanf("%f",&b[0]);

d=f(a[0])*f(b[0]);
if(d>0)printf("nNo esta dentro del Rango");
}while(d>0) ;//do

printf("nEsta dentro del rango");
p[i]=(a[j]+b[k])/2;
printf("n a=%f b=%f",a[j],b[k]);
printf(" p=%f",p[i]);
c[i]=f(b[k])*f(p[i]);
printf("n i[%d] f(p)=%f f(b)*f(p)=%f",i,f(p[i]),c[i] );

for(i=0;i<N;i++){

if(c[i]<0)
{
j++;
a[j]=p[l];
l++;
p[l]=(a[j]+b[k])/2;
printf("n a=%f b=%f",a[j],b[k]);
printf(" p=%f",p[l]);
m++;
c[m]=f(b[k])*f(p[l]);

printf("n i[%d] f(p)=%f f(b)*f(p)=%f",i,f(p[l]),c[i] );

}//if1
else if(c[i]>0)
{
k++;
b[k]=p[l];
l++;
p[l]=(a[j]+b[k])/2;
printf("n a=%f b=%f",a[j],b[k]);
printf(" p=%f",p[l]);
m++;
c[m]=f(b[k])*f(p[l]);
printf("n i[%d] f(p)=%f f(b)*f(p)=%f",i,f(p[l]),c[i] );

}//else..if2*/
else{
printf("nttRaiz %f",p[l]);
i=N;
}//else

}//for

getch();
return 0;
}
float f(float x)
{
return (x*x-5*x-6);
}

Geabril
29 de Marzo del 2005
Encontré esto:

Método de Bisección
http://mondragon.angeltowns.net/paradiso/MetodoBiseccion.html

Cómo hace para poder mandar la función matemática directamente a la función bisección sin tener que escribirla dentro del código???