标题:
n阶(<20)行列式计算器 (有bug)
[打印本页]
作者:
xiaos
时间:
2015-4-10 17:28
标题:
n阶(<20)行列式计算器 (有bug)
最近线代的计算量越来越大了 网上的计算器 只能算低阶的行列式 .所以我自己就写了一个 最多可以计算20阶的行列式的 代码 计算结果总是会出问题,我发在这里 希望有谁能给我建议 .基于C语言 主要使用递归算法完成.
复制代码
#include "stdafx.h"
float p[][20] = { 0 };
void T(float(*a)[20], float(*p2)[20], int y, int x, int n)//把a中的数据 去掉第 y 行 第x列 后给p2
{
int k = 0, l = 0;
for (int i = 0; i<n; i++)
{
if (i != y)
{
for (int j = 0; j<n; j++)
{
if (j != x)
{
p2[k][l] = a[i][j];
if (++l == n - 1)
{
l = 0;
}
}
}
k++;
}
}
}
int cc(int i, int j)
{
if ((i + j) % 2 == 0)
{
return 1;
}
else
return -1;
}
float Deter(float(*a)[20], int n)//计算行列式的主要函数
{
float s = 0;
if (n == 2)
{
s = a[0][0] * a[1][1] - a[1][0] * a[0][1];
}
else
{
for (int i = 0; i<n; i++)
{
T(a, p, i, 0, n);
s += a[i][0] * Deter(p, n - 1)*cc(i + 1, 1);
}
}
return s;
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1