Magic~笑颜常开 2020-08-10 16:58 采纳率: 0%
浏览 246
已采纳

使用Gauss-Jordan 消元法的计算

**学校的作业,让程序最后输出成如图这样,代码看了半天不知道怎么搞,自己的代码输出后是第三张图那样,一堆乱数,实在不明白,哪位高手来替小弟解下惑!
**

图片说明

图片说明

图片说明

图片说明

代码~~~~~~~

#include

#define N 100

void output(int n, int st, double a[100][N], double b[100])

{
int i, j;

printf("\n\nStep  %3d\n", st);
for (i = 1;i <= n;i++) {
    for (j = 1;j <= n;j++)
        printf("   %8.2f", a[i][j]);
    printf("   %8.2f\n", b[i]);
}

}
int main(void)
{
int i, j, k, n, q;
double p;
double a[N][N], b[N], x[N];

printf("namber of demension(n) =");        
scanf("%d", &n);
for (i = 1;i <= n;i++) {
    for (j = 1;j <= n;j++) {
        printf("a[%d][%d] =", i, j);
        scanf("%lf", &a[i][j]);
    }
    printf("b[%d] =", i);
    scanf("%lf", &b[i]);
}
printf("\n\nGauss eliminaition method\n\n");
printf("input data\n");
for (j = 1;j <= n;j++)
    printf("         x%d", j);
printf("       rhs\n");
for (i = 1;i <= n;i++) {
    for (j = 1;j <= n;j++)
        printf("   %8.2f", a[i][j]);
    printf("   %8.2f\n", b[i]);
}

for (i = 1;i <= n;i++) {
    p = a[i][i];
    for (j = i;j <= n;j++)
        a[i][j] = a[i][j] / p;
    b[i] = b[i] / p;
    for (k = 1;k <= n;k++) {
        if (k != i) {
            q = a[k][j];
            for (j = i;j <= n;j++)
                a[k][j] = a[k][j] - q * a[i][j];
            b[k] = b[k] - q * b[i];
        }
    }
    output(n, i, a, b);
}

printf("\n\n solution :\n\n"); 
for (i = 1; i <= n; i++)
    printf(" x[%d] =b[%d] %8.2f¥n", i, x[i], b[i]);
return 0;

}

  • 写回答

1条回答 默认 最新

  • 关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元