2010年11月3日水曜日

行列と転置行列の積


#include <iostream>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
using namespace std;
using namespace boost::numeric::ublas;

int main()
{
    matrix<int> A(2, 2), B(2, 2);

    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 2; j++)
        {
            A(i, j) = i * 2 + j + 1;
            B(i, j) = i * 2 + j + 2;
        }
    }

    cout << A << endl;
    cout << B << endl;
    cout << prod(A, trans(B)) << endl;

    return 0;
}

/* execution result
[2,2]((1,2),(3,4))
[2,2]((2,3),(4,5))
[2,2]((8,14),(18,32))

*/ 


上のプログラムは下記の計算を行っています.


スッキリ書けて素晴らしい.d(゚∀゚)b

0 件のコメント:

コメントを投稿