MATLAB实现数值分析上机题:序列求和与算法比较

版权申诉
5星 · 超过95%的资源 2 下载量 9 浏览量 更新于2024-06-29 2 收藏 488KB PDF 举报
"东南大学数值分析课程的一份MATLAB编程作业,主要涉及序列求和问题,特别是关于级数SN的计算,以及不同排序方式对计算结果有效位数的影响。" 这篇MATLAB作业聚焦于数值计算中的序列求和,具体是计算序列SN,其中SN由如下项构成: \[ S_N = \frac{3}{2} - \frac{1}{N} - \frac{1}{N+1} \] 作业要求包括以下几点: 1. 编写一个通用程序,按从大到小的顺序计算SN。在这种顺序下,序列是1/(N^2-1),1/(N-1)^2-1,...,1/2^2-1。 2. 编写另一个通用程序,按从小到大的顺序计算SN。在这种顺序下,序列是1/2^2-1,1/3^2-1,...,1/N^2-1。 3. 分别使用上述两个程序计算S102,S104,S106,并确定每种顺序下的有效位数。 4. 反思本次编程练习,理解不同算法对计算结果精度的影响。 MATLAB代码示例中,`clear`函数用于清除工作空间中的变量,`input`函数让用户输入N值。`Ac`变量存储了SN的精确值,`Snl2s`和`Sns2l`分别用于存储从大到小和从小到大顺序的序列和。`for`循环用于进行序列求和,`fprintf`函数用于打印结果,而`disp`函数则用于显示分隔符。 在程序运行部分,可以看到用户分别输入10^2,10^4,10^6作为N值,但是没有提供具体的计算结果,这可能是由于原始文本中省略了这些数值。根据结果分析,随着N值增大,从大到小顺序的SN有效位数逐渐减少,而从小到大顺序的SN有效位数在N=10^4和10^6时保持不变,这表明从小到大求和可能提供了更好的数值稳定性。 通过这个作业,学习者可以了解到数值计算中的序列求和方法、不同排序方式对计算精度的影响,以及在MATLAB环境中如何实现这些计算。此外,这也强调了在进行大规模计算时选择合适算法的重要性,因为不同的算法可能会导致显著的数值误差差异。