elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Metodo bisección para cualquier funcion dada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Metodo bisección para cualquier funcion dada  (Leído 11,017 veces)
rob1104


Desconectado Desconectado

Mensajes: 340


Usuario común


Ver Perfil WWW
Metodo bisección para cualquier funcion dada
« en: 5 Mayo 2009, 04:29 am »

Hola, tengo un programa en C que resuelve una función mediante el metodo de bisección, el problema es que es una ecación fija, la cual es retornada mediante una función de C, por ejemplo:
Código
  1. double f(double x)
  2. {
  3.    return (pow(x,2)+x);
  4. }
Ahi me devolveria las raices de la ecuación X^2+x, el algoritmo funciona perfecto, pero quisiera que fuera para una ecuacion escrita por el usuario, es decir que me pida la ecuación la evalue y si es correcta aplicar el algoritmo y si es incorrecta devolver un error.
Alguna idea?

Saludos


En línea

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
Eliptico

Desconectado Desconectado

Mensajes: 153


Ver Perfil
Re: Metodo bisección para cualquier funcion dada
« Respuesta #1 en: 5 Mayo 2009, 05:50 am »

Buenas!!!!

Esos metodos numericos, jeje.

Igual algun otro te lo explicara mejor que yo. Cuando me toco hacer el programilla tambien me encontre en la misma situacion que tu. estuve mirando popr ahi que era lo que se podia hacer y encontre algo de informacion, pero con la ide de programacion que tenia por aquel entonces desisti.

No se si sera la idea correcta, pero una funa es un conjunto de composiciones de funciones y operaciones con estas.

Lo que tengo leido sobre el tema es que tendrias que pasar de la notacion algebraica a la notacion prefija

por ejemplo

cos(x+2) + log(x^5*cos(x))-> +( cos( +(x,2) ) , log( *( ^(x,5) , cos(x) ) ) )

guardando operadores (considera las funciones elementales como operadores) y a continuacion los operandos sobre los que actuan, y me parece que esto se hace con pilas, recorriendo la cadena y  utilizando una pila cuando aparecen funciones o parentesis para ir acumulando los operandos. (vaya lio, en la cabeza lo tengo to enguarrao y no se muy bien como explicarlo, no se si te aclarare o te liare  :-[ )

Si alguien no te lo resuelve antes le voy a echar un ojo que es una espina que tengo clavada desde hace tiempo, y si lo resuelven pues parendemos todos a base de copiar.  :silbar:

Hasta luego!!!!!


En línea

Eliptico

Desconectado Desconectado

Mensajes: 153


Ver Perfil
Re: Metodo bisección para cualquier funcion dada
« Respuesta #2 en: 5 Mayo 2009, 05:55 am »

¿funa? ¿parendemos? ¿que tengo yo en los dedos? (menos mal que deje el piano) me referia a "funcion" y "aprendemos".

Lo siento, cosas del sueño.
En línea

rob1104


Desconectado Desconectado

Mensajes: 340


Usuario común


Ver Perfil WWW
Re: Metodo bisección para cualquier funcion dada
« Respuesta #3 en: 5 Mayo 2009, 06:10 am »

Gracias por el dato, estaba pensando en algo mas o menos asi:
Código
  1. double coe[10], expo[10];
  2. int i, n;
  3. void CapturaFuncion(void)
  4. {
  5.     cout<<"\n\t\t\t ||Capturando Funcion||";
  6.     cout<<"\n\n\nIntroduce el numero de Terminos del Polinomio: ";
  7.     cin>>n;
  8.     for (i=1; i<=n; i++)
  9.     {
  10.         cout<<"\t\t Coeficiente "<<i <<"= "; cin>>coe[i];
  11.         cout<<"\t\t Exponente "<<i <<"= "; cin>>expo[i];
  12.     }
  13.     cout<<"\n\n\t El polinomio es:\n\n";
  14.     cout<<"f(x) = ";
  15.     for (i=1; i<=n; i++)
  16.         {
  17.               cout<< coe[i]<<"x^"<<expo[i];
  18.               if (i<n) cout <<" + ";
  19.         }
  20. }
Pero no serviria para log() sin() cos() entre otras como que solo puedo sumar  :-(

Saludos
En línea

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
Eliptico

Desconectado Desconectado

Mensajes: 153


Ver Perfil
Re: Metodo bisección para cualquier funcion dada
« Respuesta #4 en: 5 Mayo 2009, 06:28 am »

Buenas!!!

Que no he podido resistirme a empezar ya con el problema. Jejejeje.

Si solo lo quieres con polinomios es bien sencillo, si lo quieres para composicion y operaciones algebraicas de funciones... estoy intentandolo.

Ya diras.

Hasta pronto!!!!
En línea

yorfrank

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Metodo bisección para cualquier funcion dada
« Respuesta #5 en: 18 Febrero 2017, 05:33 am »

Ey no tengo mucha experiencia programando y me pidieron esto en la escuela, podrías ayudarme con el código o el ejecutable? Que pida la función y de el resultado con la raíz y el numero de iteraciones que se hicieron...

Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
metodo de newton rapson para calcular las raices de una funcion con n grado
Programación C/C++
kiara_luna 1 15,900 Último mensaje 30 Septiembre 2011, 01:45 am
por kiara_luna
Problema con funcion, Metodo de seleccion
Programación C/C++
krowa 7 2,705 Último mensaje 24 Octubre 2011, 19:54 pm
por krowa
Leer y operar bisección con una función
Programación C/C++
Antoniio 9 1,499 Último mensaje 9 Septiembre 2015, 15:41 pm
por ivancea96
Descubren un método para hacer que se cuelgue casi cualquier navegador web
Noticias
wolfbcn 0 1,051 Último mensaje 28 Julio 2016, 18:39 pm
por wolfbcn
metodo y funcion
Programación General
Robocop8 4 1,483 Último mensaje 11 Noviembre 2017, 13:51 pm
por PalitroqueZ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines