Armadillo之求矩阵的逆(inverse)
2014-08-01 00:00
961 查看
摘要: 介绍Armadillo库中求矩阵逆的方法
求一个矩阵的逆(inverse or multiplicative inverse)使用矩阵的.i()方法或用inv()函数
1 若m不是方正的(square),则函数抛出std::logic_error异常。
2 如果m是奇异的(singular),则输出的矩阵将被重置,且抛出std::runtime_error异常
1 若m不是方正的(square),则函数抛出std::logic_error异常。
2 如果m是奇异的(singular),则输出的矩阵将被重置,且抛出std::runtime_error异常,同时inv(A,m)返回值将是false
代码:
输出:
如果矩阵m已经知道是对称的(symmetric),方阵的(square),正数的(positive),有限的(definite)则求m的逆使用inv_sympd函数将大大加快运算速度:
以上两种方法运行后A都是m的逆。
1 使用这个函数要启用LAPACK
2 若m不是方正的(square),则函数抛出std::logic_error异常。
3 现在inv_sympd不检查矩阵m是否是对称,方阵,正数,有限的。
4 如果m是奇异的(singular),则输出的矩阵将被重置,且抛出std::runtime_error异常,同时inv_sympd(A,m)返回值将是false
求一个矩阵的逆(inverse or multiplicative inverse)使用矩阵的.i()方法或用inv()函数
m.i() //返回m的逆
1 若m不是方正的(square),则函数抛出std::logic_error异常。
2 如果m是奇异的(singular),则输出的矩阵将被重置,且抛出std::runtime_error异常
inv(m) //返回m的逆 inv(A,m) //A被设为m的逆
1 若m不是方正的(square),则函数抛出std::logic_error异常。
2 如果m是奇异的(singular),则输出的矩阵将被重置,且抛出std::runtime_error异常,同时inv(A,m)返回值将是false
代码:
mat m = "2,4;3,1;"; mat m1 = m.i(); m1.print(); cout << "-----" << endl; mat m2 = inv(m); m2.print(); cout << "-----" << endl; mat A; inv(A, m); A.print();
输出:
如果矩阵m已经知道是对称的(symmetric),方阵的(square),正数的(positive),有限的(definite)则求m的逆使用inv_sympd函数将大大加快运算速度:
A=inv_sympd(m) inv_sympd(A,m)
以上两种方法运行后A都是m的逆。
1 使用这个函数要启用LAPACK
2 若m不是方正的(square),则函数抛出std::logic_error异常。
3 现在inv_sympd不检查矩阵m是否是对称,方阵,正数,有限的。
4 如果m是奇异的(singular),则输出的矩阵将被重置,且抛出std::runtime_error异常,同时inv_sympd(A,m)返回值将是false
相关文章推荐
- Armadillo C++ linear algebra library 学习笔记(2)——矩阵的基本操作(1)
- gemm() 与 gesvd() 到矩阵求逆(inverse)(根据 SVD 分解和矩阵乘法求矩阵的逆)
- 矩阵操作比较:Armadillo,Eigen,OpenCV
- Armadillo C++ linear algebra library 学习笔记(3)——矩阵的基本操作(2)
- Armadillo C++ linear algebra library 学习笔记(4)——矩阵的运算
- 矩阵运算库Armadillo,Eigen,MATCOM在windows+vs2010环境下的安装和测评(1)
- Armadillo C++ linear algebra library 学习笔记(5)——矩阵的分解
- Armadillo之计算矩阵的行列式(determinant)
- C++中armadillo矩阵库使用说明
- 安装Armadillo 进行矩阵计算(Install Armadillo on Windows for Visual Studio)
- 安装Armadillo 进行矩阵计算(Install Armadillo on Windows for Visual Studio)
- tf.matrix_diag和tf.matrix_inverse的用法(tensorflow如何生成对角矩阵和求逆矩阵)
- Armadillo,Eigen,OpenCV 矩阵操作比较(Compare Armadillo, Eigen and OpenCV)
- Cpp类似Matlab的矩阵运算库Armadillo
- Armadillo矩阵库输出位数(精度)控制
- 螺旋矩阵 之三
- 十个利用矩阵乘法解决的经典题目
- 矩阵
- 洛谷 P3390 【模板】矩阵快速幂
- 矩阵相乘 C语言实现