SlideShare a Scribd company logo
C++ For Researchers
研究生のためのC++
企画・立案 難波知宏
数値計算ライブラリEigen
第六回
2
What is Eigen?
C++のテンプレートで実装された線形代数ライブラリ
http://eigen.tuxfamily.org/index.php
• 行列積、逆行列、行列式
• 疎行列
• 疑似逆行列
• 固有値分解
• 特異値分解
etc…
3
Eigenのおいしいところ
• 他のC++線形代数ライブラリと比較して…
– インストールが簡単
ヘッダファイルをダウンロードして、インクルードするだけ。
ビルドや、リンクの必要なし。
– 構文が直感的
• 他の言語と比べて…
– 最適化が強力に働き、高速
– 無料
4
Eigenのおいしくないところ
• CPU上でしか動かない… (GPU非対応)
• ドキュメント・資料が少ない…
参考資料
http://robotics.naist.jp/edu/text/?Robotics%2FEigen
5
基本の使い方
Part1
6
行列クラス
基本形
template <typename _Scalar, int _Rows, int _Cols, …>
class Matrix …
短縮形
Vector2f, VectorXf
7
Matrixテンプレートクラス
テンプレート引数で、
型、行数、列数を指定
サイズは
実数のとき固定サイズ
Xのとき可変サイズ
sample 7-01
Matrix<float, 2, 2> a; // float, 2x2
Matrix2f b; // float, 2x2
Matrix3f c; // float, 3x3
MatrixXd d; // double, 可変長
Vector2d p; // double, 2x1
VectorXd q; // double, 可変長
8
例
sample 7-01
Matrix<float, 2, 3> a;
cout << a.rows() << endl; // 行数(2)
cout << a.cols() << endl; // 列数(3)
cout << a.size() << endl; // 全要素数(2x3=6)
9
サイズの取得
sample 7-02
Matrix2f m; // 2x2, float
m(0, 0) = -1, m(0, 1) = -2;
m(1, 0) = -3, m(1, 1) = -4;
10
要素へのアクセス
m(i, j)で各要素にアクセス
sample 7-04
Matrix2f m;
m << 1, 2, 3, 4;
cout << "m :" << endl;
cout << m << endl;
Vector2f v;
v << 1, 2;
cout << "v :" << endl;
cout << v << endl;
Vector2f w = m * v;
cout << "w :" << endl;
cout << w << endl;
実行結果
m :
1 2
3 4
v :
1
2
w :
5
11
11
行列×ベクトル
5
11
=
1 2
3 4
1
2
*演算子で積の計算
coutでコンソール
に出力
sample 7-05
MatrixXd m(2, 2);
m << 1, 2, 3, 4;
cout << m.transpose() << endl; // 転置
cout << m.inverse() << endl; // 逆行列
cout << m.determinant() << endl; // 行列式
// 確認
cout << m * m.inverse() << endl;
12
行列式、逆行列
transpose  転置
inverse  逆行列
determinant  行列式
実践
Part2
13
連立方程式の解
14
exercise 7-1
次の連立方程式の解を求めてください。
𝑥 + 2𝑦 + 3𝑧 = 4
5𝑥 − 𝑦 + 4𝑧 = 2
−2𝑥 − 5𝑦 + 𝑧 = 0
15
exercise 7-1
白色化変換
16
exercise 7-2
exercise 7-2
省略
17
18
白色化変換(画像)

More Related Content

Viewers also liked

Cuestionario avas ovas-red liseth marín
Cuestionario avas ovas-red liseth marínCuestionario avas ovas-red liseth marín
Cuestionario avas ovas-red liseth marín
Liseth Marin
 
Nakornratchsrima
NakornratchsrimaNakornratchsrima
Nakornratchsrima
jitisak poonsrisawat, M.D.
 
Soloshot
SoloshotSoloshot
Soloshot
sahudmalvin123
 
My business presentation
My business presentationMy business presentation
My business presentationhanyessam
 
Ntics
NticsNtics
Curso de español básico para extranjeros
Curso de español básico para extranjeros Curso de español básico para extranjeros
Curso de español básico para extranjeros
Liseth Marin
 
Resumen Ministerio de Educación -OVA
Resumen Ministerio de Educación -OVAResumen Ministerio de Educación -OVA
Resumen Ministerio de Educación -OVA
Angélica María García Benavides
 
Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...
Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...
Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...
midem
 
PLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONES
PLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONESPLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONES
PLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONES
Carolina Cardoso
 
مسودة مشروع قانون المعاملات الالكترونية الليبي
مسودة مشروع قانون المعاملات الالكترونية الليبيمسودة مشروع قانون المعاملات الالكترونية الليبي
مسودة مشروع قانون المعاملات الالكترونية الليبي
الهيئة الوطنية لأمن وسلامة المعلومات
 
Vocabulario básico para niños
Vocabulario básico para niñosVocabulario básico para niños
Vocabulario básico para niños
Angélica María García Benavides
 
Sintesis informativa 15 de marzo 2017
Sintesis informativa 15 de marzo 2017Sintesis informativa 15 de marzo 2017
Sintesis informativa 15 de marzo 2017
megaradioexpress
 
Sintesis informativa 13 de marzo 2017
Sintesis informativa 13 de marzo 2017Sintesis informativa 13 de marzo 2017
Sintesis informativa 13 de marzo 2017
megaradioexpress
 

Viewers also liked (13)

Cuestionario avas ovas-red liseth marín
Cuestionario avas ovas-red liseth marínCuestionario avas ovas-red liseth marín
Cuestionario avas ovas-red liseth marín
 
Nakornratchsrima
NakornratchsrimaNakornratchsrima
Nakornratchsrima
 
Soloshot
SoloshotSoloshot
Soloshot
 
My business presentation
My business presentationMy business presentation
My business presentation
 
Ntics
NticsNtics
Ntics
 
Curso de español básico para extranjeros
Curso de español básico para extranjeros Curso de español básico para extranjeros
Curso de español básico para extranjeros
 
Resumen Ministerio de Educación -OVA
Resumen Ministerio de Educación -OVAResumen Ministerio de Educación -OVA
Resumen Ministerio de Educación -OVA
 
Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...
Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...
Future of Music Coalition: The New Power Trio: Brands Bands and Revenue - mid...
 
PLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONES
PLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONESPLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONES
PLANEACIÓN DEL VERBO TO BE EN INGLÉS Y SU RELACIÓN CON LAS PROFESIONES
 
مسودة مشروع قانون المعاملات الالكترونية الليبي
مسودة مشروع قانون المعاملات الالكترونية الليبيمسودة مشروع قانون المعاملات الالكترونية الليبي
مسودة مشروع قانون المعاملات الالكترونية الليبي
 
Vocabulario básico para niños
Vocabulario básico para niñosVocabulario básico para niños
Vocabulario básico para niños
 
Sintesis informativa 15 de marzo 2017
Sintesis informativa 15 de marzo 2017Sintesis informativa 15 de marzo 2017
Sintesis informativa 15 de marzo 2017
 
Sintesis informativa 13 de marzo 2017
Sintesis informativa 13 de marzo 2017Sintesis informativa 13 de marzo 2017
Sintesis informativa 13 de marzo 2017
 

Similar to 研究生のためのC++ no.6

YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
Hisateru Tanaka
 
C# と .NET と ・・・
C# と .NET と ・・・C# と .NET と ・・・
C# と .NET と ・・・
ShinichiAoyagi
 
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
Jun-ichi Sakamoto
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
Sho Shimauchi
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
Ryohei Kamiya
 
Ruby Extended Library
Ruby Extended LibraryRuby Extended Library
Ruby Extended Library
Akio Tajima
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキングTakayuki Kondou
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
 
C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!
TATSUYA HAYAMIZU
 
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
Tadahiro Ishisaka
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
Kaoru NAKAMURA
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPy
Kenta Oono
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
Hideki Takase
 

Similar to 研究生のためのC++ no.6 (20)

YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
 
C# と .NET と ・・・
C# と .NET と ・・・C# と .NET と ・・・
C# と .NET と ・・・
 
C++ Now 2012 report
C++ Now 2012 reportC++ Now 2012 report
C++ Now 2012 report
 
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
 
Ruby Extended Library
Ruby Extended LibraryRuby Extended Library
Ruby Extended Library
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
つぶLT20121215
つぶLT20121215つぶLT20121215
つぶLT20121215
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!
 
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPy
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 

More from Tomohiro Namba

Introduction of Unity ML-Agents
Introduction of Unity ML-AgentsIntroduction of Unity ML-Agents
Introduction of Unity ML-Agents
Tomohiro Namba
 
Git with Visual Studio
Git with Visual StudioGit with Visual Studio
Git with Visual Studio
Tomohiro Namba
 
研究生のためのC++ no.7
研究生のためのC++ no.7研究生のためのC++ no.7
研究生のためのC++ no.7
Tomohiro Namba
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4
Tomohiro Namba
 
研究生のためのC++ no.5
研究生のためのC++ no.5研究生のためのC++ no.5
研究生のためのC++ no.5
Tomohiro Namba
 
研究生のためのC++ no.3
研究生のためのC++ no.3研究生のためのC++ no.3
研究生のためのC++ no.3
Tomohiro Namba
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
 

More from Tomohiro Namba (7)

Introduction of Unity ML-Agents
Introduction of Unity ML-AgentsIntroduction of Unity ML-Agents
Introduction of Unity ML-Agents
 
Git with Visual Studio
Git with Visual StudioGit with Visual Studio
Git with Visual Studio
 
研究生のためのC++ no.7
研究生のためのC++ no.7研究生のためのC++ no.7
研究生のためのC++ no.7
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4
 
研究生のためのC++ no.5
研究生のためのC++ no.5研究生のためのC++ no.5
研究生のためのC++ no.5
 
研究生のためのC++ no.3
研究生のためのC++ no.3研究生のためのC++ no.3
研究生のためのC++ no.3
 
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
 

Recently uploaded

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
ooishi1
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
 

Recently uploaded (6)

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
 

研究生のためのC++ no.6