EigenvalueVectorRealTriangleQR.cpp
上传用户:fxromeo
上传日期:2010-04-08
资源大小:89k
文件大小:1k
开发平台:

Visual C++

  1. //EigenvalueVectorRealTriangleQR.cpp  
  2. //实对称三角阵全部特征值及特征向量QR法
  3. #include <iostream> //输入输出流头文件
  4. #include "Matrix.h" //矩阵类及相关函数头文件
  5. #include "EigenvalueVector.h" //特征值及特征向量头文件
  6. using namespace std; //名字空间
  7. void main() // 定义控制台应用程序的入口点
  8. {
  9. double a[5][5] = 
  10. {
  11. {10.0,  1.0,  2.0,  3.0,  4.0},
  12.         { 1.0,  9.0, -1.0,  2.0, -3.0},
  13.         { 2.0, -1.0,  7.0,  3.0, -5.0},
  14.         { 3.0,  2.0,  3.0, 12.0, -1.0},
  15. { 4.0, -3.0, -5.0, -1.0, 15.0} 
  16. };
  17. valarray<double> b(5), c(5);
  18. matrix<double> q(5,5), da(&a[0][0],5,5);
  19. double eps = FLOATERROR;
  20.    cout.setf(ios::fixed); //输出数据为定点法
  21. cout.precision(6); //精度6位
  22. HouseholderTransform(da,q,b,c);
  23. int k = EigenvalueVectorRealTriangleQR(b,c,q,eps,60);
  24. cout << "MATRIX A IS: " << endl;
  25.     MatrixLinePrint(da);
  26.     cout << endl;
  27. if(k>0)
  28. {
  29. cout << "MATRIX B IS: " << endl;
  30. ValarrayPrint(b);
  31. cout << endl;
  32. cout << "MATRIX Q IS: " << endl;
  33. MatrixLinePrint(q);
  34. cout << endl;
  35. }
  36. }