• Viernes 15 de Noviembre de 2024, 05:58

Autor Tema:  libreria cientifica Microsoft Visual Studio 2005  (Leído 2169 veces)

jkmilo933

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
libreria cientifica Microsoft Visual Studio 2005
« en: Viernes 15 de Abril de 2011, 07:43 »
0
Hola a todos

Soy estudiante de ingenieria en automatica industrial de la Universidad del Cauca - Colombia y como trabajo de grado estoy desarrollando un software para simular un robot porta endoscopio para cirugia laparoscopica.

Utilice el motor grafico Ogre3D para crear el ambiente tridimensional pero nesecito una libreria cientifica que me permita el manejo y operacion de vectores, a demas de una funcion que solucione ecuaciones, en otras palabras que optimice. He encontrado una que se llama GSL (GNU Scientific Library), pero genera problemas a la hora de utilizar el solucionador de ecuaciones o fsolver.

Si alguien tiene alguna herramienta que sirva para solucionar ecuaciones con multiples variables le pide el favor que me ayude.

Mi mail es jkmilo933@gmail.com

Muchas gracias.

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: libreria cientifica Microsoft Visual Studio 2005
« Respuesta #1 en: Lunes 18 de Abril de 2011, 17:13 »
0
Si el tema es serio y dependen vidas de ello, quizás sería interesante que los cálculos te los hicera alguien "profesional" como el Mathematica de Wolfram Research, que permite acceso desde C++...
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

jkmilo933

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: libreria cientifica Microsoft Visual Studio 2005
« Respuesta #2 en: Viernes 22 de Abril de 2011, 17:35 »
0
La solucion que tu me das necesariamente tiene que tener Wolfram Research Mathematica instaldo? Si no es asi pues si me sirve porque uno de los requerimientos de la aplicacion es que sea como un Plug and Play.
Los calculos matematicos ya estan hechos, es decir que el algoritmo ya esta en Matlab. Mi trabajo es pasar todo ese algoritmo a c++ he integralo con OGRE. Voy a presentar el codigo donde tengo problemas.

MGI=MGI_HIBOU(px,py,pz,R,P,W,X1i,X2i,X3i,X4i,X5i)

global  R4 D3 D6 tx ty tz x y z
%*********************************
% MODELO GEOMETRICO INVERSO
syms x y z xt yt zt sx sy sz nx ny nz ax ay az tx ty tz real

%%%*******CALCULO DEL MGI*******%%%%
 sx=(cos(W)*cos(P));  nx=((cos(W)*sin(P)*sin(R))-(sin(W)*cos(R)));  ax=((cos(W)*sin(P)*cos(R))+(sin(W)*sin(R)));
 sy=(sin(W)*cos(P));  ny=((sin(W)*sin(P)*sin(R))+(cos(W)*cos(R)));  ay=((sin(W)*sin(P)*cos(R))-(cos(W)*sin(R)));
 sz=(-sin(P));        nz=(cos(P)*sin(R));                           az=(cos(P)*cos(R));
 %****** t1,t2,t3,t4 y t5***********
%********solucion numerica*********
%******** Distancias entre ejes*****
D3=0.3;
R4=0.4;
D6=0.3;

%******* Ubicacion del trocar*******
tx=0.4;
ty=0;
tz=0.23;

%----------------------------------------
x=px;
y=py;
z=pz;

% Método numérico Levenberg Marquardt
    options = optimset('NonlEqnAlgorithm','lm','FunValCheck','on','TolFun',1e-15);  

    optnew = optimset(options,'TolX',1e-100,'MaxFunEvals',30000);
   
    [u,Fx] = fsolve(@f_solveDOS,[X1i X2i X3i X4i X5i],optnew);       % Obtención de r1,t2,t3 con el menor error
Fx;

 t1=u(1);
 t2=u(2);
 t3=u(3);
 t4=u(4);
 t5=u(5);

Como pueden en la primeras lineas hay funciones que se pueden resolver con un simple math.h el problema viene en esta linea
 
[u,Fx] = fsolve(@f_solveDOS,[X1i X2i X3i X4i X5i],optnew);

Esta linea resuelve la ecuacion no lineal f_solveDOS con los valores iniciales [X1i X2i X3i X4i X5i] con unas opciones ya configuradas en optnew. Lo que me gustaria saber es si Wolfram Research Mathematica hace eso o que otras soluciones podria encontrar para el lengauje de programacion en c++. GRaCIAS

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: libreria cientifica Microsoft Visual Studio 2005
« Respuesta #3 en: Viernes 22 de Abril de 2011, 18:54 »
0
Supongo que sí, que necesita el Mathematica instalado en local o en algún servidor para responder a dicha consulta.

De todos modos Wolfram Research tiene la opción de resolver de forma remota. Es decir, tu le envías la consulta a través de la web y ellos la resuelven y te devuelven la respuesta más o menos en tiempo real... La cuestión es que supongo que eso costará dineros...

Del código que me pones, ni idea, pero el Mathematica resuelve lo que le pongas delante sea del tipo que sea, aunque lo mismo te vale alguna otra cosa menos profesional...

Por ahí andan un montón de simuladores de calculadoras científicas, HP incluidas, y seguro que algunas de ellas disponen o bien del código fuente o bien de la posibilidad de licenciamento, y creo que también existe algún "kernel" cas para pc sin la parte gráfica de las hp...

Es cosa de mirar y probar.

Y como último extremo, si la ecuación es siempre la misma, la puedes resolver a mano e incluir los pasos en código o por métodos numéricos de aproximación...
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog

jkmilo933

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: libreria cientifica Microsoft Visual Studio 2005
« Respuesta #4 en: Sábado 23 de Abril de 2011, 18:04 »
0
muchas gracias por tu ayuda... voy a tener muy encuenta tus consejos