C/Visual C - ¿Ayuda sobre funciones matematicas?

 
Vista:

¿Ayuda sobre funciones matematicas?

Publicado por Strato (6 intervenciones) el 06/06/2006 22:39:51
Estoy creando un programa de cálculo bastante completo, pero me encuentro con el problema de que no le puedo introducir una función matemática en un string porque no lo reconoce, por ejemplo para un método de cuadratura para evaluar integrales.

¿Alguien sabe como se puede hacer???

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Ayuda sobre funciones matematicas?

Publicado por Nelek (816 intervenciones) el 07/06/2006 08:36:10
Ein? Explicate mejor por favor. Y di bajo que estas programando. Que el tema me interesa, yo tambien tendre que usar metodos matematicos en mi proyecto y me pondre en breve con el tema (primero he de acabar el mogollon de dialogos donde se introducen los datos que luegonecesitare, yo estoy bajo VC++ 6)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Ayuda sobre funciones matematicas?

Publicado por Juan (68 intervenciones) el 07/06/2006 14:00:36
Creo entender el problema. Tiene la funcion en un String de entrada y no sabes como descomponerlo para hacer la integral. Yo hice fue un programa de derivadas, que es algo mas simple por la regla de la cadena. Entonces la solucion que implemente era algo como esto:

Tenia un archivo donde estaban todos los pares de funciones, f(x) y su derivada. Cuando comenzaba la aplicacion cargaba todo ese archivo en una lista.

Despues aplicaba un analisis sintactico, teniendo en cuenta que una funcion es:
La identidad (x)
Una composicion de funciones (sen(ln x))
Una funcion un operando y otra funcion sen(x) + cos(x)

En otro String iba almacenando la funcion que se generaba. Lo malo de esto es que no puedes simplicar la funcion. Esta parte es la que creo que puede ser comun. Con el token que se generaba (nombre de la funcion) lo buscaba en la lista y obtenia asi su derivada.

Y para evaluar la funcion era el mismo analisis sintactico, pero se evaluaba cuando se llegaba al caso base, y despues se iban resolviendo los ambientes recursivos.

A ver si esta idea les ayuda
Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Ayuda sobre funciones matematicas?

Publicado por Nelek (816 intervenciones) el 08/06/2006 10:19:19
Gracias por la idea Juan, parece una gran idea pero... Eso sería en el caso de hacer una "calculadora" donde el usuario le introduce los datos y no hay un patron fijo. No?

En mi caso es algo mas sencillo, puesto que no tengo que contemplar mas de 3 o 4 casos distintos. Yo estoy programando un simulador de logica fuzzy para una empresa, con lo que me limito a las especificaciones de la empresa. Es decir, para mi programa solo sería necesario aplicar matematicas concretas a partir de datos ya almacenados (que mete el usuario). Los datos si que pueden variar. Pero los calculos son siempre los mismos (bueno, aceptando como lo mismo que una serie sea mas larga que otra o que una integral tenga otros limites), o siendo mas exacto, los algoritmos son fijados. Lo que pasa es que nunca me he metido a hacer integrales tan complejas en C, y en VC++ soy completamente novato (descontando lo que ya se por lo que llevo hecho de proyecto).

Cuando llegue a atascarme volvere a preguntar. Espero que estes por ahi disponible ;)

Ciao
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Ayuda sobre funciones matematicas?

Publicado por fernando.gomez (1603 intervenciones) el 08/06/2006 16:36:42
Este artículo es buenísimo, aunque trata de derivadas. Quizás le puedan sacar provecho.

http://www.codeproject.com/cpp/Differentiation.asp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Ayuda sobre funciones matematicas?

Publicado por Strato (6 intervenciones) el 08/06/2006 20:41:00
El tema va por ahí. Utilizo el devc++, pero programo en ansi C para msdos, lo se no es muy avanzado pero se puede hacer cosas majas.

Lo que quería decir es que al escribir con el teclado una funcion, por ejemplo cos(exp(x)) lo tome como una función matemática en vez de como un string, es decir, como función matemética en vez de texto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Ayuda sobre funciones matematicas?

Publicado por fernando.gomez (1603 intervenciones) el 08/06/2006 23:22:13
Como te comentaba Juan o Nelek -no recuerdo- lo que tendrías que hacer entonces es parsear la cadena de texto, y en base a eso determinas qué función emplear. El artículo que te envié trata precísamente de cómo parsear expresiones matemáticas.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Ayuda sobre funciones matematicas?

Publicado por Juan (68 intervenciones) el 09/06/2006 17:46:45
Si quieres hacer un parser te puedo dar unos tips, pero tienes que conocer teoria de compiladores. Sino las conoces me avisas a ver que se puede hacer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Ayuda sobre funciones matematicas?

Publicado por Strato (6 intervenciones) el 09/06/2006 22:01:45
De código máquina no tengo ni idea. :(
Y sobre teoría de compiladores tampoco. :(

No teneis ningun ejemplo???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar