Evaluar expresiones matematicas con JEP y vb.net

en la actualidad existen muchos software que nos dan la posibilidad de realizar operaciones matematicas avanzadas como evaluacion de expresiones algebraicas, determinacion de derivadas e integrales asi como algebra matricial, entre estos software mencionamos a matlab derive, mathcad y muchos mas….

pero en algun momento no has querido independizarte de estos software y crearte tu uno mismo, pues bueno, existe una herramienta especializada para realizar evaluacion de expresiones llamada JEP.

posee 2 versionas bien detalladas, una para ser usada en JAVA y la otra version que se ejecuta con la plataforma .NetFramework que es con la que se explicara este tutorial.

Jep.NET es una.Biblioteca de red para analizar y evaluar expresiones matemáticas. Con este paquete puede permitir a los usuarios introducir una fórmula arbitraria como una cadena y al instante evaluarlo.

Jep.NET admite funciones, constantes y variables definidas por el usuario. Se incluyen una serie de funciones matemáticas comunes y constantes.

se puede encontrar mas informacion sobre la libreria y descargarla desde el sitio oficial que es: http://www.singularsys.com/jep.net/

a continuacion he preparado un pequeño ejemplo para explicar la forma de usar el evaluador de expresiones JEP.

Inicialmente crearemos un nuevo proyecto de vb.net (en este caso estoy trabajando en la version express 2008), el proyecto lo he llamado evaluador_de_expresiones:

luego, agregamos 4 textbox, 1 boton y varios labels, utilizaremos un textbox para la entrada de la expresion llamada text_entrada, otro textbox para la salida llamada text_salida, y los otros 2 textbox se utilizaran para evaluar la expresion en los valores correspondientes a asignar a cada variable, podemos crear todas las variables que deseemos utilizar en nuestra expresion, en este ejemplo solo trabajaremos con la variable X y la variable Y.

creamos un diseño similar al siguiente formulario:

es importante no olvidar incluir la dll de JEP dentro de la carpeta debug de nuestro proyecto (la dll se llama Jep.dll), el directorio donde va es:

despues de esto agregamos la referencia de jep, para ello nos dirigimos a la barra de menu y seleccionamos la opcion proyecto y en el menu desplegable que aparece seleccionamos la opcion agregar referencia…

en el cuadro de dialogo que emerge hacemos click en la pestaña examinar y accedemos a la carpeta debug del pryecto, donde debe de estar la dll que copiamos despues de descargada, ver imagen:

bien, ahora solo seleccionamos la libreria y cliqueamos en aceptar, y ya esta agregada nuestra referencia.

importamos las 2 bibliotecas:


Imports SingularSys.Jep

Imports SingularSys.Jep.Types

esto es para poder usar las herramientas de evaluacion de expresiones, luego declaramos las siguientes variables como globales:


Dim cad AsString

Private jVar As New JepInstance()

Dim j As New JepInstance()

Dim valorx As Double

Dim valory As Double

ahora dentro del boton evaluar vamos a programar lo siguiente:


valorx =CDbl(Me.TextBox_x.Text)

‘aqui a la variable valorx se le asigna el valor especifico para x


valory =CDbl(Me.TextBox_y.Text)

‘aqui a la variable valory se le asigna el valor especifico para y

ahora dentro de una clausula try catch escribimos lo siguiente:


Try

jVar.VarTab.AddVariable("x", New JepDouble(valorx))  'le indicamos a jep el valor de x

jVar.VarTab.AddVariable("y", New JepDouble(valory))  'le indicamos a jep el valor de y

jVar.ReinitializeComponents()  'reinicializo componentes de evaluacion

jVar.Parse(Me.Text_ingreso.Text)  'esta funcion parse es la que en si hace el proceso de la evaluacion de la expresion

Me.Text_salida.Text = jVar.Evaluate().ToString    'aqui muestro el resultado en el textbox salida

Catch ex As Exception

MsgBox(ex.Message)     'en caso de que haya un error la aplicacion lo atrapa e impide un bloqueo

End Try

bien, hasta aqui ya esta listo nuestro evaluador de expresiones, podemos usarlo y observar los resultados, una captura de pantalla del programa en ejecucion es:

en la ejecucion he utilizado la expresion X^2+Y en la cual he reemplazado x por e Y por 3 cuyo resultado en el textbox de salida es 7 respectivamente, ahora tu puedes jugar ingresando las expresiones que desees e ir viendo el resultado, prueba con un cos(x)+exp(x^2)*tan(y)  con x =1 e y=2

ya lo he probado en el evaluador y debe dar algo como: -5,39925184889428, vamos intenta probandolo tu mismo con este ejemplo.

otra utilidad importante de jep es de actuar como diferenciador de funciones es decir permite derivar cualquier funcion algebraica que ingreses, interesante verdad.

espero y este tutorial haya sido de utilidad, ponganlo a correr y cualquier duda me comentan…

Descargar Programa

Anuncios

3 respuestas a “Evaluar expresiones matematicas con JEP y vb.net

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s