eigenwert und eigenvektor einer größeren matrix (c++)
-
Hey, das Buch kann ich gerade ganz klasse gebrauchen. Danke für den Link!
-
hi leutz war gerade ne runde weg und werde morgen (^^bzw nachher) weitermachen, will es unbedingt haben. also allen erst ma einen schönen abend
-
hier nun mal die fehler die kommen , die 7 da:
main.cpp
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(154) : error C2374: 'j' : redefinition; multiple initialization
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(148) : see declaration of 'j'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(103) : while compiling class-template member function 'void __thiscall JAMA::Eigenvalue<double>::tred2(void)'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(165) : error C2374: 'j' : redefinition; multiple initialization
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(148) : see declaration of 'j'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(103) : while compiling class-template member function 'void __thiscall JAMA::Eigenvalue<double>::tred2(void)'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(170) : error C2374: 'j' : redefinition; multiple initialization
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(148) : see declaration of 'j'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(103) : while compiling class-template member function 'void __thiscall JAMA::Eigenvalue<double>::tred2(void)'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(173) : error C2374: 'j' : redefinition; multiple initialization
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(148) : see declaration of 'j'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(103) : while compiling class-template member function 'void __thiscall JAMA::Eigenvalue<double>::tred2(void)'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(188) : error C2374: 'i' : redefinition; multiple initialization
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(116) : see declaration of 'i'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(103) : while compiling class-template member function 'void __thiscall JAMA::Eigenvalue<double>::tred2(void)'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(201) : error C2374: 'k' : redefinition; multiple initialization
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(198) : see declaration of 'k'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(103) : while compiling class-template member function 'void __thiscall JAMA::Eigenvalue<double>::tred2(void)'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(210) : error C2374: 'j' : redefinition; multiple initialization
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(110) : see declaration of 'j'
d:\dokumente und einstellungen\windows95\desktop\neuer ordner (2)\neuer ordner (4)\neuer ordner\jama_eig.h(103) : while compiling class-template member function 'void __thiscall JAMA::Eigenvalue<double>::tred2(void)'
Error executing cl.exe.main.obj - 7 error(s), 0 warning(s)
-
so kommen die gleichen fehler.
#include <iostream> #include "tnt.h" #include "jama_eig.h" using namespace TNT; using namespace std; using namespace JAMA; #define dim 2 int main() { int a,b,i1,j1; float matrix[dim][dim]; //eingabe matrix1 for(a=0;a<dim;a++) { for(b=0;b<dim;b++) { cin>>matrix[a][b]; } } Array2D< double > A(dim,dim) ; /* create MxN array; all zeros */ for (i1=0; i1 < dim; i1++) for (j1=0; j1 < dim; j1++) A[i1][j1] = matrix[i1][j1]; //eigenwert // Eigensolver Eigenvalue<double> solver(A); // Extract eigenvectors/values Array2D<double> solutionD; Array2D<double> solutionV; solver.getD(solutionD); solver.getV(solutionV); //eigenvektor //ausgabe matrix1 for(a=0;a<dim;a++) { for(b=0;b<dim;b++) { cout<<matrix[a][b]<<" "; } cout<<endl; } return 0; }
-
Kompilierst du unter VC++ 6? Wenn ja, dann musst du dem noch standardkonforme for-Schleifen beibringen. Das kannst du wenn ich mich recht entsinne mit einem einfachen define fixen:
#define for if(false); else for
Das sollte for-Schleifen in einen Scope einschließen und verhindern, dass die Zählervariable über die Schleife hinaus gültig bleibt, was beim 6er Compiler nicht ganz konform implementiert ist. Wenn das nicht hilft einfach mal suchen. Das Problem hatten schon andere vor dir. Beim VC >7 gibt es ein Compilerflag, was die Sache regelt.
-
ok hab jetzt g++ von suse genommen und schon sind die 7 fehler weg.
das prog startet und ich kann meine matrix eingeben.
wie lasse ich jetzt solutionV und solutionD ausgeben?
-
Genauso wie Du matrix ausgibst? Probier mal, vielleicht kannste die ja auch direkt mit cout << ... ausgeben.
-
yawoll , scheenes ding jester
er rechnet sogar die komplexen eigenwerte, allerdings gibt er mir nur den realteil aus, kann man das noch irgendwo machen, dass er den im-teil noch ausspuckt?
dann wär echt perfekt.
-
Ja klar, die Imaginärteile stehen afaik neben den Realteilen in der Matrix. Oder halt mit der entsprechenden Abfragefunktion zugreifen.
-
Hallo
Warum versuchst Du es nicht einfach hier:
http://www.arndt-bruenner.de/mathe/scripts/eigenwert.htm
Die Homepage hält recht brauchbare Sachen bereit:
http://www.arndt-bruenner.de/mathe/mathekurse.htm
Grüße
Matthias