- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
河北工业大学
《数值分析》课程试验
实验报告
专业:计算机科学与技术
班级:计1305班
姓名:岳帅鹏
学号:133007
完毕日期:_.1.11
试验一
一、试验规定
用两种不一样的次序计算
,分析其误差的变化。
二、试验目的
1、通过上机编程,复习巩固此前所学程序设计语言;
2、通过上机计算,理解舍入误差所引起的数值不稳定性。
3、通过上机计算,理解运算次序对计算成果的影响,从而尽量防止大数吃小数的现象。
三、算法描述
1)首先用float精度正序相加得到10000项的和;
2)接着用float精度逆序相加得到10000项的和;
3)然后用double精度正序相加得到10000项的和;
4)再用double精度逆序相加得到10000项的和;
5)根据成果,进行比较分析问题。四、源程序
#includestdio.h#includemath.h
voidmain(
{
inti;
floatsl=0,s2=0,d1,d2;for(i=1;i=10000;i++)
sl=s1+1.0f/(i*i);for(i=10000;i=1;i--)
s2=s2+1.0f/(i*i);
d1=(float)(fabs(1.644834-s1));d2=(float)(fabs(1.644834-s2));
printf(正向求和成果为%f\n,误差为%f\nln,sl,d1);printf(反向求和成果为%f\n,误差为%f\n\n,s2,d2);if(d1d2)
printf(正向求和误差不不小于负向求和误差\n);elseif(d1=d2)
printf(正向求和误差等于负向求和误差\n);else
printf(正向求和误差不小于负向求和误差\n);
五、运行成果
画C:\
画C:\ProgranFiles\IicrosoftYisualStudio\IyProjects\ucha\Debug\ruch..
正向求和结果为1.644725
,误差为0.000109
反向求和结果为1.644834,误差为0.080000
正向求和误差等于负向求和误差Pressanykeytocontinue
六、对算法的理解与感悟
试验二
一、试验规定
1、拉格朗日插值
按下列数据
X;
-3.0
-1.0
1.0
2.0
3.0
y;
1.0
1.5
2.0
2.0
1.0
作二次插值,并求x?=-2,x?=0,x?=2.75时的函数近似值
2牛顿插值
按下列数据
X;
0.30
0.42
0.50
0.58
0.66
0.72
y;
1.04403
1.08462
1.11803
1.15603
1.19817
1.23223
作五次插值,并求x?=0.46,x?=0.55,x?=0.60时的函数近似值.
二、试验目的
1、熟悉拉格朗日插值多项式和牛顿插值多项式,注意其不一样特点;三、算法描述
1、拉格朗日插值
(1)输入x;,y;(i=0,1,2,….,n),令L(xn)=0;
(2)对=0,1,2,….,n计算
Ln←Ln+1;(x)y;
2、牛顿插值多项式
(1)输入n,x;,y;(i=0,1,2.….,n);
(2)对k=1,2,3.….,n,i=1,2,.….,k计算各阶差商f(x?,x?….,xk);
(3)计算函数值
N。(x)=f(x,)+f[x,,x?](x-x?)+...+f[x,,x,…,xn](x-x,)(x-x?)….(x-xn-1)
四、源程序
1.拉格朗日
#includeiostream#includeiomanip
#includemath.h
usingnamespacestd;
floatjisuanmokuai(int,float,float[],float[J);voidmain(
{
floata,x[50],y[50],J;intm,n;
cout题目:按下列数据endl;
coutx:-3.0-1.01.02.03.0endl;couty:1.01.52.02.01.5endl;
cout作二次插值,求x=-2,x=0,x=2.75时的函数近似值.endl;cout输入插值次数:endl;
cinn;
cout插入计算次数:endl;cinm;
for(inti=
文档评论(0)