- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如有帮助欢迎下载支持
数值分析上机题
姓名:陈作添
学号: 040816
习题 1
20.(上机题)舍入误差与有效数
N
1
1
3
1
1
设 SN
,其精确值为
。
2
2
2
N
N 1
j 2 j
1
(1)编制按从大到小的顺序
1
1
1
,计算 S
的通用程序。
SN
1
32 1
N 2
1
N
22
(2)编制按从小到大的顺序
1
1
1
,计算 S 的通用程序。
SN
1
(N
1)2
1
22
1
N
N2
(3)按两种顺序分别计算
S102 , S104 , S106 ,并指出有效位数。 (编制程序时用单精度)
(4)通过本上机题,你明白了什么?
按从大到小的顺序计算 SN 的通用程序为:
按从小到大的顺序计算
SN 的通用程序为:
#includeiostream.h
#includeiostream.h
float sum(float N)
float sum(float N)
{
{
float j,s,sum=0;
float j,s,sum=0;
for(j=2;j=N;j++)
for(j=N;j=2;j--)
{
{
s=1/(j*j-1);
s=1/(j*j-1);
sum+=s;
sum+=s;
}
}
return sum;
return sum;
}
}
从大到小的顺序的值
从小到大的顺序的值
精确值
有效位数
从大到小
从小到大
0.740049
0.74005
0.740049
6
5
S102
0.749852
0.7499
0.7499
4
4
S104
0.749852
0.749999
0.749999
3
6
S106
通过本上机题, 看出按两种不同的顺序计算的结果是不相同的,
按从大到小的顺序计算
的值与精确值有较大的误差,
而按从小到大的顺序计算的值与精确值吻合。
从大到小的顺序
计算得到的结果的有效位数少。
计算机在进行数值计算时会出现“大数吃小数”的现象,导
致计算结果的精度有所降低,
我们在计算机中进行同号数的加法时,
采用绝对值较小者先加
的算法,其结果的相对误差较小。
1
习题 2
20.(上机题) Newton 迭代法
(1)给定初值 x0 及容许误差
,编制 Newton 法解方程 f ( x)
0 根的通用程序。
(2)给定方程 f ( x) x3 / 3
x
0 ,易知其有三个根
x
3 ,
x2 0
, x3 。
1
3
1.由 Newton 方法的局部收敛性可知存在
0 ,当 x0
(
,
) 时, Newton 迭代序
列收敛于根 x2 。试确定尽可能大的
。
2.试取若干初始值,观察当
x0 (
, 1),(
1, ),(
,
) , (
,1),(1, ) 时
Newton 序列是否收敛以及收敛于哪一个根。
3)通过本上机题,你明白了什么?解:( 1)编制的通用程序:
#includeiostream.h
{
#includemath.h
float x0,x1,a;
#define eps
0.000001
/给定容许误差
int k=0;
float f(float x)
//定义函数 f(x)
cout 请输入初值 x0:;
{
cinx0;
float f;
do
f=x*x*x/3-x;
//f(x) 的表达式 ;
{
return(f);
a=-f(x0)/df(x0);
}
x1=x0+a;
float df(float x)
//定义函数 df(x) ,
k++;
计算 f(x) 的导函数
x0=x1;
{
}
float df;
while(fabs(a)eps);
df=x*x-1;
//f(x) 导函数的表达式 ;
coutk\tx0;
return (df);
//输出迭代的次数和根值
}
}
void main(void)
( 2)计算迭代序列收敛于根
x2 的尽可能大的
的函数为:
#includeiostream.h
return(f);
#includemath.h
}
void delay(int n)
// 定义延时函数
float df(float x)
// 定义函数 df(x) ,计算 f(x)
{for(n=10000;n0;n--);}
的导函数
#define eps 0.000001
{
float f(float x)
//定义函数 f(x)
float df;
{
df=x*x-1;
//f(x) 导函数的表达式 ;
float f;
return (df);
f=x*x*x/3-x;
//f(x) 的表达式 ;
}
2
int judgement(float z) return 0;
{ }
int count=5
您可能关注的文档
最近下载
- 《发电企业电线电缆采购技术规范 第3部分:低压电力电缆》.docx VIP
- 智慧仓储SMT仓库管理系统解决方案0831(59页PPT).pptx VIP
- 兵团连队职工试题及答案.doc VIP
- 第六单元(知识清单)-2023-2024学年四年级语文上册单元速记·巧练(统编版) .docx VIP
- YY_T 1200-2024 葡萄糖测定试剂盒(酶法).pdf VIP
- 力标准机检定规程.pdf VIP
- 《发电企业电线电缆采购技术规范 第2部分:塑料绝缘控制电缆》.docx VIP
- 中华人民共和国传染病报告卡(最新版)填写与管理指南.docx VIP
- 学校幼儿园食堂从业人员考试卷附答案.docx
- 《人身保险》全套课件.pptx VIP
原创力文档


文档评论(0)