正在加载图片...
ak)的各元素中选出绝对值最大者。然后通过行交换将它交换到ak的位置上。但列主元不 能保证所选的ak是同一行中的绝对值最大者,因此采用了列主元虽然变换过程不会中断 但计算还是不稳定的 全主元方法的基本思想是当变换到第k步时,从右下角(n-k+1)阶子阵中选取绝对值 最大的元素,然后通过行变换和列变换将它交换到ak的位置上。对系数矩阵做行交换不影 响计算结果,但列交换会导致最后结果中未知数的次序混乱。即在交换第i列与第j列后 最后结果中x与x的次序也被交换了。因此在使用全主元的高斯消去法时,必须在选主元 的过程中记住所进行的一切列变换,以便在最后结果中恢复。全主元的高斯消去串行算法如 下,其中a我们用/来表示: 算法19.1单处理器采用全主元高斯消去法的消去过程算法 输入:系数矩阵Anxn,常数向量bnx 输出:解向量xn (I)for i=l to n do shifrin end for (2.1) (2.2)for i=k to n do if( a[i,]>d) then d a[i, jsj,iend if end for (23)ifUs≠k)then (ifor i=l to n de 交换q[k]和a[图 end for (i)交换shjf{和 shifrin 2.4)if(l≠k)then (ifor=k to n do 交换叫k和a[l end for (in)交换bk]和b end if (2.5)forj=k+l to n de ak小=a[k小a[kk (2.6)b=b[]ak],akk]=1 (2.7) fori=k+I to n do a[i小=a[i小-a[k]*a[k nd for (i)b=b[小-a[]*b{k]akk)的各元素中选出绝对值最大者。然后通过行交换将它交换到 akk的位置上。但列主元不 能保证所选的 akk是同一行中的绝对值最大者,因此采用了列主元虽然变换过程不会中断, 但计算还是不稳定的。 全主元方法的基本思想是当变换到第 k 步时,从右下角(n-k+1)阶子阵中选取绝对值 最大的元素,然后通过行变换和列变换将它交换到 akk的位置上。对系数矩阵做行交换不影 响计算结果,但列交换会导致最后结果中未知数的次序混乱。即在交换第 i 列与第 j 列后, 最后结果中 xi 与 xj 的次序也被交换了。因此在使用全主元的高斯消去法时,必须在选主元 的过程中记住所进行的一切列变换,以便在最后结果中恢复。全主元的高斯消去串行算法如 下,其中 aij 我们用 a[i,j]来表示: 算法 19.1 单处理器采用全主元高斯消去法的消去过程算法 输入:系数矩阵 An×n,常数向量 b n×1 输出:解向量 xn×1 Begin (1)for i=1 to n do shift[i]=i end for (2)for k=1 to n do (2.1) d=0 (2.2)for i=k to n do for j=k to n do if (│a[i,j] │>d) then d=│a[i,j] │, js=j, l=i end if end for end for (2.3) if (js ≠ k) then (i)for i=1 to n do 交换 a[i,k]和 a[i,js] end for (ii)交换 shift[k]和 shift[js] end if (2.4) if (l ≠ k) then (i)forj=k to n do 交换 a[k,j]和 a[l,j] end for (ii)交换 b[k]和 b[l] end if (2.5) for j=k+1 to n do a[k,j]= a[k,j]/a[k,k] end for (2.6) b[k]=b[k]/a[k,k],a[k,k]=1 (2.7) fori=k+1 to n do (i)forj=k+1 to n do a[i,j]=a[i,j]- a[i,k]* a[k,j] end for (ii)b[i]=b[i]-a[i,k]* b[k]
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有