Bonjour,
je suis � la recherche d'un bibliotheque open source math pour C++. en quelque sorte un equivalent "Matlab C++ Math Library" mais en open source. �a m'etonnerait que �a n'existe pas. Quoi qu'il en soit je n'ai rien trouv�.
Merci
Version imprimable
Bonjour,
je suis � la recherche d'un bibliotheque open source math pour C++. en quelque sorte un equivalent "Matlab C++ Math Library" mais en open source. �a m'etonnerait que �a n'existe pas. Quoi qu'il en soit je n'ai rien trouv�.
Merci
Salut,
Comme �a, GMP et MPFR me viennent � l'esprit. Le premier est disponible de chez GNU, le second de l'INRIA.
Si tu travailles aussi sous Windows avec Visual Studio, tu pourrais regarder du c�t� de MPIR, un portage de GMP mais VS-friendly (toujours compatible avec les *NIX) et supportant mieux le 64 bits.
MPFR se base sur GMP ou MPIR pour offrir des fonctionnalit�s pour les nombres � virgule flottante de haute pr�cision. Il y a aussi MPC pour les complexes.
http://www.mpir.org/
http://www.mpfr.org/
http://www.multiprecision.org/index.php?prog=mpc
http://gmplib.org/
Tous sont programm�s en C, mais des wrappers C++ existent.
Blitz++, boost.ublas dans le domaine du calcul alg�brique.
Effectivement, il existe beaucoup de libs de math open source. Il faudra que tu choisisse en fonction de ce que tu dois en faire. Par exemple, si tu as besoin d'une pr�cision sup�rieure au double natif, il te faudra GMP ou MPFR. Pour des calculs alg�rbiques, bitz++ ou ublast. Pour des statistiques/probabilit�, il y a boost::Math/Statistical Distributions. si tu dois travailler avec des rationels, il y a boost::Rational. Etc.
Bonjour,
Ce que cherche � recoder en c++ c'est un programme utilisant la "control toolbox" donc s'il y a une librairie qui gere les calculs algebriques, les fonctions math genre sin, cos et companie ainsi que les fonctions genre tf et ss et tout ce qui va avec de la control toolbox, �a m'arrange.
Ex (mais ce n'est qu'un exemple):
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 A=[ 0 1; 0 -0.5]; B=[ 0; 0.5]; C=[ 1 0]; D=0; mcc=ss(A,B,C,D); obs=obsv(mcc); comm=ctrb(mcc); det_obs=det(obs); det_comm=det(comm); R=acker(A,B,[-3 -15]); S=(C*(B*R-A)^-1*B)^-1; G=acker(A',C',[-15 -15]); G=G';