在使用MTL库的时候,发现mtl库没有求行列式的值的函数,google了一把,找到下面的网页

How to Find Determinant of nxn matrix?

参考里面的说明,给mtl加上了,求行列式值的功能。

新建一个C++的头文件,名称随便取,在里面输入下面的代码:

#include <mtl/matrix.h>
#include <mtl/mtl.h>
#include <mtl/dense1D.h>
#include <mtl/utils.h>
#include <mtl/lu.h>
namespace mtl
{
/*!This function calculates the determinant of a matrix */
template<class MatrixType>
double lu_det(const MatrixType& _Matrix)
{
int size = _Matrix.nrows();
MatrixType LU(size,size);
dense1D<int> pvector(size);
copy(_Matrix, LU);
lu_factor(LU, pvector);
// For every permutation of rows the product of diagonal elements has to be multyplied by -1
int sign = 1;
for (int i = 0 ; i < size ; ++i){
if ( pvector[i] != i+1 )
sign *= -1;
}
typename MatrixType::iterator iter;
iter = LU.begin();
double det = 1.0;
unsigned ind = 0;
for ( iter = LU.begin(); iter != LU.end(); ++iter ){
ind = iter.index();
det *= LU(ind, ind);
}
det *= sign;
return det;
}
}

然后在自己的程序中,定义一个mtl的矩阵,就可以直接使用lu_det来计算了,需要注意的是,输入的矩阵行列必须相等。

给MTL库添加求行列式值相关推荐

  1. 矩阵库eigen的用法(三)————求行列式值和三角分解求线性方程组的解

    在经过前面2篇对 eigen库的基础知识了解之后,下面就可以用eigen库进行一些实际的操作了. 1.计算矩阵行列式的值 在Eigen里你不能混合两种不同类型的矩阵,像这样是错的 v_3d <& ...

  2. MATLAB常见矩阵运算函数,矩阵的转置transpose()、求行列式值det()、求矩阵的秩rank()、求矩阵的特征值eig()、求逆矩阵inv()

    MATLAB常见矩阵运算函数 1.转置 如矩阵A 转置后 2.求行列式的值det(A) 使用此函数必须保证A为方阵 3.求矩阵的秩 4.求方阵的特征值 5.求方阵的逆矩阵

  3. C++高斯消去法求行列式值

    </pre><p><pre name="code" class="cpp">////Created By Kevin Fen ...

  4. c语言,通过计算行最简的方式来求行列式的值

    之前写过一个通过定义求行列式值的程序.但是新手写的,懂得都懂.昨天又看了看,我都不知道我咋写出来的了.颇有公司换人接前辈代码的感觉(虽然差了好几个量级).顺带着为了能以后考一考后辈,所以我又用行最简的 ...

  5. opencv求矩阵的逆_OpenCV 矩阵操作 加减乘除 求逆 行列式值 | 学步园

    GEMM 通用矩阵乘法 void cvGEMM( const CvArr* src1, const CvArr* src2, double alpha, const CvArr* src3, doub ...

  6. #c拉普拉斯展开求行列式的值

    #c拉普拉斯展开求行列式的值 #include <stdio.h> int det(int n, int(*p)[n]); int main(){     int n;     scanf ...

  7. c语言编写程序计算行列式值,求行列式的值,用C语言怎么写啊? 如何求行列式的值...

    导航:网站首页 > 求行列式的值,用C语言怎么写啊? 如何求行列式的值 求行列式的值,用C语言怎么写啊? 如何求行列式的值 相关问题: 匿名网友: 行列式计算公式知道吧,给你个源码参考,大一时写 ...

  8. 四阶代数余子式怎么求_老笔记整理五:C实现10阶内通过展开代数余子式求行列式的值...

    这个分为两部分,先是写出了C实现计算三阶行列式,然后过了一段时间突然有了思路才写下了10阶内这段代码.真怀念那段写代码的日子. 一:C实现计算三阶行列式 最近高数课在上线性代数,二阶的还能口算,三阶的 ...

  9. 6*6行列式相加的c语言,求行列式的值,用C语言怎么写啊?

    优质回答 回答者:徐州小可爱 行列式计算公式知道吧,给你个源码参考,大一时写的. #include #include #define MAX 9 /*定义最大为9阶行列式*/ int Fun(int ...

最新文章

  1. 三星自动驾驶汽车路测获批,进军无人驾驶领域
  2. A. Powered Addition【贪心】
  3. kswapd0 挖矿_bioset linux_linux bioset 进程 腾讯云
  4. 初识Buildroot
  5. 荷兰籍空乘服务中国春运:对春节有着别样的感受
  6. Android用ImageView显示本地和网上的图片
  7. 【零基础学Java】—Calendar类(三十四)
  8. Java Excel文件下载
  9. 【Kotlin -- 知识点】学习资料
  10. 数学建模之图论最短路径问题
  11. 出现Illegal invocation的报错
  12. 计算机操作与应用60,60个技巧使您成为计算机高手!
  13. 超市销售数据分析python、求某一个人的营业额总和_Python+pandas使用交叉表分析超市营业额数据!这超市怕是!...
  14. 推土距离, Wasserstein distance
  15. (二) DIM-SUM系统环境搭建之编译与调试环境
  16. Java RPC 分布式框架性能大比拼,Dubbo排老几?
  17. 什么是粗粒度和细粒度权限
  18. 百度webgis-api-加载卫星影像图
  19. iOS_屏幕截图功能
  20. Windows操作系统优化

热门文章

  1. access性别字段_12、ACCESS数据表的筛选(ACCESS图解操作系列)
  2. 计算机考试老师批卷么,【揭秘】高考答卷扫描到电脑上是啥模样?阅卷老师喜欢啥样的答卷?...
  3. C语言之数据类型,C语言之数据类型
  4. python有关迭代器和生成器的面试题_python面试题之生成器迭代器
  5. 洛谷——P1319 压缩技术
  6. div和span标签(HTML)
  7. Vue 报错Error: No PostCSS Config found解决办法
  8. ES6---new Promise()使用方法
  9. 爬取猫眼电影相关信息
  10. 201509-2-日期计算