📄 gaussian
字号:
#include<iostream>using namespace std;#include"MathFunc.cpp"#include<time.h>int main(){ int n; cout<<"Enter number of unknown variable : "; cin>>n; long double *mat = new long double[n*n]; long double *b = new long double[n]; getMatrix(mat,b,n); //getInput("d_49_49","fx_49",mat,b,n); //getInput("D_225_225","fx_225",mat,b,n); //getInput("input.txt","input1.txt",mat,b,n); //getSparseInput("matrxi_2304","rhsvect_2304",mat,b,n); dispMatrix(mat,b,n); long double *determinant = new long double[n]; for(int i=0; i<n; i++) *(determinant+i) = 1; long double dtrmnt=1; int g=0; long double *x = new long double[n]; for(int i=0; i<n; i++) { if(*(mat+i*n+i)) { long double leadvar=*(mat+i*n+i); *(determinant+(g++))=leadvar; for(int j=0; j<=n; j++) { if(j < n) *(mat+i*n+j)=(*(mat+i*n+j))/leadvar; else *(b+i)=(*(b+i))/leadvar; } for(int j=i+1; j<n; j++) { long double conzero = *(mat+j*n+i); for(int k=0; k<=n; k++) { if(k < n) *(mat+j*n+k)=(*(mat+j*n+k))-(conzero)*(*(mat+i*n+k)); else *(b+j)=(*(b+j))-(conzero)*(*(b+i)); } } } else { *(determinant+(g++))=-1; long double t; for(int t1=i+1; t1<n; t1++) { if(*(mat+i*n+t1)) { for(int m1=0; m1<=n; m1++) { if(m1 < n) { t = *(mat+i*n+m1); *(mat+i*n+m1)=(*(mat+t1*n+m1)); *(mat+t1*n+m1) = t; } else { t = *(b+i); *(b+i)=*(b+t1); *(b+t1) = t; } } } } } } for(int i=0; i<n; i++) *(determinant+(g++))=*(mat+i*n+i); for(int i=0; i<g; i++) dtrmnt*=(*(determinant+i)); cout<<"Matrix in Trianguler form is :"<<endl; dispMatrix(mat,b,n); calX(x,mat,b,n); dispX(x,n); cout<<"Determinant of given matrix: "<<dtrmnt<<endl; return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -