文档详情

但是如果 就会接近.pdf

发布:2017-05-22约2.92千字共10页下载文档
文本预览下载声明
1.2.3 旋转技术应用于高斯消除法 我们从最初的矩阵增广阵开始,首先讨论矩阵的第一行。 进行行变换, 为了能在(2,1)位置得到零,我们定义λ 21 为 但是如果a11 =0,那么λ 21 就会接近± ∞ ,这时怎么办呢? 部分旋转技术方法就是为了避免这种情况,同时使得高斯消除方法更加完善。 首先讨论矩阵A 的第一列, 考察矩阵中所有的元素,找到包含最大元素数值的一列,比如说第j 列,此时,对 于所有的k= 1,2,…,N 或者说, 由于等式的顺序对于结果没有什么影响,我们可以将矩阵的第一列和第j 列交换位 置。 只要矩阵A 中任意一个元素不为零,aj 1 就不为零,我们就可以放心的进行消除化 简。 如果第一列中所有的元素均为零,我们就会发现这个方程组中的没有方程是关于 x 的,此时方程组没有特定的解,此时我们可以放弃化简过程。 在(1.2.3-1), (1.2.3-6), (1.2.3-7)中的交换行的变换叫做局部绕轴旋转操作。 对于每一个进行高斯消除的列来说,我们首先要进行的第一个工作,即进行局部 绕轴旋转的目的就是保证在对角元素中有一个不为零的元素 高斯消除包含局部绕轴变换步骤的运算法则如下 即使在每一列进行行交换,用于绕轴旋转操作的计算量很小,可以得到很好的结果。 为了示范高斯消除是怎样进行的,我们首先考虑增广矩阵, 观察此矩阵,我们发现在第一列中,最大的数值在第三行。因此我们将第一行和第 三行的位置互换。 接下来进行行变换,将(2 ,1)的元素化为零。 再进行一次行变换,将(3,1)元素化为零。 接下来我们再来看第二列,注意在此列中,最大数值出现在第三行上,因此我们将 第二行和第三行互换位置。 接下来进行行变换使得(3,2 )化为零。 使用了消除方法之后,我们得到了一个易于进行回代方法的上三角形。 与矩阵相应的等式为 首先,可以解得 x3 = − 8 (1.2.3-18) 接下来,由第二个等式可得 最后,由第一个等式得 因此,结果为 注意在部分饶轴旋转操作,我们交换行以保证发现在对角线或以下每列数字在对角 线位置很大。即使对角线上数字非零,我们亦如此操作。 这看起来象无用功,但有很好的理由这么做。它可以在最后答案中减少系统误差。 为寻找原因,我们必须确定多少数存储于计算机内存。 如果我们查看存储于计算机内存的记忆,我们可以发现用0 和1 表达的数字串。 为存储实际数字,用浮点形式表达数字。 比如f是要存储的实际数字,我们用如下数值表达: 写作: 对于每一个 d=0,1,也在记忆中用一个字节表达,e是整数 e也存为二进制数,比如一个8字节数可以存储为 最大的数在下式中得到  对于 一般情况下, k 依据存储于e的字节数。(1.2.3-27) 对于存储于M的大数, 其中 所以 通常,对于机器精度t和=2k 我们用一个等比级数来表示, 我们看到对于给定的t 和 k ,存在其能表示的最小值和最大值。 比如说,对于t=8,不同的k值,U = 2k 其最大和最小值如下, 对于一个典型的32 字节机器,它的表示范围是 需要注意的是,当我们想要储存一个数的时候,通常并不能精确的表示,比如说 1/3,e,π 等。这时,我们表示成一个尽可能与之接近的数。 这时,这个值与真实值的差就叫做循环误差。 对于二进制数 从(1.2.3-22) 中可知循环误差是 我们将机器精度定义为 e 我们定义rd(f) = rf(eps)x2 (1.2.3-44) 其中 rf 是 O(1) (比如说级数为 1)的某个数。 我们写成 其中,mf=f 的尾数。那么, 其中 因此,当我们最初将一个值赋给纪录时,循环误差可能很小。我们想要确定这个最 初很小的误差,在随后的运算中,不会增大。 比如说,我们假定两个数值很大但是相差很小的数, f-g = 0.01 因此, 如果, 所以, 我们设rd(f) = rf(eps)x
显示全部
相似文档