1 / 7
文档名称:

高斯-赛德尔算法.doc

格式:doc   大小:1,081KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

高斯-赛德尔算法.doc

上传人:慢慢老师 2022/2/14 文件大小:1.06 MB

下载得到文件列表

高斯-赛德尔算法.doc

相关文档

文档介绍

文档介绍:数值计算方法实验报告
班级:09医软1班 指导教师:金力
工作组成员:谢清泉(负责程序主体部分的编写)
魏月圆(负责流程图和实验报告的书写)
项波波(负责程序的调试和修改)

}
printf("请输入常量向量 b:");
for(i=0;i<n;i++)
scanf("%f",&b[i]); /*一维数组分配值*/

printf("联合矩阵为:\n");
for(i=0;i<n;i++) /*将数组结合,检验输入是否有误*/
{
for(j=0;j<n;j++)
printf("%",a[i][j]);
printf("%",b[i]);
printf("\n");
}

}
float init_vec(int n,float x[N]) /*获取初始值*/
{
int i;
printf("请输入初始解 x:");
for(i=0;i<n;i++)
scanf("%f",&x[i]);

}
float gs(int n,float a[N][N],float b[N],float x[N]) /*迭代的实现*/
{
int i,j,k;
float m;
float tmp1,tmp2,x2[N];
printf("请输入精度m: ");
scanf("%f",&m);
for(k=0;k<10001;k++) /*设定最大迭代次数不能超过1000*/
{
for(i=0;i<n;i++)
x2[i]=x[i];
for(i=0;i<n;i++)
{
tmp1=;
tmp2=;
for(j=0;j<i;j++)
tmp1+=a[i][j]*x[j];
for(j=i+1;j<n;j++)
tmp2+=a[i][j]*x2[j];
x[i]=(b[i]-tmp1-tmp2)/a[i][i];
}
for(i=0,j=0;i<n;i++)
if(fabs(x2[i]-x[i])<m) j++; /*求解两向量差的范数*/
if(j==n)
{
printf("\n Gauss-Seidel 迭代已完成!");