求行列式
来源:互联网 发布:super java作用 编辑:程序博客网 时间:2024/04/30 11:34
//用求上三角的方法求行列式的值
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
//int a[n][n]={{1, 2, 3 ,4},{2 ,3 ,4 ,1},{3 ,4 ,1 ,2},{4, 1, 2, 3}};
int n;
freopen("data.txt","r",stdin);//请在工程项目目录下新建data.txt,将行列式的阶数及行列式信息输入
/*for example
3
1 2 -3
-2 3 -1
1 -2 8
*/
freopen("res.txt","w",stdout);//结果输出
cin>>n;
double a[n][n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
int sign=1;
double tmp[n];
int p;
for(int col=0;col<n;col++)
{
int row;
p=-1;
for(row=col;row<n;row++)
{
if(a[row][col]!=0)
{
p=row; break; //确保当前的值不为零,否则下面将出现错误,算法要求出右下的不为零的点
}
}
if(-1==p) {cout<<"0"<<endl;return 0;}
if(p!=col) //交换
{
for(int j=0;j<n;j++)
{
tmp[j]=a[col][j];
a[col][j]=a[p][j];
a[p][j]=tmp[j];
}
sign=-sign; // 交换变号
}
for(int row=col+1;row<n;row++)
{
double factor=a[row][col]/a[col][col];//确保a[col][col]不为零
a[row][col]=0;
for(int _col=col+1;_col<n;_col++)
{
a[row][_col]-=a[col][_col]*factor;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}
double res=1.0;
for(int i=0;i<n;i++)
{
res*=a[i][i];
}
cout<<endl;
res*=sign;
cout<<res<<endl;
}
- 求行列式
- 求矩阵行列式
- 多线程求行列式值
- 求矩阵的行列式
- 矩阵求逆 转置 行列式
- 矩阵求逆 转置 行列式
- 求矩阵行列式的方法
- matlab如何求矩阵行列式
- det--求矩阵的行列式
- 【Codewars-求矩阵行列式】python
- 矩阵求逆、转置、行列式(转)
- 给MTL库添加求行列式值
- python实现矩阵求行列式的值
- matlab求矩阵特征值和特征向量、行列式
- 算法:求行列式 C语言实现
- 矩阵求逆及行列式求值
- c语言实现求行列式值
- Python递归求矩阵的行列式
- JSF入门实例--简明版
- 一种梦幻字效,很漂亮哦ps新手教程区中华图网
- 不能干一辈子程序员?
- 做图精彩网址
- MyEclipse6.0下代码提示(alt+/)无法使用的解决方法(转)
- 求行列式
- arm-linux交叉编译器
- iPhone SDK受追捧 前四天下载量突破十万, 主要得益于分成模式(三七分成)
- 超酷壁纸网站
- 我在路口徘徊……
- Ghost XP SP2下如何安装IIS的解决方案
- unix 系统调用总结(一)
- Asp.Net 学习资源列表
- 从WEB SERVICE 上返回大数据量的DATASET