高斯消元解行列式
来源:互联网 发布:mac下载bilibili视频 编辑:程序博客网 时间:2024/04/30 14:33
数组a是要求的行列式,写的第一个行列式计算
#include<stdio.h>#include<algorithm>#include<string.h>#include<math.h>#include<iostream>using namespace std; const int n=4;const double eps=1e-6;double a[n][n]={ 3, 1, -1, 2,-5, 1, 3, -4, 2, 0, 1, -1, 1, -5, 3, -3};bool zero(double a){return a>-eps && a<eps;}double Gauss(){double mul,Result=1;int i,j,k,b[n];for(i=0;i<n;i++) b[i]=i;for(i=0;i<n;i++){if(zero(a[b[i]][i]))for(j=i+1;j<n;j++)if(!zero(a[b[j]][i])) { swap(b[i],b[j]); Result*=-1; break; }Result*=a[b[i]][i];for(j=i+1;j<n;j++)if(!zero(a[b[j]][i])){mul=a[b[j]][i]/a[b[i]][i];for(k=i;k<n;k++)a[b[j]][k]-=a[b[i]][k]*mul;}}return Result;}int main(){printf("%.0lf\n",Gauss());}