zoukankan      html  css  js  c++  java
  • P3389 【模板】高斯消元法

    P3389 【模板】高斯消元法

    题目背景

    Gauss消元

    题目描述

    给定一个线性方程组,对其求解

    输入输出格式

    输入格式:

     

    第一行,一个正整数 nn

    第二至 n+1n+1行,每行 n+1n+1 个整数,为a_1, a_2 cdots a_na1,a2an 和 bb,代表一组方程。

     

    输出格式:

     

    共n行,每行一个数,第 ii行为 x_ixi (保留2位小数)

    如果不存在唯一解,在第一行输出"No Solution".

     

    输入输出样例

    输入样例#1: 复制
    3
    1 3 4 5
    1 4 7 3
    9 3 2 2
    输出样例#1: 复制
    -0.97
    5.18
    -2.39

    说明

    1 leq n leq 100, left | a_i ight| leq {10}^4 , left |b ight| leq {10}^41n100,ai104,b104

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    
    using namespace std;
    int n;
    double f[101][101],ans[101];
    const double eps=1e-12;
    
    int dcmp(double x)
    {
        if(x<=eps && x>=-eps) return 0;
        return (x>0)?1:-1;
    }
    
    bool gauss()
    {
        for(int i=1;i<=n;i++)
        {
            int num=i;
            for(int j=i+1;j<=n;j++)
              if(dcmp(f[i][j]-f[num][i])>0)
                num=j;
            if(num!=i)
              for(int j=1;j<=n+1;j++)
                swap(f[i][j],f[num][j]);
            for(int j=i+1;j<=n;j++)
              if(dcmp(f[j][i]))
              {
                    double t=f[j][i]/f[i][i];
                    for(int k=1;k<=n+1;k++)
                      f[j][k]-=t*f[i][k];
              }
        }
        
        for(int i=n;i>=1;i--)
        {
            if(dcmp(f[i][i])==0) return 0;
            for(int j=i+1;j<=n;j++) f[i][n+1]-=f[i][j]*ans[j];
            ans[i]=f[i][n+1]/f[i][i];
        }return 1;
    }
    
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
          for(int j=1;j<=n+1;j++)
            scanf("%lf",&f[i][j]);
            
        if(gauss())
          for(int i=1;i<=n;i++)
            printf("%.2lf
    ",ans[i]);
        else puts("No Solution
    ");
        return 0;
    }
    折花枝,恨花枝,准拟花开人共卮,开时人去时。 怕相思,已相思,轮到相思没处辞,眉间露一丝。
  • 相关阅读:
    ubuntu 构建Xilinx交叉编译环境
    codeSourcery交叉编译环境
    ZYNQ学习之路1. Linux最小系统构建
    静态代码块的执行顺序
    storm maven-shade-plugin
    spring 3.2.7 applicationContext.xml
    ZipUtils
    成员内部类
    jetty jndi数据源
    applicationContext中普通数据源不用jndi数据源
  • 原文地址:https://www.cnblogs.com/L-Memory/p/7799657.html
Copyright © 2011-2022 走看看