http://www.slis.tsukuba.ac.jp/~fujisawa ... 5%C8%A5%EB
すると、分解後の行列の要素が 整数から○○e-16などとても小さい値になり、結果の固有値も○○e-15などになってしまいます。
mainプログラムは以下です。
これはあたりまえのことなのでしょうか?無知で大変申し訳ございません。助言をいただけると幸いです。
int main(){
int n = 10;
double *h = new double[n*n];
double h0[10][10];
for(int i=0;i<n;i++){
for(int j =0;j < n;j++){
h0[i][j] = 1;
}
}
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
h[i*n+j] = h0[i][j];
//cout<<setw(3)<<h[i*n+j];
}cout<<endl;
}
HouseholderTransformationForQR(h, n);
QR(h, n, 1e-8, 100);
cout << "QR" << endl;
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
cout << h[i*n+j] << " ";
}
cout << endl;
}
cout << "eigen values : " << h[0] << ", " << h[4] << ", " << h[8] << endl;
delete [] h;
return 0;
}