社区讨论

高斯约旦消元被卡精度怎么办

学术版参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo330f18
此快照首次捕获于
2023/10/23 23:57
2 年前
此快照最后确认于
2023/10/23 23:57
2 年前
查看原帖
各种eps都试过了,long double也不行。
CPP
void guass(ll n)
{
    ll heng = 1;
    for(int i = 1 ; i <= n ; i++)
    {
        ll mx = heng;
        for(int j = heng + 1 ; j <= n ; j++)if(fabs(a[j][i]) - fabs(a[mx][i]) > eps)mx = j;
        if(fabs(a[mx][i]) < eps)continue;
        for(int j = 1 ; j <= n + 1 ; j++)swap(a[heng][j],a[mx][j]);
        for(int j = 1 ; j <= n ; j++)
        {
            if(heng == j)continue;
            db t = a[j][i] / a[heng][i];
            for(int k = 1 ; k <= n + 1 ; k++)a[j][k] -= a[heng][k] * t;
        }
        heng++;
    }
}

回复

5 条回复,欢迎继续交流。

正在加载回复...