高斯 赛德尔迭代的c语言程序,用C语言实现高斯-赛德尔迭代方法.doc

用C语言实现高斯-赛德尔迭代方法, 源程序代码:

#include "stdlib.h"

#include "stdio.h"

#include "conio.h"

#include "string.h"

#include "math.h"

#define N 100

float Table(int n,float a[N][N],float b[N])

{

int i,j;

float c[N][N];

printf("Please input the matrix A by row!\n");

label:for(i=0;i

{

printf("Row %d:",i+1);

for(j=0;j

scanf("%f",&a[i][j]);

}

printf("Please input the vector b:");

for(i=0;i

scanf("%f",&b[i]);

for(i=0;i

for(j=0;j

{

if(i==j)

{

c[i][j]=0;

continue;

}

c[i][j]=-a[i][j]/a[i][i];

}

printf("\nThe matrix A and vector b:\n");

for(i=0;i

{

for(j=0;j

printf("%10.5f",a[i][j]);

printf("%10.5f",b[i]);

printf("\n");

}

printf("\nThe Gauss-Seidel iterative scheme:\n");

for(i=0;i

{

for(j=0;j

printf("%10.5f",c[i][j]);

printf("%10.5f",b[i]/a[i][i]);

printf("\n");

}

}

float init_vec(int n,float x[N])

{

int i;

printf("Please input the initial iteration vector x:");

for(i=0;i

scanf("%f",&x[i]);

printf("\nThe initial iteration vector x:\n");

for(i=0;i

printf("%10.5f",x[i]);

printf("\n");

}

float gs(int n,float a[N][N],float b[N],float x[N])

{

int i,j,k;

float tmp1,tmp2,x2[N];

for(k=0;k<10001;k++)

{

for(i=0;i

x2[i]=x[i];

for(i=0;i

{

tmp1=0.0;

tmp2=0.0;

for(j=0;j

tmp1+=a[i][j]*x[j];

for(j=i+1;j

tmp2+=a[i][j]*x2[j];

x[i]=(b[i]-tmp1-tmp2)/a[i][i];

}

for(i=0,j=0;i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值