资源描述:
《东南大学数值分析编程作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数值分析编程作业姓名:卢一鸣学号:15110642指导老师:吴宏伟42目录P20.第17题:舍入误差与有效数3P56.第20题:Newton迭代法5P126.第39题:列主元Gauss消去法13P127.第40题:逐次超松弛迭代法16P195.第37题:3次样条插值函数21P256.第23题:重积分的计算23P307.第23题:常微分方程初值问题数值解25P346.第10题:抛物方程Crank-Nicolson格式3042注:源程序放在对应的文件夹里,如第一题放在“P20.第17题:舍入误差与有效数”文件夹里;P20.第17题:舍入误差与有效数设(1)编制按从小到大的顺序,计算的通用程序;(
2、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),'真实值']);forN=[100100001000000]w=sprint
3、f('%s%d','N=',N);disp([blanks(15),w]);computation(N);endgoon();42function[a]=computation(N)%本函数计算三种SN值:N按从小到大,N按从大到小,真实值%第二个for循环N按从大到小顺序%第二个for循环N按从大到小顺序SN=0;SN=single(SN);%N从小到大的顺序fori=2:NSN=SN+1/(i*i-1);enda=sprintf('%5.20f',SN);disp([blanks(10),a]);SN=0;SN=single(SN);%N从大到小的顺序fori=N:-1:2SN=SN+1
4、/(i*i-1);enda=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]);endfunction[a]=goon()%UNTITLED3Summaryofthisfunctiongoeshere%Detailedexplanationgoesherewhile1disp('现在你可以尝试其他的N值,如想结束程序,请输入N<=1');N=input('请输入N:');ifN<=1return;elsew=sprin
5、tf('%s%d','N=',N);disp([blanks(15),w]);computation(N);endend(3)运行结果:42N=100时,S1有6位有效数字,S2都是有效数字N=10000时,S1有4位有效数字,S2都是有效数字N=1000000时,S1有3位有效数字,S2都是有效数字(4)体会:当N从小到大变化时,SN的项从大到小,反之SN的项从小到大。从运算结果可见,第一种计算结果总是比第2、3种计算结果小,这是由于大数吃小数的原因(计算机表示一个数值是用字节表示的,当程序进行计算时,先将第一项和第二项相加,然后再加第三项……所以加到后面会由于项的值很小,不能加到这个字节
6、里,所以就被忽略了。)第2、3种计算结果一样,说明当N从大到小变化时,可以避免大数吃小数,这在我们进行程序设计时,应尤其注意。P56.第20题:Newton迭代法(1)给定初值及容许误差,编制Newton法解方程根的通用程序。42(2)给定方程,易知其有三个根,,。①由Newton方法的局部收敛性可知存在,当时Newton迭代序列收敛于根,试确定尽可能大的;②试取若干初始值,观察当时Newton序列是否收敛以及收敛于哪一个根。(3)通过本上机题,你明白了什么?答:(1)通用程序在newton.m文件里。程序执行前在f.m和df.m文件中输入和,在命令行中输入main,并按要求即能获得结果。%
7、此函数为main函数x0=input('请输入x0:');delta=5e-4;newton('f','df',x0,delta);%delta=search('f','df',delta)function[y]=f(x)%f(x)y=x^3/3-x;endfunction[x1,err,k,y]=newton(f,df,x0,delta)%f是非线性函数%df是f的微商%x0是初始值%delta是给定允许误