收藏 分享(赏)

在高斯消去法中,我们试图将原n元线性方程组消减为三角形(又称上....doc

上传人:hyngb9260 文档编号:6885583 上传时间:2019-04-25 格式:DOC 页数:9 大小:35.50KB
下载 相关 举报
在高斯消去法中,我们试图将原n元线性方程组消减为三角形(又称上....doc_第1页
第1页 / 共9页
在高斯消去法中,我们试图将原n元线性方程组消减为三角形(又称上....doc_第2页
第2页 / 共9页
在高斯消去法中,我们试图将原n元线性方程组消减为三角形(又称上....doc_第3页
第3页 / 共9页
在高斯消去法中,我们试图将原n元线性方程组消减为三角形(又称上....doc_第4页
第4页 / 共9页
在高斯消去法中,我们试图将原n元线性方程组消减为三角形(又称上....doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、在高斯消去法中,我们试图将原 n元线性方程组消减为三角形(又称上.在高斯消去法中,我们试图将原 n元线性方程组消减为三角形(又称上三角形) 。在三角矩阵中,对角线以下的矩阵元素的系数均为0。对高斯消去法而言,最有用的是各行经标准化处理后对角线元素均为 1的三角矩阵。图 8.15 为标准化后三角矩阵形式的原方程,对角线上的系数(彩色)和向量 Y的各分量数值已不再是原来的数值。与图 8.15对应的 3个方程为:x1+x2+x3=4x2-x3=1x3=4这个方程组得求解相当简单:解最后一个方程求的 x3(即 x3等于 1),将其代入上面的方程中求得 x2(x2 等于 2),再把这两个值代入第一个方程

2、中求得 x1(即 x1等于 1)。这一过程称为回代。高斯消去法的算法如下。1高斯消去法算法将原方程组变换为标准矩阵;用回代法求解 xi.EMBED Equation.3 * EMBED Equation.3 =. EMBED Equation.3 图 8.15标准三角矩阵形式的原方程2增广矩阵在继续学习有关内容前,我们必须确定采用何种数据结构表示有n个未知数的 n元线性方程组。表示这类方程组的一种广泛采用的方法是增广矩阵。这种特殊的表示方法可以使矩阵的三角化和回代法的编程更简洁。图 8.16给出了有 n个未知数的 n元线性方程组的增广矩阵形式。增广矩阵可以用一个二维数组 Aug表示。需要注意的

3、是,增广矩阵有 n行 n+1列,增广矩阵的最后一列(以彩色标出)是常数向量Y(如,aug1.4 为 y1),增广矩阵的其余各列为系数矩阵 A(如 aug1.1为 a1,1).我们见不到有未知数的向量,当线性方程组用增广矩阵表示时,未知数是隐含的。我们的目标是把增广矩阵中的系数标准化,三角化也就是将矩阵化简到土 8.17的形式:aug1,1, aug2,2 和,aug3,3 为 1, aug2,1 ,aug3,2 和 aug3,2 为 0。图 8.17中的其他值以彩色显示,且记为 aij,和 yi,单撇号用以强调这些数值与原方程中的值不懂同而已。EMBED Equation.3 EMBED Eq

4、uation.3 (a)一般形 (b)示例图 8.17三角形化后的标准增广矩阵增广矩阵的标准化与三角形化现在我们把注意力集转到三角形化和标准化处理上来,也就是把原方程组转换为标准化的上三角形矩阵形式的新方程组。如果我们仅对增广矩阵 Aug进行如下操作:Aug的任一行乘以一个非零的数。将 Aug任一行的若干倍加到另一行上。将任意两行交换 。若方程组有惟一解,我们就可以用上述 3种操作把方程组变换为所需要的形式(若方程组没有惟一解,我们的算法也能够识别出来) 。我们从 aug1,1开始沿对角线依次下移,对增广矩阵的三角化。当我们对某个对角线元素进行处理时,我们称该元素为主元素。当augp,p为主元

5、素时,我们要完成两个目标:对主元素所在行标准化,使得主元素的值为 1。令主元素以下的各列系数均为 0-即元素augp+1,p,augp+2,p,augn,p的值为 0。第一个目的可以通过将主元素所在行乘以一个适当的常数(即1/augp,p)实现,这是操作 1的应用。第二个目的可以对主元素以下的各行操作 2实现。为了进可能小三角形化过程中计算的舍入误差,建议总是尽量把最大的系数(绝对值)放在主元素的位置。当你处理第 p个主元素是,应当检查一下自主元素以下的各列元素,找出绝对值最大的系数,并将其所在行与主元素所在行交换。方程组得解不会因此改变,因为行交换是 3种允许操作之一(操作 3) 。将当前行

6、与包含最大主元素的行交换称为主元素定位。如果最大主元素的值为零怎么办?这种情况只有在主元素以下的所有值均为零时才会出现。如果自主元素以下找不到一个非零值,则已知方程组没有惟一解。上述讨论的各种操作在下面的算法中进行了概括。局部变量 ok表示方程组是否有惟一解。局部变量int p /*当前行*/int ok /*标识方程组是否有惟一解得标志*/3高斯函数的算法 先假设方程组有惟一解。P初始化为首行的下标。当可能有唯一解且 pmax) xmax =fabs (augjp);max_row =-j;/*若找到非零主元素,进行交换 */if (xmax=0) *piv_foundp = FALSE;e

7、lse *piv_foundp=TRUE;if (max_row !=p) /*行交换*/for (k=p;kN+i;+kxtemp = aug pk;augpk=aug max_row k;aug max_rowk=xtemp;图 8.19函数 pivot6 回代我们现在来推导增广矩阵 aug的回代程序。我们需要一个矩阵 x表示未知向量。例题中方程组的标准化,三角化的增广矩阵形式如图 8.17(b)所示,我们将其重新列在下面,右侧是其在数组 aug中对应的存储位置(如 aug03的内容为 4)EMBED Equation.3 . EMBED Equation.3 回代中所有的部分矩阵以彩色标

8、出。对上述对角线应用回代原理,我们看由最后一行看到x2=aug23=1然后,由行 1可知x1=aug13-(aug12*x2)=1-(-1*1)=2最后,我们由 0行知x0=aug03-(aug01*x1+aug02*x2)=4-(1*2+1*1)=4-(3)=1由上观察,我们得出下面的回代算法。用于变换后的增广矩阵的回代算法(下标自零开始)令未知数向量的最后一个元素为增广矩阵的最后一个元素。令 i依次为 i=,N-2,1, 0,计算xi=augiN- EMBED Equation.3 这一算法有图 8.20的函数 back_sub实现。图 8.21是对一个线性方程测试函数 gauss和 ba

9、ck_sub的主函数。程序中声明的增广矩阵初始化图 8.16的矩阵;试运行显示出解向量 x./* 通过回代计算由增广矩阵 aug表示的线性方程组得解向量* 设增广矩阵的系数部分已经三角形化,且对角线元素全部为 1*/viodback_sub (double augN-1N;for (i=N-2; i)=0;-i) sum=0;for (j=i+1; jN; +j)sum+=augij *xj;xi = augijN - sum;图 8.20 函数 back_sub/*用高斯消去法和回代法解线性方程组*/#define N 3 /* 系数矩阵的大小;增广矩阵为 N行 N+1列*/int main

10、 (viod) double augNN+1 =1.0,1.0,4.0, /*增广矩阵*/2.0,3.0,1.0,9.0,1.0,-1.0,-1.0,-2.0,xN ; /*解向量*/int sol-exists; /*指示是否有解得标志*/* 调用 gauss对系数矩阵 aug标准化,三角化 */gauss(aug,/* 若有解,找到并显示 */if (sol_exists)back_sub(aug,x);printf(“The values of x are : %10.2f%10.2f%10.2fn”,x0,x1,x2;else printf (“NO unique solutionn”);reture (0);The values of x are : 1.00 2.00 1.00 图 8.21高斯消去程序的主函数*JimiSoft: Unregistered Software ONLY Convert Part Of File! Read Help To Know How To Register.*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报