1.矩陣a為滿秩矩陣
2.利用初等行變換將方程組的增廣矩陣轉換為行階梯陣,再通過回代求出線性方程組的解
3.對於n階方陣a,若存在正交矩陣q和上三角矩陣r,使得a = qr,則該式稱為矩陣a的完全qr分解或正交三角分解。原理是將矩陣每個列作為乙個基本單元,將其化為正交的基向量與在這個基向量上的投影長度的積
4.把乙個對稱正定的矩陣表示成乙個下三角矩陣l和其轉置的乘積的分解
5.useeigen.cpp
#include#include#include#includeusing namespace std;
using namespace eigen;
#define matrix_size 100
int main(int argc,char** ar**)
{ matrixxd a_pre = matrixxd::random( matrix_size, matrix_size );
matrixxd a = a_pre.transpose()*a_pre ; //使得a為正定對稱矩陣,才能使得cholesky分解成功
vectorxd b = vectorxd::random( matrix_size );
clock_t time_str_1=clock();
vectorxd x = a.colpivhouseholderqr().solve(b);//呼叫qr分解求解
{ quaternionq1(0.55,0.3,0.2,0.2);//小蘿蔔一號相對於世界座標系的四元數
quaternionq2(-0.1,0.3,-0.7,0.2);//小蘿蔔二號相對於世界座標系的四元數
q1.normalize();//四元數歸一化,四元數在使用前需要歸一化
q2.normalize();
vector3d t1(0.7,1.1,0.2);//小蘿蔔一號相對於世界座標系的平移向量
vector3d t2(-0.1,0.4,0.8);//小蘿蔔二號相對於世界座標系的平移向量
matrix3d r1=q1.torotationmatrix();//將四元數轉換為旋轉矩陣
matrix3d r2=q2.torotationmatrix();
isometry3d t1=isometry3d::identity();//定義並初始化小蘿蔔一號的歐式變換矩陣
isometry3d t2=isometry3d::identity();//定義並初始化小蘿蔔二號的歐式變換矩陣
t1.rotate(r1);
t1.pretranslate(t1);
t2.rotate(r2);
t2.pretranslate(t2);
vector3d p1(0.5,-0.1,0.2);
vector3d pw=t1.inverse()*p1;//點在世界座標系的向量表示
vector3d p2=t2*pw;
cout
cmake_minimum_required( version 2.8 )
project( useeigen )
include_directories( "/usr/include/eigen3" )
add_executable( eigen xiaoluobo.cpp)
自學《SLAM十四講》 第二講
1.c 中的類和物件的理解 就好比人類和個人?不知道可不可以這麼理解。2.stl standard template library 就是標準模板庫,是一些 容器 的集合 3.linux的目錄結構 其實就是新的c 的標準,用著用著就熟悉了 5.cmake cmake是乙個跨平台的安裝 編譯 工具,可...
Python第二節課
利用type內建函式檢視變數型別 例 x 1 print type x 整型變數的定義 x 1 浮點型變數的定義 y 5.0002 虛數型別變數定義 z 1 2ix true y fal 0 falsey 1 true 以下是定義字串的四種方法 x y z k 列表 可以隨機訪問,通過下標 從0開頭...
第二節課筆記
1.識別符號 宣告格式 型別 識別符號 賦值格式 識別符號 字面量 兩種格式的簡寫 型別 識別符號 字面量 2.操作符和表示式 表示式 通過識別符號,字面量和操作符按照一定的順序拼接然後得到的乙個具有固定結果的式子,叫做表示式 操作符 具有一定邏輯意義的符號。操作符型別 算數運算子 位運算子 關係運...