double a[i][i];
const double eps =1e-5;//1*10^-5
void gauss(int n)
{
for(int i=1;i<=n;i++)//枚举方程
{
int k=-1;
for(int j=1;j<=n&&k==-1;j++)
if(fabs(a[i][j])>eps) k=j;//fabs 绝对值 eps自定义精度(相对于0)
if(k==-1){
if(fabs(a[i][n+1])<eps) puts("duo jie");
else puts("wu jie");
return;
}
where[i]=k;//记一下每个方程的主元位置
for(int j=1;j<=n;j++) if(i!=j)//其他方程
{
double t=a[j][p]/a[i][p];
for(int p=1;p<=n+1;p++)//注意是n+1
a[j][k]-=a[i][k]*t;
}
for(int i=1;i<=n;i++)
x[where[i]]=a[i][n+1]/a[i][where[i]];
}
}其实原理和代入消元法差不多~
高斯消元法
最新推荐文章于 2022-09-25 15:00:03 发布
本文介绍了一种使用高斯消元法求解线性方程组的方法,通过枚举方程并寻找主元,进而进行消元处理。如果存在无法精确求解的情况,则会判断方程组是否有解或多解。

3340

被折叠的 条评论
为什么被折叠?



