det计算矩阵的行列式

矩阵的行列式, 指正方矩阵的行列式.

计算方法参考 : 

http://zh.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F

如图 : 


 对于简单的2阶和3阶的矩阵,行列式的表达式相对简单,而且恰好是每条主对角线(左上至右下)元素乘积之和减去每条副对角线(右上至左下)元素乘积之和(见图中红线和蓝线)。

2阶矩阵的行列式

3阶矩阵的行列式

在R中使用det可以迅速的得到矩阵的行列式的值.  

需要注意矩阵必须是正方矩阵.

> x <- matrix(1:12,3,4)
> x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> det(x)
Error in determinant.matrix(x, logarithm = TRUE, ...) :
  'x' must be a square matrix
> x <- matrix(1:16,4,4)
> det(x)
[1] 0
> x
     [,1] [,2] [,3] [,4]
[1,]    1    5    9   13
[2,]    2    6   10   14
[3,]    3    7   11   15
[4,]    4    8   12   16
> det(t(x))
[1] 4.733165e-30
> t(x)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
[4,]   13   14   15   16

[参考]

1. http://zh.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F

2. > help(det)

det                    package:base                    R Documentation

Calculate the Determinant of a Matrix

Description:

     ‘det’ calculates the determinant of a matrix.  ‘determinant’ is a
     generic function that returns separately the modulus of the
     determinant, optionally on the logarithm scale, and the sign of
     the determinant.

Usage:

     det(x, ...)
     determinant(x, logarithm = TRUE, ...)

Arguments:

       x: numeric matrix: logical matrices are coerced to numeric.

logarithm: logical; if ‘TRUE’ (default) return the logarithm of the
          modulus of the determinant.

     ...: Optional arguments.  At present none are used.  Previous
          versions of ‘det’ allowed an optional ‘method’ argument.
          This argument will be ignored but will not produce an error.

Details:

     The ‘determinant’ function uses an LU decomposition and the ‘det’
     function is simply a wrapper around a call to ‘determinant’.

     Often, computing the determinant is _not_ what you should be doing
     to solve a given problem.

Value:

     For ‘det’, the determinant of ‘x’.  For ‘determinant’, a list with
     components

 modulus: a numeric value.  The modulus (absolute value) of the
          determinant if ‘logarithm’ is ‘FALSE’; otherwise the
          logarithm of the modulus.

    sign: integer; either +1 or -1 according to whether the determinant
          is positive or negative.

Examples:

     (x <- matrix(1:4, ncol = 2))
     unlist(determinant(x))
     det(x)

     det(print(cbind(1, 1:3, c(2,0,1))))
时间: 2024-08-02 18:19:40

det计算矩阵的行列式的相关文章

开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

原文:[原创]开源Math.NET基础数学类库使用(15)C#计算矩阵行列式                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html  上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程

【原创】开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

               本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对源代码进行分析,使得大家可以尽可能的使用Math.NET在.NET平台下轻易的开发数学计算相

【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩

               本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对源代码进行分析,使得大家可以尽可能的使用Math.NET在.NET平台下轻易的开发数学计算相

【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

               本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对源代码进行分析,使得大家可以尽可能的使用Math.NET在.NET平台下轻易的开发数学计算相

开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

原文:[原创]开源Math.NET基础数学类库使用(17)C#计算矩阵条件数                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组

矩阵 排序-计算矩阵中d(i)的值,d为矩阵中所有点值的一个排序

问题描述 计算矩阵中d(i)的值,d为矩阵中所有点值的一个排序 解决方案 图太小,什么也看不见.无非就是二维数组循环,自己写下不难的.

Matlab计算矩阵间距离

夜深人静时分,宿舍就我自己,只有蚊子陪伴着我,我慢慢码下这段文字............ 感觉知识结构不完善:上学期看论文,发现类间离散度矩阵和类内离散度矩阵,然后百度,找不到,现在学模式识别,见了,发现是数学公司,不过老师不讲........ 一.问题来源 今天有个意想不到的收货,下午讲课的时候遇到一个人主动加我,来自南京信息工程大学的某X(处于隐私保护,未经李某X同意,笔者不敢公开其信息),下面是他的话:很久没去博客园了....现在只有matlab版本的一些hash算法;我现在主要就是在研究

Matlab计算矩阵和函数梯度

一.差分与微分 我自己的理解. 二.求解 2.1 矩阵 这就是matlab的计算结果.太小的话放大些: c = 4 5 9 7 2 1 5 2 6 >> [x,y]=gradient(c) x = 1.0000 2.5000 4.0000 -5.0000 -3.0000 -1.0000 -3.0000 0.5000 4.0000 y = 3.0000 -3.0000 -8.0000 0.5000 -1.5000 -1.5000 -2.0000 0 5.0000 先看x,x就是矩阵的横向梯度,怎

Mathematica 计算矩阵的伴随矩阵

AdjointMatrix[M_] := Module[{Ma, B, n, i, j},    Ma = Minors[M];    B = Ma;    n = Dimensions[M][[1]];    For[i = 1, i <= n, i++,     For[j = 1, j <= n, j++,       B[[i, j]] = Ma[[n + 1 - i, n + 1 - j]]*(-1)^(i + j);];(*inner for*)     ];(*outer for