2 cout <<
"The matrix v is:" << endl;
6 cout <<
"The first Householder vector is: v_0 = " << v0.transpose() << endl;
8 cout <<
"The second Householder vector is: v_1 = " <<
v1.transpose() << endl;
10 cout <<
"The third Householder vector is: v_2 = " <<
v2.transpose() << endl;
13 cout <<
"The Householder coefficients are: h = " << h.transpose() << endl;
15 Matrix3d H0 = Matrix3d::Identity() - h(0) * v0 * v0.adjoint();
16 cout <<
"The first Householder reflection is represented by H_0 = " << endl;
18 Matrix3d H1 = Matrix3d::Identity() - h(1) *
v1 *
v1.adjoint();
19 cout <<
"The second Householder reflection is represented by H_1 = " << endl;
21 Matrix3d H2 = Matrix3d::Identity() - h(2) *
v2 *
v2.adjoint();
22 cout <<
"The third Householder reflection is represented by H_2 = " << endl;
24 cout <<
"Their product is H_0 H_1 H_2 = " << endl;
25 cout << H0 * H1 * H2 << endl;
27 HouseholderSequence<Matrix3d, Vector3d>
hhSeq(
v, h);
29 cout <<
"If we construct a HouseholderSequence from v and h" << endl;
30 cout <<
"and convert it to a matrix, we get:" << endl;
Matrix3d hhSeqAsMatrix(hhSeq)
cout<< "The matrix v is:"<< endl;cout<< v<< endl;Vector3d v0(1, v(1, 0), v(2, 0));cout<< "The first Householder vector is: v_0 = "<< v0.transpose()<< endl;Vector3d v1(0, 1, v(2, 1));cout<< "The second Householder vector is: v_1 = "<< v1.transpose()<< endl;Vector3d v2(0, 0, 1);cout<< "The third Householder vector is: v_2 = "<< v2.transpose()<< endl;Vector3d h=Vector3d::Random();cout<< "The Householder coefficients are: h = "<< h.transpose()<< endl;Matrix3d H0=Matrix3d::Identity() - h(0) *v0 *v0.adjoint();cout<< "The first Householder reflection is represented by H_0 = "<< endl;cout<< H0<< endl;Matrix3d H1=Matrix3d::Identity() - h(1) *v1 *v1.adjoint();cout<< "The second Householder reflection is represented by H_1 = "<< endl;cout<< H1<< endl;Matrix3d H2=Matrix3d::Identity() - h(2) *v2 *v2.adjoint();cout<< "The third Householder reflection is represented by H_2 = "<< endl;cout<< H2<< endl;cout<< "Their product is H_0 H_1 H_2 = "<< endl;cout<< H0 *H1 *H2<< endl;HouseholderSequence< Matrix3d, Vector3d > hhSeq(v, h)
Map< RowVectorXf > v2(M2.data(), M2.size())
M1<< 1, 2, 3, 4, 5, 6, 7, 8, 9;Map< RowVectorXf > v1(M1.data(), M1.size())
Matrix< double, 3, 3 > Matrix3d
3×3 matrix of type double.
Matrix< double, 3, 1 > Vector3d
3×1 vector of type double.