高斯消元解行列式

来源:互联网 发布: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());}


原创粉丝点击