zoukankan      html  css  js  c++  java
  • 运用Doolitle分解法解线性方程组

    #include<stdio.h>
     
    const int maxn=1100;
     
    double b[maxn],x[maxn],y[maxn];
    double a[1100][1100];
    double l[1100][1100];
    double u[1100][1100];
    int n;
     
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                scanf("%lf",&a[i][j]);
        for(int i=1;i<=n;i++) scanf("%lf",&b[i]);
        for(int i=1;i<=n;i++)
            l[i][i]=1;
        for(int k=1;k<=n;k++){
            if(k==1){
                for(int j=1;j<=n;j++) u[1][j]=a[1][j];   
                for(int i=2;i<=n;i++) l[i][1]=a[i][1]/u[1][1];
            }
            else{
                for(int j=k;j<=n;j++){
                    double tmp=0;
                    for(int s=1;s<=k-1;s++)
                        tmp+=l[k][s]*u[s][j];
                    u[k][j]=a[k][j]-tmp;
                }
                for(int i=k+1;i<=n;i++){
                    double tmp=0;
                    for(int s=1;s<=k-1;s++)
                        tmp+=l[i][s]*u[s][k];
                    l[i][k]=(a[i][k]-tmp)/u[k][k];
                }
            }
        }
        y[1]=b[1];
        for(int k=2;k<=n;k++){
            double tmp=0;
            for(int s=1;s<=k-1;s++)
                tmp+=l[k][s]*y[s];
            y[k]=b[k]-tmp;
        }
        x[n]=y[n]/u[n][n];
        for(int k=n-1;k;k--){
            double tmp=0;
            for(int s=k+1;s<=n;s++)
                tmp+=u[k][s]*x[s];
            x[k]=(y[k]-tmp)/u[k][k];
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++) printf("%.6f ",l[i][j]);
            puts("");
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++) printf("%.6f ",u[i][j]);
            puts("");
        }
        for(int i=1;i<=n;i++) printf("y[%d]=%.6f
    ",i,y[i]);
        for(int i=1;i<=n;i++) printf("x[%d]=%.6f
    ",i,x[i]);
        return 0;
    }
    /*
    3
    1 2 -1
    1 -1 5
    4 1 -2
    3 0 2
    */
    
  • 相关阅读:
    WCF使用net.tcp寄宿到IIS中
    (转)Dubbo 简单Dome搭建
    Linux压缩解压
    Linux关闭开启防火墙命令
    简单登录(jsp+servlet)
    UVa 10285 Longest Run on a Snowboard [DP]
    UVa 1218 Perfect Service [DFS+DP]
    第三届ACM山东省赛 Pick apples [贪心+动规]
    ZOJ 3326
    HDU 1029
  • 原文地址:https://www.cnblogs.com/OvOq/p/14853116.html
Copyright © 2011-2022 走看看