东南大学数值分析MATLAB上机题:编程实现Sn计算与精度比较

版权申诉
0 下载量 97 浏览量 更新于2024-06-25 收藏 2.07MB PDF 举报
该文档是一份东南大学数值分析课程的MATLAB上机题目,主要围绕级数求和进行。具体题目内容分为三个部分: 1. 题目与任务: - 题目涉及计算两个不同顺序的级数和:第一种是从大到小的序列\( S_N = \sum_{n=2}^{N}\frac{1}{n^2-1} \),第二种是从小到大的序列\( S_N = \sum_{n=2}^{N}\frac{1}{(N-n+2)^2-1} \)。其中,\( N \)是用户输入的正整数,且在编程时使用单精度浮点数。 - 学生被要求编写通用程序来计算这两个序列的和,并针对\( N=102, 104, 106 \)的具体数值进行计算,同时注意输出有效位数。 - 通过这个练习,学生应理解数值计算中的算法设计和级数求和的精度问题。 2. 通用程序设计: - 提供了MATLAB代码示例,展示了如何实现这两个级数求和的算法。首先,定义了准确的级数值\( S_N \)为\( \frac{0 - 1/(N+1) - 1/N + 3/2}{2} \)。接着,使用`for`循环分别计算两个序列,一个是递增的\( Sn1 \),另一个是递减的\( Sn2 \)。 - 使用`fprintf`函数输出计算结果,包括\( N \)值、精确值、以及两种求和方法得到的近似值。 3. 求解结果: - 当用户输入\( N=100 \)时,计算结果显示,两种方法得到的\( S_N \)值都非常接近,都是约等于0.74005,显示出级数求和算法的收敛性。同时,注意到输出的有效位数通常取决于MATLAB单精度浮点数的精度限制,尽管计算结果看起来相同,但可能存在微小的误差差异。 总结来说,这份上机题让学生实践了数值分析中的级数求和算法,熟悉了MATLAB编程语言,并且体验了数值计算中精度控制的重要性。通过本题,他们应该能够巩固对泰勒级数、数列求和等基础知识的理解,并提升编程和数值计算技巧。