【C++】行列演算ライブラリEigen

公開日: : 最終更新日:2014/08/14 C/C++, 数学

スポンサーリンク

デフォルトのCやC++には行列やベクトルなどの演算ライブラリはありません。なので行列計算などをしようと思ったら自作するか、ライブラリを探すかということになります。

勉強の一環ならともかく自作となると非常に手間がかかってしまうので極力ライブラリに任せてしまいたいところです。特に単純な四則演算だけでなく逆行列、固有値問題、非線形最小二乗法…などなどを使おうとしているならなおさら大変だと思います。

そこで『Eigen(アイゲン)』というライブラリを使うとほとんどの数学的処理問題を解決することができます。


↑Eigenのページ

このライブラリは比較的最近(2008ごろ~)できた新しいものなのですが、Googleの機械学習などで使われているようです。また、このライブラリの特徴は用いているアルゴリズムがベストなものを使っており、その他最適化を行っているため演算スピードがかなり高速なところらしいです。

ライセンスは『MPL』というライセンスで本家サイトの一部を引用します。ライセンス関係は全然詳しくないので各自確認をお願いします。

Virtually any software may use Eigen. For example, closed-source software may use Eigen without having to disclose its own source code. Many proprietary and closed-source software projects are using Eigen right now, as well as many BSD-licensed projects.

また、チュートリアルも用意されているのでそちらで使いかたをマスターすることができます。

例えば行列の掛け算のサンプル

#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
int main()
{
Matrix2d mat;
mat << 1, 2,
3, 4;
Vector2d u(-1,1), v(2,0);
std::cout << "Here is mat*mat:\n" << mat*mat << std::endl;
std::cout << "Here is mat*u:\n" << mat*u << std::endl;
std::cout << "Here is u^T*mat:\n" << u.transpose()*mat << std::endl;
std::cout << "Here is u^T*v:\n" << u.transpose()*v << std::endl;
std::cout << "Here is u*v^T:\n" << u*v.transpose() << std::endl;
std::cout << "Let's multiply mat by itself" << std::endl;
mat = mat*mat;
std::cout << "Now mat is mat:\n" << mat << std::endl
}
Here is mat*mat:
7 10
15 22
Here is mat*u:
1
1
Here is u^T*mat:
2 2
Here is u^T*v:
-2
Here is u*v^T:
-2 -0
2 0
Let’s multiply mat by itself
Now mat is mat:
7 10
15 22

ただ、今のところ日本語版の公式ページがなさそうというのが欠点です…

スポンサーリンク
  • このエントリーをはてなブックマークに追加

関連記事

WordPressサイトのSSL対応(HTTPS化)手順のまとめ【さくらサーバー】

先週頃にこのサイトをSSL対応しましたのでその流れについてまとめておき

【Google Charts】動的にグラフを更新する方法

はじめに Webサイト上でグラフを描こうと思った場合、いくつかのJa

体重変化量計算シミュレータ【ダイエット/肥満】

ツール本体 入力 カロリー入力 1日の余剰摂取/消費カロリー

おサイフケータイ対応ストレージ32GBのSIMフリースマホまとめ【2017年秋版】

はじめに SIMフリーの格安スマホのおサイフケータイ機能付きのもので

リクルート期間限定ポイントの有効な使い道

はじめに  先日クレジットカードの見直し活動の一環でポイント還元率の

初心者がお金を貯めるための節約・財テク手法まとめ【ポイント還元・投資・税金対策】

はじめに  最近なるべく節約しようと思い、お金周りに関して色々調べて

動画講座を効率的にキャプチャして復習する方法

はじめに  最近、動画媒体の講座などをたまに視聴しています。独学だと

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑