zoukankan      html  css  js  c++  java
  • 高斯消元

    高斯消元其实就是把增广矩阵化成三角矩阵的形状,然后回代答案的过程

    有自由元即无唯一解

    模板题

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    typedef unsigned long long ull;
    typedef pair<int,int> pii;
    #define fi first
    #define se second
    #define debug printf("aaaaaaaaaaa\n");
    const int maxn=1e2+5,inf=0x3f3f3f3f,mod=51123987,mul=233;
    const ll INF=0x3f3f3f3f3f3f3f3f;
    const double eps=1e-7;
    int n;
    double a[maxn][maxn],x[maxn];
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n+1;j++){
                scanf("%lf",&a[i][j]);
            }
        }
        for(int i=1,pos;i<=n;i++){
            for(pos=i;pos<=n;pos++){
                if(fabs(a[pos][i])>eps){
                    break;
                }
            }
            if(pos==n+1){
                printf("No Solution\n");
                return 0;
            }
            for(int j=1;j<=n+1;j++){
                swap(a[pos][j],a[i][j]);
            }
            for(int j=i+1;j<=n;j++){
                double p=a[j][i]/a[i][i];
                for(int k=i;k<=n+1;k++){
                    a[j][k]-=p*a[i][k];
                }
            }
        }
        for(int i=n;i>=1;i--){
            x[i]=a[i][n+1];
            for(int j=i+1;j<=n;j++){
                x[i]-=x[j]*a[i][j];
            }
            x[i]/=a[i][i];
        }
        for(int i=1;i<=n;i++){
            printf("%.2f\n",x[i]);
        }
        return 0;
    }
    
    
    不摆烂了,写题
  • 相关阅读:
    Python multiprocessing相关疑问
    Tornado demo3
    WebSockets
    Tornado Demo1---webspider分析
    Python assert断言
    Python学习之--数据基础
    Python学习之--python概要
    Python学习之--函数/生成器/装饰器
    Python学习之文件操作
    Python操作MySQL数据库
  • 原文地址:https://www.cnblogs.com/hunxuewangzi/p/15072513.html
Copyright © 2011-2022 走看看