数值分析实验报告三.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数值分析实验报告三

求解线性方程组的迭代方法和插值法(2学时)

—实验目的

掌握求解线性方程组的简单迭代法;

掌握求解线性方程组的赛德尔迭代法。

掌握不等距节点下的牛顿插值公式以及拉格朗日插值公式。二实验内容

使用简单迭代法求解方程组(精度要求为??10?6):

?20x

? 1

2x

2

3x

3

?24

? x ?8x ?x

? 1 2 3

?12

?2x ?3x ?15x ?30

1 2 3

使用赛德尔迭代法求解上述方程组(精度要求为??10?6):

已知函数表:

x

x

y

1.45

3.14

1.36

4.15

1.14

5.65

用拉格朗日插值公式计算x

4.已知函数表:

?

1.4以及

y?

5.01

所对应的近似值。

X

93.0

96.2

100.00

104.2

108.7

Y

11.38

12.80

14.70

17.07

19.91

用牛顿插值公式求y(102)的近似值。

三实验步骤(算法)与结果

1/*雅克比迭代法*/#includestdio.h#includemath.h#includestring.hmain()

{

inti,j,k,c,b,z;floatm1=0.0,m2=0.0;

floata[3][4]={20,2,3,24,1,8,1,12,2,-3,15,30};floatx[3]={0.0,0.0,0.0};

if(z=0.5*0.000001)

for(k=1;k=10;k++)

{for(i=0;i=2;i++)

{

for(j=0;ji;j++)m1=m1+a[i][j]*x[j];

1

for(j=i+1;j=3;j++)m2=m2+a[i][j]*x[j];x[i]=(a[i][3]-m1-m2)/a[i][i];c=x[i];

k=k+1;

x[i]=(a[i][3]-m1-m2)/a[i][i];b=x[i];

z=b-c;m1=0,m2=0;

}

}

for(i=0;i=2;i++)printf(x(%2d)=%.6f\n,i+1,x[i]);

}

2/*赛德尔迭代法*/#includestdio.h#includemath.h#includestring.hmain()

{

inti,j,k;

floatm1=0.0,m2=0.0;

floata[3][4]={20,2,3,24,1,8,1,12,2,-3,15,30};floatx[3]={0.0,0.0,0.0};

for(k=1;k=7;k++)

{for(i=0;i=2;i++)

{

for(j=0;ji;j++)m1=m1+a[i][j]*x[j];for(j=i+1;j=3;j++)m2=m2+a[i][j]*x[j];x[i]=(a[i][3]-m1-m2)/a[i][i];

m1=0,m2=0;

}

}

for(i=0;i=2;i++)printf(x(%2d)=%.6f\n,i+1,x[i]);

}

2

/*拉格朗日插值法*/#includestdio.h#defineN3

main()

{floatx[N],y[N],xx,yy,t,z;inti,j,n;

printf(Pleaseenterthexis:);/*输入要求的值*/scanf(%f,xx);

printf(Pleaseenterothernumber:\n,n-1);for(i=1;i=N;i++)

{printf(x%d=,i);

scanf(%f,x[i]);

printf(y%d=,i);scanf(%f,y[i]); }for(i=1;in+1;i++)

{if(xxx[i+1]xxx[i])

yy=y[i]*(xx-x[i+1])/(x[i]-x[i+1])+y[i+1]*(xx-x[i])/(x[i+1]-x[i]); }t=1;z=y[0];

for(i=1;in+1;i++)

{t=t*(xx-x[i-1]);z=z+y[i]*t;

}

printf(They=%f\n,yy);

}

/*拉格朗日插值法*/#includestdio.h#defineN3

main()

{floatx[N],y[N],xx,yy,t,z;inti,j,n;

printf(Pleaseentertheyis:);/*输入要求的值*/

scanf(%f,yy);

3

printf(Pleaseenterothernumber:\n,n-1);for(i=1;i=N;i++)

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档