| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 592 人关注过本帖
标题:怎样把下列程序修改为逐次松弛迭代?
只看楼主 加入收藏
冰越
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-3-19
结帖率:0
收藏
 问题点数:0 回复次数:0 
怎样把下列程序修改为逐次松弛迭代?
/*此程序是高斯赛德尔迭代*/
大神们帮哈忙  万分感谢
#include "stdio.h"
#include "math.h"
#include "conio.h"
#define n 3
#define N 30
#define eps 1e-3
main()
{
    int i,j,k=0;
    float A[3][3]={{8,-1,1},{2,10,-1},{1,1,-5}},b[3]={8,11,-3},X[3]={0,0,0},t,e,s;
  
    while(k<=N)
    {
    e=0.0;
    printf("\nk=%d\t",k);
    for(i=0;i<=n-1;i++)
    {
           s=0.0;
           t=X[i];
           printf("x%d=%f\t",i,X[i]);
           for(j=0;j<=n-1;j++)
                 if(j!=i)
                    s+=A[i][j]*X[j];
           X[i]=(b[i]-s)/A[i][i];
           if(e<fabs(X[i]-t))
                  e=fabs(X[i]-t);
    }
    if(e<=eps)
    {
            printf("\nThe root:\nk=%d\t",k+1);
                printf("\n");
            for(i=0;i<=n-1;i++)
                  printf("x%d=%f\t",i,X[i]);
            break;
    }
    if(k==N)
    {
            printf("Fail!");
            exit();
    }
    k++;
    }
  printf("\n");
}
2016-03-22 19:24
快速回复:怎样把下列程序修改为逐次松弛迭代?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017155 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved