Hola a todos, hace un tiempo que no he escrito en el foro. Sin embargo requiero la ayuda de los expertos por la siguiente situación.
Resulta que me encuentro programando en C el método de la bisección, podría buscarlo en Internet, sin embargo se trata del método de la bisección para optimizar funciones matemáticas (máximo o mínimo), y no para encontrar raíces.
No explicaré por el momento el algoritmo; ya que podría ser un poco complicado y aburrido. Sin embargo me he atorado en el programa en mi intento de establecer un criterio.
En teoría el número de iteraciones del programa está dado por la expresión
n=[log(10^s)]/[log(2)]
Dado un "s" escogido por el usuario. Les dejo el código que llevo para mayor claridad:
Resulta que me encuentro programando en C el método de la bisección, podría buscarlo en Internet, sin embargo se trata del método de la bisección para optimizar funciones matemáticas (máximo o mínimo), y no para encontrar raíces.
No explicaré por el momento el algoritmo; ya que podría ser un poco complicado y aburrido. Sin embargo me he atorado en el programa en mi intento de establecer un criterio.
En teoría el número de iteraciones del programa está dado por la expresión
n=[log(10^s)]/[log(2)]
Dado un "s" escogido por el usuario. Les dejo el código que llevo para mayor claridad:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
int i;
double p,n,l,s;
float a,b,c,d,e;
printf("Programa Metodo de Biseccion\n");
printf("Define la funcion\n");
printf("Define el primer limite del intervalo\n");
scanf("%f",&a);
printf("Define el segundo limite del intervalo\n");
scanf("%f",&b);
c=(a+b)/2;
d=(c+b)/2;
e=(c+a)/2;
printf("Defina s\n");
scanf("%d",s);
p=Math.Pow(l,s);
n=log10(p)/log10(2);
printf("%d",n);
system("PAUSE");
return 0;
}
Como podrán haber notado no llevo ni el 50% del programa, sin embargo no he podido avanzar de dicho criterio. Muchísimas gracias de antemano.