美文网首页
n阶行列式算法

n阶行列式算法

作者: mtobeiyf | 来源:发表于2015-11-01 22:46 被阅读460次

那时,线性代数刚学到行列式。突然有种冲动想做个行列式计算器。于是就有了下面这个n阶行列式计算器。(●—●)

运行效果

思路

其实用的是最简单的方式: 按行列式的第一行展开。
算法用的是递归。说的简单的点,类似数列的递推。如果: n阶行列式的值是a(n),那么按照第一行展开,会得到余子式,而余子式是n-1阶的行列式,那么可以记为a(n-1),其计算方法是和计算a(n)一样的。所以可以构造一个函数f,计算f(n)要用到f(n-1),同理一直推下去,直到f(2)是一个固定的值。这个值会返回代入f(3)并计算出f(3)的值,如此直到计算出f(n)的值。

使用工具

  • 开发工具: Visual Studio 2015
  • 开发语言: C#

下面贴出核心代码

public double[,] cofactor(double[,] x, int n, int a) 
{
    double[,] result = new double[n - 1, n - 1];
    for (int j = 0; j < a; j++)
    {
        for (int i = 1; i < n; i++)
        {
            result[i - 1, j] = x[i, j];
        }
    }
    for (int j = a + 1; j < n; j++)
    {
        for (int i = 1; i < n; i++)
        {
            result[i - 1, j - 1] = x[i, j];
        }
    }
    return result;
}

以上是求一个余子式的函数。最终返回n-1阶数组的结果。
其中第一行的参数中:x为原矩阵,n为阶数,a为按第一行展开到了第几个数。
下面是求行列式的函数,调用到了Pow(求幂)和上面的求余子式的函数。

public double det(double[,] x, int n)
{
    double result = 0;
    if (n == 2)
    {
        return x[0, 0] * x[1, 1] - x[0, 1] * x[1, 0];
    }
    else
    {
        for (int i = 0; i < n; i++)
        {
            result = result + x[0, i] * Math.Pow(-1, i) * det(cofactor(x, n, i), n - 1);      //按第一行展开,降阶算
        }
        return result;
    }
}

再加上输入和输出,就是一个完整的行列式计算器。
代码并不长,也没用到什么高级的东西。
仅供参考,欢迎指出问题。
©Fing
2015-10-21

相关文章

  • P1-P2行列式

    二阶三阶行列式 行列式 三阶行列式.png n阶排列 种 逆序数 偶排列,奇排列 标准排列(自然排列) 对换 n...

  • 行列式定义

    n阶行列式 n阶行列式 标识形式 行列式展开按行展开 - 特殊行列式下三角行列式 规律 行标取标准排列123 列标...

  • 线性代数(3) 行列式以及行列式展开

    n 阶行列式 之前我们通过按一定规律进行画线来对 2 阶和 3 阶行列式进行展开。2 阶行列式和 3 阶行列式展开...

  • n阶行列式算法

    那时,线性代数刚学到行列式。突然有种冲动想做个行列式计算器。于是就有了下面这个n阶行列式计算器。(●—●) 思路 ...

  • 线性相关

    △行列式的概念 全排列 对换 n阶行列式 转置行列式 △△△△行列式的性质 △△△应用行列式的性质 余子式和代数余...

  • n阶行列式

    n阶行列式拉普拉斯展开n阶行列式拉普拉斯展开.PNG 十大性质 性质 1性质1.PNG 性质 2.1性质2.1.P...

  • 行列式

    1. n阶行列式定义 2. 行列式性质 行列式与它的转置行列式相等。转置行列式 对换行列式的俩行(列),行列式变...

  • 线性代数——(4)行列式

    二阶方阵的行列式 克拉默法则 三阶矩阵行列式 沙路法 排列 排列的逆序数 奇排列和偶排列 n解矩阵行列式的定义 下...

  • 线性代数(一)行列式

    一、行列式的本质定义 n阶行列式是由n个n维向量组成的,其运算规则的结果为以这个向量为邻边的n维图形的体积。 二、...

  • Chapter1——行列式

    1. 全排列与逆序数 2. 行列式 2.1 n阶行列式 奇排列:为奇数偶排列:为偶数 2.2 行列式的性质 1. ...

网友评论

      本文标题:n阶行列式算法

      本文链接:https://www.haomeiwen.com/subject/xbkqhttx.html