四、分析迭代初始向量对计算结果的影响
选择不同的初始向量u[N]可能会得到不同的特征值。 选取u[N]?{1,0,0,???,0}时,运行结果如下:
11
选取u[N]?{1,1,1,???,1}时,运行结果如下:
选取u[N]?{1,1,1,???,0,0,0}时(i
选取u[N]?{0,0,0,???,1,1,1}时(i
通过以上类似的实验可以大致看出这样的规律:
?1的值趋近于?1.07001136150e?001有两种情况: (1)当u[N]的元素中,1的个数较多时;
(2)在1的个数相同的条件下,1的分布越靠中后段,
12
观察??对应的特征向量可以发现:
(1)随着i的增加,特征向量元素的绝对值不断增大,即绝对值较大的数集中于中后位置。因此,如果初始向量的非零元素集中在中后段,该初始向量会更容易逼近对应的特征向量,得到的结果也越准确。
对于,初始向量的非零元素集中在前半段的情况进行实验,会发现当算法中不考虑给定的精度水平,强制性执行足够高次数(大约在300多次以上)的迭代,运算结果也会趋近于?1.07001136150e?001。这就说明,程序之前没有得到准确结果的原因,是因为迭代次数不够。当迭代次数在100到200次左右时,每一次迭代所造成的相对误差小于给定的精度水平,因此,如果由精度水平来控制循环迭代的次数,程序将错误地判断已经收敛,但实际上,当继续迭代到300次以上时,运算结果会突然变化,直至最终稳定在?1.07001136150e?001。
由此,可以得出结论,当迭代次数足够高(300次以上)时,得到的结果会趋于稳定,不同的初始向量和选定的精度水平,决定着程序是否出现以及何时出现假收敛。当所选取初始向量的非零元素越多,以及非零元素的位置越靠后时,收敛会更加迅速、准确。
13