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

Visual C++

  1. //EigenvalueVectorHessenbergQR.cpp  求赫申伯格阵全部特征值QR法
  2. #include <iostream> //输入输出流头文件
  3. #include "Matrix.h" //矩阵类及相关函数头文件
  4. #include "EigenvalueVector.h" //特征值及特征向量头文件
  5. using namespace std; //名字空间
  6. void main() // 定义控制台应用程序的入口点
  7. {
  8. double a[5][5] = 
  9. {
  10. {  1.0,   6.0, -3.0, -1.0,  7.0},
  11. {  8.0, -15.0, 18.0,  5.0,  4.0},
  12. { -2.0,  11.0,  9.0, 15.0, 20.0},
  13. {-13.0,   2.0, 21.0, 30.0, -6.0},
  14. { 17.0,  22.0, -5.0,  3.0,  6.0}
  15. };
  16. valarray<complex<double> > uv(5);
  17. matrix<double> da(&a[0][0],5,5);
  18. double eps = FLOATERROR;
  19.    cout.setf(ios::fixed); //输出数据为定点法
  20. cout.precision(6); //精度6位
  21. if(HessenbergTransform(da) > 0)
  22. {
  23. cout << "MATRIX H IS: " << endl;
  24. MatrixLinePrint(da);
  25. cout << endl;
  26. int k = EigenvalueVectorHessenbergQR(da,uv,eps,60);
  27. if(k>0)
  28. {
  29. cout << "EIGENVALUE IS: " << endl;
  30. ValarrayPrint(uv);
  31. cout << endl;
  32. }
  33. }
  34. }