码迷,mamicode.com
首页 > 其他好文 > 详细

高斯消元 浮点数解

时间:2019-01-28 16:04:45      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:cout   情况   nbsp   ios   stream   pre   判断   turn   ons   

#include<iostream>
using namespace std;
 
const int maxn = 1000;
int n;
double a[maxn][maxn];
double b[maxn];
void gaussin()
{
    int Flg = -1,i,j,k;                    //判断方程组是否有解:0无解、1有唯一解、2有无穷解
    double fg;
    //化简部分
    for(i=1;i<=n;i++){
        fg=a[i][i];
        for(j=i+1;j<=n;j++){
            double x = a[j][i]/fg;
            for(k=i;k<=n;k++)
                a[j][k] -= x*a[i][k];
            b[j]-=x*b[i];
        }
    }
    //判断部分
    bool flag;                  //判断方程组是否多解
    for(int i=n;i>0;i--){
        flag = false;
        for(int j=1;j<=n;j++){
            if(a[i][j]!=0){
                break;
            }
            if(j==n){
                if(b[i] == 0)
                    flag = true;
                else
                    Flg = 0;                    //无解情况
            }
        }
        if(Flg != 0)
            if(flag){
                Flg = 2;
                break;
            }
            else
                Flg = 1;
        else
            break;
    }
    //最终结果
    if(Flg == 0)
        cout << "方程组无解"<<endl;
    else if(Flg == 2)
        cout << "方程组多解" << endl;
    else{
        double s[maxn];
        for(int i=n;i>0;i--){
            for(int j=n;j>=i;j--){
                if(j==i)
                    s[i] = b[i]/a[i][j];
                else
                    b[i] -= a[i][j]*s[j];
            }
        }
        cout << "方程组有解:"<<endl;
        for(int i=1;i<=n;i++){
            cout << " x"<<i<<"="<<s[i]<<endl;
        }
    }
}
int main()
{
    cout << "请输入未知数个数:";
    cin>>n;
    for(int i=1;i<=n;i++){
        cout << "请输入第"<<i<<"方程式的系数和结果:"<<endl;
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
        cin>>b[i];
    }
    gaussin();
    return 0;
}

 

高斯消元 浮点数解

标签:cout   情况   nbsp   ios   stream   pre   判断   turn   ons   

原文地址:https://www.cnblogs.com/stranger-/p/10330385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!