- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Word可编辑
数值分析编程作业
姓 名:卢一鸣
学 号:151106
指导老师:吴宏伟
目录
TOC \o 1-3 \h \z \u P20.第17题:舍入误差与有效数 3
P56.第20题:Newton迭代法 5
P126.第39题:列主元Gauss消去法 13
P127.第40题:逐次超松弛迭代法 16
P195.第37题:3次样条插值函数 21
P256.第23题:重积分的计算 23
P307.第23题:常微分方程初值问题数值解 25
P346.第10题:抛物方程Crank-Nicolson格式 30
注:源程序放在对应的文件夹里,如第一题放在“P20.第17题:舍入误差与有效数〞文件夹里;
P20.第17题:舍入误差与有效数
设
〔1〕编制按从小到大的顺序,计算的通用程序;
〔2〕编制按从小到大的顺序,计算的通用程序;
〔3〕按两种顺序分别计算,,,并指出有效位数〔编制程序时用单精度〕;
〔4〕通过本上机题你明白了什么?
答
〔1〕〔2〕程序:程序放在computation.m, goon.m文件里,运行程序时只需输入命令main即可。
%此函数为main函数
%此函数第一个for循环N按从小到大顺序disp([blanks(0),本函数三种SN值:]);
disp([blanks(10),N按从小到大]);
disp([blanks(10),N按从大到小]);
disp([blanks(10),真实值]);
for N=[100 10000 1000000]
w=sprintf(%s%d,N=,N);
disp([blanks(15),w]);
computation(N);
end
goon();
function [ a ] = computation( N )
%本函数计算三种SN值:N按从小到大,N按从大到小,真实值
%第二个for循环N按从大到小顺序
%第二个for循环N按从大到小顺序
SN=0;
SN=single(SN);
%N从小到大的顺序
for i=2:N
SN=SN+1/(i*i-1);
end
a=sprintf(%5.20f,SN);
disp([blanks(10),a]);
SN=0;
SN=single(SN);
%N从大到小的顺序
for i=N:-1:2
SN=SN+1/(i*i-1);
end
a=sprintf(%5.20f,SN);
disp([blanks(10),a]);
%真实值
b=0.5*(1.5-1/N-1/(N+1));
b=sprintf(%5.20f,SN);
disp([blanks(10),b]);
end
function [ a ] = goon( )
%UNTITLED3 Summary of this function goes here
% Detailed explanation goes here
while 1
disp(现在你可以尝试其他的N值,如想结束程序,请输入N=1);
N=input(请输入N:);
if N=1
return;
else
w=sprintf(%s%d,N=,N);
disp([blanks(15),w]);
computation(N);
end
end
〔3〕运行结果:
N=100时,S1有6位有效数字,S2都是有效数字
N=10000时,S1有4位有效数字,S2都是有效数字
N=1000000时,S1有3位有效数字,S2都是有效数字
〔4〕体会:当N从小到大变化时,SN的项从大到小,反之SN的项从小到大。
从运算结果可见,第一种计算结果总是比第2、3种计算结果小,这是由于大数吃小数的原因〔计算机表示一个数值是用字节表示的,当程序进行计算时,先将第一项和第二项相加,然后再加第三项……所以加到后面会由于项的值很小,不能加到这个字节里,所以就被忽略了。〕第2、3种计算结果一样,说明当N从大到小变化时,可以防止大数吃小数,这在我们进行程序设计时,应尤其注意。
P56.第20题:Newton迭代法
〔1〕给定初值及容许误差,编制Newton法解方程根的通用程序。
〔2〕给定方程 ,易知其有三个根,,。
①由Newton方法的局部收敛性可知存在,当时Newton迭代序列收敛于根,试确定尽可能大的;
②试取假设干初始值,观察当时Newton序列是否收敛以及收敛于哪一个根。
〔3〕通过本上机题,你明白了什么?
答:
〔1〕和,在命令行中输入main,并按要求即能获得结果。
%此函数为main函数
x0=input(请输入x0:);
delta=5e-4;
newton(f,df
文档评论(0)