Vota por nosotros en el ranking web que participamos

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Octubre 13, 2008, 11:10:20
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: programa del metodo de la biseccion 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: programa del metodo de la biseccion  (Leído 4204 veces)
SyDA
Silencio y Desesperación Absurda
Habitual
*****
Conectado Conectado

Mensajes: 377



Ver Perfil
« en: Å¿eptiembre 02, 2006, 07:22:42 »

Hola tengo un problema con este programa la verdad es no tengo mucha experiencia en programacion, mas que nada programaticas de hola mundo la verdad no les pido que me hagan el programa por que seria demasiado pero si me dan una idea de como se debe hacer se los agradeceria mucho, debe utilizar el metodo de la biseccion y resolver la siguiente ecuacion 3x^2+7x-3=0 y me debe decir en cuantas iteracciones se cumple, si alguien me puede dar una idea de como se hace en verdad se los agradeceria mucho...
En línea

"La luz del sol intenta tocarme pero mi oscuridad me proteje"
sickness1
Si no robarias a un pobre xq entonces si hackearias a cualquiera?
Colaborador
*****
Desconectado Desconectado

Mensajes: 975

Ya llego... Es el fin al fin!


Ver Perfil
« Respuesta #1 en: Å¿eptiembre 02, 2006, 10:11:28 »

El metodo de la biseccion que metodo es?? Xq el resultado de esa ecuacion es duro de manejar, (-7/6)+-(13^(1/2)/6)... Lo cierto esq no recuerdo ningun metodo que se llamara asi... Aunq nucna fui bueno con los nombres... Salu2
En línea

SyDA
Silencio y Desesperación Absurda
Habitual
*****
Conectado Conectado

Mensajes: 377



Ver Perfil
« Respuesta #2 en: Å¿eptiembre 02, 2006, 11:37:30 »

Aqui dejo una explicacion que es la que se apega a lo que busco, te dejo el link por que trae imagenes que no puedo pegar


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

En línea

"La luz del sol intenta tocarme pero mi oscuridad me proteje"
stlogan
Maxter
Miembro
*****
Desconectado Desconectado

Mensajes: 22


Naxter


Ver Perfil Email
« Respuesta #3 en: Å¿eptiembre 03, 2006, 12:03:55 »

En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Micki Qwerty
Visitante
« Respuesta #4 en: Å¿eptiembre 03, 2006, 05:26:13 »

El metodo de las bisecciones sucesivas. Se usa para demostrar el teorema de Bolzano.


Tu programa es realmente sencillo. Pero deberian darte el rango de numeros incial en forma de intervalo cerrado [a,b] sino su problema esta mal porqeu tienen que acotar la busqueda.

//  Definir tu funcion:
float Funcion (float x)
 {
   return (3*x*x+7*x-3);
 }

//  Definir el punto medio del intervalo.
float Media (float a, float b)
 {
   return ((a+b)/2);
 }

Una vez tengas esas cosas basicas, necesitas analizar el intervalo.
Te dejo que lo escribas tu.


void Main pim pam pum
{
Creas una variable a y una variable b. Las inicializas.
Creas una variable Iteracciones y la inicializas a cero.
Creas una variable Resultado y la inicializas a cero.
Creas una variable M.

Creas un bucle while not resultado
{
 M=Media(a,b))
 Si Funcion(M)= 0  entonces Resultado = 1
 Sino:
         Si Funcion(M)<0 entonces:
            Si Funcion(a)<0 y Funcion(b)>0 a=M
            Si Funcion(b)<0 y Funcion(a)>0 b=M
            En otro caso devolver mensaje y hacer un return (0)

         Si Funcion(M)>0 entonces:
            Si Funcion(a)<0 y Funcion(b)>0 b=M
            Si Funcion(b)<0 y Funcion(a)>0 a=M
            En otro caso devolver mensaje y hacer un return (0)
}
Printf de M
Printf de Itercaciones.
return cero.
}

Es MUY facil, la unica complicacion consiste en la biseccion del intervalo, deberian de daros bien la especificacion del programa.
La definicon del mensaje es un procedimiento que imprime el siguiente texto:
"Por el teorema de Bolzano, no existen raices reales en el intervalo original"

Y quedas como dios.

Un saludo, espero haberte ayudado. Cuando lo termines pon el code y te ayudo a depurarlo al maximo.
« Última modificación: Å¿eptiembre 03, 2006, 06:18:36 por Supermiguelito » En línea
SyDA
Silencio y Desesperación Absurda
Habitual
*****
Conectado Conectado

Mensajes: 377



Ver Perfil
« Respuesta #5 en: Å¿eptiembre 03, 2006, 10:10:28 »

En línea

"La luz del sol intenta tocarme pero mi oscuridad me proteje"
SyDA
Silencio y Desesperación Absurda
Habitual
*****
Conectado Conectado

Mensajes: 377



Ver Perfil
« Respuesta #6 en: Å¿eptiembre 03, 2006, 05:41:23 »

En línea

"La luz del sol intenta tocarme pero mi oscuridad me proteje"
SyDA
Silencio y Desesperación Absurda
Habitual
*****
Conectado Conectado

Mensajes: 377



Ver Perfil
« Respuesta #7 en: Å¿eptiembre 05, 2006, 11:48:58 »

mas o menos he sacado el programa asi ya es un avance pero aun me falta


#include<stdio.h>
#include<math.h>
#include<conio.h>

main()
{
int n1,n2,n3,ne;
char x,y;
float m, m1, m2,m3, m4, m5, m6, m7, t2,lx=0,ly=0;
clrscr();
textbackground(LIGHTBLUE);
textcolor(LIGHTGREEN);
gotoxy(15,4);cprintf("Programa para resolver una ecuacion mediante");normvideo();
textcolor(LIGHTRED);
textbackground(LIGHTBLUE);
gotoxy(34,6);cprintf("BISECCION");normvideo();
textcolor(WHITE);
gotoxy(10,8);cprintf("Introduce la Ecuacion de la que quieres obtener la Raiz");
textcolor(LIGHTGREEN);
gotoxy(25,10);cscanf("%d%c%d%d%c%d",&n1,&x,&ne,&n2,&y,&n3);normvideo();
gotoxy(10,8);clreol();
gotoxy(25,10);clreol();
textcolor(WHITE);
gotoxy(10,8);cprintf("Introduce uno de los limites");normvideo();
textcolor(LIGHTRED);
gotoxy(25,10);cscanf("%f",&lx);normvideo();
textcolor(WHITE);
gotoxy(10,8);clreol();
gotoxy(25,10);clreol();
gotoxy(10,8);cprintf("Introduce el otro de los limites");normvideo();
textcolor(LIGHTRED);
gotoxy(25,10);cscanf("%f",&ly);normvideo();
gotoxy(10,8);clreol();
gotoxy(25,10);clreol();
textcolor(WHITE);
gotoxy(8,8);cprintf("Tu ecuacion es");normvideo();
textcolor(LIGHTGREEN);
gotoxy(35,8);cprintf("%d%c%d+%d%c%d",n1,x,ne,n2,y,n3);normvideo();
textcolor(WHITE);
gotoxy(8,10);cprintf("y los limites son");normvideo();
textcolor(LIGHTGREEN);
gotoxy(30,10);cprintf("%f   y   %f",lx,ly);normvideo();
textcolor(WHITE);
gotoxy(20,12);cprintf("%d(%f)%d+%d(%f)%d",n1,lx,ne,n2,lx,n3);normvideo();
gotoxy(20,14);cprintf("%d(%f)%d+%d(%f)%d",n1,ly,ne,n2,ly,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", lx,ly);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m=((lx+ly)/2);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m,ne,n2,m,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(20,12);clreol();
gotoxy(20,16);clreol();
gotoxy(20,12);cprintf("%d(%f)%d+%d(%f)%d",n1,m,ne,n2,m,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", m,ly);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m1=((m+ly)/2);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m1,ne,n2,m1,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,14);clreol();
gotoxy(20,16);clreol();
gotoxy(20,14);cprintf("%d(%f)%d+%d(%f)%d",n1,m1,ne,n2,m1,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", m1,m);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m2=((m1+m)/2);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m2,ne,n2,m2,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,14);clreol();
gotoxy(20,16);clreol();
gotoxy(20,14);cprintf("%d(%f)%d+%d(%f)%d",n1,m2,ne,n2,m2,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", m2,m);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m3=((m2+m)/2);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m3,ne,n2,m3,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,14);clreol();
gotoxy(20,16);clreol();
gotoxy(20,14);cprintf("%d(%f)%d+%d(%f)%d",n1,m3,ne,n2,m3,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", m3,m);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m4=((m3+m)/2);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m4,ne,n2,m4,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,14);clreol();
gotoxy(20,16);clreol();
gotoxy(20,14);cprintf("%d(%f)%d+%d(%f)%d",n1,m4,ne,n2,m4,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", m4,m);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m5=((m4+m)/2);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m5,ne,n2,m5,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,14);clreol();
gotoxy(20,16);clreol();
gotoxy(20,14);cprintf("%d(%f)%d+%d(%f)%d",n1,m5,ne,n2,m5,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", m5,m);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m6=((m5+m)/2);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m6,ne,n2,m6,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,12);clreol();
gotoxy(20,16);clreol();
gotoxy(20,12);cprintf("%d(%f)%d+%d(%f)%d",n1,m6,ne,n2,m6,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);cprintf("(%f + %f)/2", m6,m5);normvideo();
gotoxy(25,20);system("PaUSE");
gotoxy(25,20);clreol();
gotoxy(20,16);clreol();
m7=((m6+m5)/2);
textbackground(LIGHTBLUE);
textcolor(LIGHTGREEN);
gotoxy(20,16);cprintf("%d(%f)%d+%d(%f)%d",n1,m7,ne,n2,m7,n3);normvideo();
gotoxy(25,20);system("PAUSE");
gotoxy(25,20);clreol();
gotoxy(25,10);clreol();
gotoxy(20,12);clreol();
gotoxy(20,14);clreol();
gotoxy(20,16);clreol();
gotoxy(20,10);cprintf("La Raiz de la ecuacion con un error menor a 0.01");
/*
t=((num1*limx)+(num2*limx)+(num3));
t1=((num1*limy)+(num2*limy)+(num3));
t2=
t3=
t4=
t5=
t6=
t7=
t8=
t9=


textcolor(LIGHTRED);
gotoxy(55,16);cprintf("= %f",total);normvideo();
textcolor(LIGHTRED);
gotoxy(55,18);cprintf("= %f",total1);normvideo();
*/
gotoxy(25,20);system("PaUSE");
return 0;
}


espero me puedan guiar
En línea

"La luz del sol intenta tocarme pero mi oscuridad me proteje"
SyDA
Silencio y Desesperación Absurda
Habitual
*****
Conectado Conectado

Mensajes: 377



Ver Perfil
« Respuesta #8 en: Å¿eptiembre 07, 2006, 07:42:22 »

bueno aqui esta el code mas depurado solo me hace falta que haga las comparaciones entre numeros

#include<stdio.h>
#include<math.h>
#include<conio.h>

main()
{
int n1,n2,n3,ne;
char x,y;
float m, m1, m2,m3, m4, m5, m6, m7, t, t1, t2, t3, t4, t5, t6, t7, t8, t9,lx=0,ly=0;
clrscr();
printf("Programa para resolver una ecuacion mediante el metodo de la biseccion\n");
printf("Introduce la Ecuacion de la que quieres obtener la Raiz\n");
scanf("%d%c%d%d%c%d",&n1,&x,&ne,&n2,&y,&n3);
printf("Introduce uno de los limites\n");
scanf("%f",&lx);
printf("Introduce el otro de los limites\n");
scanf("%f",&ly);
printf("Tu ecuacion es\n");
printf("%d%c%d+%d%c%d\n",n1,x,ne,n2,y,n3);
printf("y los limites son\n");
printf("%f   y   %f\n\n",lx,ly);
printf("%d(%f)%d+%d(%f)%d\n",n1,lx,ne,n2,lx,n3);
t=((n1*pow(lx,ne))+(lx*n2)+(n3));
printf("%f\n",t);
printf("%d(%f)%d+%d(%f)%d\n",n1,ly,ne,n2,ly,n3);
t1=((n1*pow(ly,ne))+(ly*n2)+(n3));
printf("%f\n",t1);
system("PAUSE\n");
printf("(%f + %f)/2\n", lx,ly);
m=((lx+ly)/2);
printf("%f\n", m);
system("PaUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m,ne,n2,m,n3);
t2=((n1*pow(m,ne))+(m*n2)+(n3));
printf("%f\n",t2);
system("PAUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m,ne,n2,m,n3);
printf("%f\n",t2);
system("PAUSE\n");
m1=((m+ly)/2);
printf("%f\n", m1);
printf("(%f + %f)/2\n", m,ly);
system("PaUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m1,ne,n2,m1,n3);
t3=((n1*pow(m1,ne))+(m1*n2)+(n3));
printf("%f",t3);
system("PAUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m1,ne,n2,m1,n3);
printf("%f",t3);
system("PAUSE\n");
m2=((m1+m)/2);
printf("(%f + %f)/2\n", m1,m);
printf("%f\n", m2);
system("PaUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m2,ne,n2,m2,n3);
t4=((n1*pow(m2,ne))+(m2*n2)+(n3));
printf("%f\n",t4);
system("PAUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m2,ne,n2,m2,n3);
printf("%f\n",t4);
system("PAUSE\n");
m3=((m2+m)/2);
printf("(%f + %f)/2\n", m2,m);
printf("%f\n",m3);
system("PaUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m3,ne,n2,m3,n3);
t5=((n1*pow(m3,ne))+(m3*n2)+(n3));
printf("%f\n",t5);
system("PAUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m3,ne,n2,m3,n3);
printf("%f\n",t5);
system("PAUSE\n");
m4=((m3+m)/2);
printf("(%f + %f)/2\n", m3,m);
printf("%f\n",m4);
system("PaUSE\n");
t6=((n1*pow(m4,ne))+(m4*n2)+(n3));
printf("%d(%f)%d+%d(%f)%d\n",n1,m4,ne,n2,m4,n3);
printf("%f\n",t6);
system("PAUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m4,ne,n2,m4,n3);
printf("%f\n",t6);
m5=((m4+m)/2);
system("PAUSE\n");
printf("(%f + %f)/2\n", m4,m);
printf("%f",m5);
system("PaUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m5,ne,n2,m5,n3);
t7=((n1*pow(m5,ne))+(m5*n2)+(n3));
printf("%f\n",t7);
system("PAUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m5,ne,n2,m5,n3);
printf("%f\n",t7);
system("PAUSE\n");
m6=((m5+m)/2);
printf("(%f + %f)/2\n", m5,m);
printf("%f\n",m6);
system("PaUSE\n");
t8=((n1*pow(m6,ne))+(m6*n2)+(n3));
printf("%d(%f)%d+%d(%f)%d\n",n1,m6,ne,n2,m6,n3);
printf("%f\n",t8);
system("PAUSE\n");
printf("%d(%f)%d+%d(%f)%d\n",n1,m6,ne,n2,m6,n3);
printf("%f",t8);normvideo();
system("PAUSE");
m7=((m6+m5)/2);
printf("(%f + %f)/2\n", m6,m5);
printf("%f",m7);normvideo();
system("PaUSE\n");
t9=((n1*pow(m7,ne))+(m7*n2)+(n3));
printf("%d(%f)%d+%d(%f)%d\n",n1,m7,ne,n2,m7,n3);
printf("%f\n",t9);
system("PAUSE\n");
printf("La Raiz de la ecuacion con un error menor a 0.01\n");
printf("es %f\n",m7);
system("PaUSE\n");
return 0;
}
En línea

"La luz del sol intenta tocarme pero mi oscuridad me proteje"
Micki Qwerty
Visitante
« Respuesta #9 en: Å¿eptiembre 10, 2006, 08:21:19 »

Tio ese codigo es ilegible y no esta muy depurado... deberias hacelo como te dije. En fin tu veras
En línea
stlogan
Maxter
Miembro
*****
Desconectado Desconectado

Mensajes: 22


Naxter


Ver Perfil Email
« Respuesta #10 en: Octubre 07, 2006, 12:30:12 »

Que primero corra el programa con lo que debe hacer, y por ultimo darle la presentacion jajaja, puede ser muy bonito, pero si no hace lo  que debe? pos como ke no va.. 
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
arvin
Visitante
« Respuesta #11 en: Octubre 07, 2006, 12:33:00 »

En línea
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: programa del metodo de la biseccion « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.6 | SMF © 2006-2007, Simple Machines LLC