2011 级工科硕士研究生《矩阵与数值分析》 课程数值实验班级:学号:姓名:任课教师:大连理工大学2011 年 12 月 20 日1 一、 对于数列1 1111, ,,,,3 9 27 81,有如下两种生成方式1、首项为01a,递推公式为11,1,2,3nnaan;2、前两项为0111,3aa,递推公式为1210,2,3,3nnnaaan;给出利用上述两种递推公式生成的序列的第50 项
【按第一种递推公式】clear clc a=1; for i=1:50-1 a=[a a(i)/3]; end disp('数列第 50 项小数表达为: ') format long disp(a(50)) disp('分数表达为: ') format rat disp(a(50)) format short [ 运行结果 ] 数列第 50 项小数表达为: 4
178866707295615e-024 分数表达为: 1/239299329230617530000000 【按第二种递推公式】clear clc a=[1 1/3]; for i=2:50-1 2 a=[a 10/3*a(i)-a(i-1)]; end format rat disp('数列第 50 项为: ') disp(a(50)) format short [ 运行结果 ] 数列第 50 项为:2060436 【分析】第一种算法数值稳定, 计算过程舍入误差被严格控制, 且按 1/3 的公差不断缩小
但第二种算法数值不稳定
另外,在第二种算法中,若将递推公式“a=[a 10/3*a(i)-a(i-1)]”中的分母移动位置,改写成“a=[a 10*a(i)/3-a(i-1)]”,则程序运行结果为 -4966040,可以舍入误差被放大的十分严重
二、 利用迭代格式110,