Gauss消元模板
2024-09-06 20:43:41
const double eps = 1e-;
//高斯消元模板
//-----------------------------------------------------------------------------------
//把对应得系数矩阵化为对角矩阵,然后直接回代即可
const int maxn=+;
const int maxm=+;
//a为增广矩阵,ans为一组特解,n为未知数个数,free_x[i]=false表示该变量为自由变量
double a[maxn][maxm],ans[maxn];
int n;
bool free_x[maxn];
int Gauss(){
int res=,r=;
for(int i=;i<n;i++) free_x[i]=false;
for(int i=;i<n;++i){
for(int j=r;j<n;++j) //寻找该列中不等于0的元素,然后交换行
if(fabs(a[r][i])>eps) {
for(int k=i;k<=n;++k){
swap(a[j][k],a[r][k]);
break;
}
}
if(fabs(a[r][i])<eps) { //该列中元素全为0,自由变元增加一
++res;continue;
}
for(int j=;j<n;++j){//用第r列将该列其他元素全部化为0
if(j!=r&&fabs(a[r][i])>eps){
double tmp=a[j][i]/a[r][i];
for(int k=i;k<=n;++k)
a[j][k]-=tmp*a[r][k];
}
}
free_x[i]=true;++r;
}
for(int i=;i<n;++i)
if(free_x[i]) {
for(int j=;j<n;++j)
if(fabs(a[j][i])>eps) ans[i]=a[j][n]/a[j][i];
}
return res;
}
//-----------------------------------------------------------------------------------
最新文章
- 【BZOJ-1419】Red is good 概率期望DP
- CentOS 7 修改时区(转)
- IOS APP的所有图标尺寸规范
- jquery 当前链接激活传递参数|div的切换显示
- 当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误
- [原创]Devexpress XtraReports 系列 7 创建Drill-Down(向下钻取)报表
- JMS消息头
- 25.allegro中模块复用[原创]
- LINQ Enumerable 续 II
- 总结下Redux
- Docker问题: Layer already being pulled by another client. Waiting.什么原因
- 吴裕雄 python 机器学习——分类决策树模型
- ESP8266 HTTP 项目(2)HTTP网页修改WIFI连接,上电自动连接上次的WIFI。
- A - Exposition CodeForces - 6E
- springboot 2.0部署到Tomat8.5上
- python摸爬滚打之day17----类与类之间的关系
- Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集
- springboot 项目 注意事项
- mysql 1045 access denied for user********
- 编译安装 zbar 时两次 make 带来的惊喜