Bonjour à tous,
Je souhaite pouvoir calculer la décomposition svd d'une matrice, pour cela: je dispose de microsoft visual studio 2005 et de la librairie Boost.
J'ai obtenu la librairie Boost sur le site suivant: http://www.boostpro.com/download/
J'ai obtenu le Boost-bindings (fichier qui contient la fonction nécessaire pour le calcul) ici: http://mathema.tician.de/dl/software...meric-bindings
J'ai installé le tout sur mon ordinateur et j'ai fait un petit code qui calcule la décomosition svd d'une matrice:
Mon problème est que j'obtiens un message d'erreur que je ne sais pas résoudre! En effet, mon code bloque sur la fonction qui est doit faire le calcul c'est "gesdd()". J'obtiens le message d'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #include <iostream> //#define BIND_FORTRAN_LOWERCASE_UNDERSCORE #include <boost/numeric/bindings/lapack/gesdd.hpp> #include<boost/numeric/bindings/traits/ublas_matrix.hpp> #include<boost/numeric/bindings/traits/ublas_vector.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/io.hpp> int main() { using namespace boost::numeric::bindings::lapack; using namespace boost::numeric::ublas; matrix<double, column_major> A (4,2); A(0,0)=2; A(0,1)=4; A(1,0)=1; A(1,1)=3; A(2,0)=0; A(2,1)=0; A(3,0)=0; A(3,1)=0; std::cout << A << std::endl; matrix<double, column_major> U(4,4); matrix<double, column_major> V(2,2); vector<double> S(2); gesdd('A',A, S, U, V); //std::cout << U << std::endl; //std::cout << S << std::endl; //std::cout << V << std::endl; return 0; }
J'ai cherché sur le net et j'ai vu que certaines personnes avaient déjà eu ce problème mais je n'ai pas eu de solution. Quelqu'un aurait-il une solution?? Merci pour vos réponses.Error 15 error LNK2001: unresolved external symbol _dgesdd testBoost.obj
Partager