- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)