首页 第4章线性方程组的数值解法

第4章线性方程组的数值解法

举报
开通vip

第4章线性方程组的数值解法null第4章 线性方程组的数值解法 第4章 线性方程组的数值解法 4.1 引言4.1 引言 在工程技术和科学研究中,很多科学计算的问题往往直接或间接地归结为求解线性代数方程组。常见的线性代数方程组是方程个数和未知量个数相同的阶线性方程组,它的一般形式是 其中, 、 为常数, 为待求的未知量 ...

第4章线性方程组的数值解法
null第4章 线性方程组的数值解法 第4章 线性方程组的数值解法 4.1 引言4.1 引言 在 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 技术和科学研究中,很多科学计算的问题往往直接或间接地归结为求解线性代数方程组。常见的线性代数方程组是方程个数和未知量个数相同的阶线性方程组,它的一般形式是 其中, 、 为常数, 为待求的未知量 (4.1)null用矩阵形式表示是 其中: 一般 。当系数矩阵 非奇异(行列式不为零),即 时,方程组(4.1)有惟一解。null 对于线性代数方程组的解法大致可分为两类,即直接解法和迭代解法。直接解法是指在假设没有舍入误差的条件下,经过有限次算数运算就能求得方程组精确解的方法。 然而实际计算中由于舍入误差的影响,这类方法也只能求得近似解;迭代解法就是从一个已知的初始近似值开始,按一定的法则逐步求出解的各个更准确的近似值的方法,它是用某种极限过程去逐步逼近精确解的方法。 在本章中主要介绍高斯消去法、列主元高斯消去法、约当消去法、三角分解法等直接解法以及雅可比、高斯—赛德尔和超松弛等迭代解法。4.2 高斯(Gauss)消去法4.2 高斯(Gauss)消去法4.2.1 高斯消去法的基本思想 高斯消去法是最古老的求解线性代数方程组的方法之一,高斯消去法是消去法的一种特殊形式,它包括消元与回代两个过程。null 设 ,对行计算乘数 用 乘以第 个方程后加到第 个方程到第 个方程中,消去 第个方程到第 个方程的未知数 ,得到 null 只要设 就可以继续进行消元,直到经过 次消元后,将线性方程组(4.1)化为(4.2)所示上三角方程组(以上计算过程称为消元过程)。 (4.2) 消元过程结束后,只要设 ,对上三角方程组就可以自下而上逐步回代,依次求得 ,即null4.2.2 实现高斯消去法的基本步骤 (1) 输入方程组的阶数 n ,系数矩阵A和右端常数矩阵b 。 (2) 消元过程: 设 ,对 ,计算: (3) 回代过程 (4) 输出方程组的解。 (5) 结束。nullnull例4.1 用高斯消去法求解线性方程组,式中null#define N 3 /* N为方程组系数矩阵的阶数 */ int Gauss(float a[N][N],float b[N]) { int i,j,k,flag=1; float t; for(i=0;i=0;i--) { x[i]=b[i]; for(j=i+1;jmax_fab)) { l=j; max_fab=fabs(a[j][i]); } if(i #define N 4 /* N为方程组系数矩阵的阶数 */ main() { float a[N][N]={{1.003,0.333,1.504,-0.333},{-2.011,1.455,0.506,2.956}, {4.329,-1.952,0.006,2.087},{5.113,-4.004,3.332,-1.112}}; float b[N]={3.005,5.407,0.136,3.772}; float x[N]={0,0,0,0}; int i,j; zg_matric(a,b); ColGauss(a,b); x[N-1]=b[N-1]/a[N-1][N-1]; /* 回代过程开始 */ for(i=N-2;i>=0;i--) { x[i]=b[i]; for(j=i+1;j 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 了 、 的形式之后,由矩阵的乘法运算法则知,这种分解便是惟一的。由于 和 、 的形式不同,就得到矩阵的不同解法,相应地就有解线性代数方程组的几种解法. 本节介绍直接三角分解法、乔里斯基(Cholesky)分解法、追赶法和对称高斯法( 分解法)。 null4.5.2 直接三角分解法 设线性方程组(4.1)的系数矩阵非奇异,并且系数矩阵,能分解为同阶的单位下三角形矩阵和同阶的上三角矩阵之积,或能分解为同阶的下三角形矩阵和同阶的单位上三角矩阵之积,即写成矩阵元素的形式如下: null或 则称为直接三角分解法。将矩阵 分解为 时,当 是单位下三角形矩阵, 是上三角矩阵时,称为Dolittle分解;当 是下三角形矩阵, 是单位上三角矩阵时,称为Courant分解。Dolittle分解法和Courant分解法的基本思想相同,本章只介绍Courant分解法。 null4.5.3 实现Courant分解法的基本步骤nullnullnull#define N 3 /* N为方程组系数矩阵的阶数 */ void Lu(float a[N][N],float L[N][N],float U[N][N]) /* LU分解 */ { int i,j,k; for(k=0;k=0;k--) /* 计算Ux=y中的x */ { x[k]=y[k]; for(j=k+1;j #define N 4 /* N为方程组系数矩阵的阶数 */ void chodec(float a[N][N],float l[N][N]) { int i,j,k; float s; for(i=0;i=0;k--) { s=b[k]; for(j=k+1;j=0;i--) x[i]=y[i]-r[i]*x[i+1]; } nullmain() { float a[N]={0.0,90.860, -67.590,46.260};/*主对角线左下方元素*/ float b[N]={136.01,98.81,132.01,177.17};/*主对角线元素*/ float c[N]={90.860,-67.590,46.260,0.0};/*主对角线右上方元素 */ float d[N]={-33.254,49.709,28.067,-7.3244};/*右端常数项元素*/ float r[N],y[N]; /* 存放中间变量数组 */ float x[N]; /* 存放方程组的解向量的数组 */ int i; clrscr(); zhuigan(a,b,c,d,r,y); solve(r,y,x); for(i=0;i #define N 5 /* N为方程组系数矩阵的阶数 */ void sgaus(float a[N][N],float b[N]) { float q; int i,j,k; for(k=0;k=0;k--) { s=b[k]; for(j=k+1;j #include #define N 3 /* N为方程组系数矩阵的阶数 */ #define MAX_N 100 /* 最大迭代次数 */ #define epsilon 1e-6 /* 容许误差 */nullint yacobi(float a[N][N],float b[N],float x[N]) { float d,s,max,y[N]; int i,j,k,flag; k=0; for(i=0;i=MAX_N) /* 当k>=MAX_N时反馈失败信息,结束迭代 */ { flag=0; break; } } return(flag); } nullvoid zg_matric(float a[N][N],float b[N]) /*输出增广矩阵*/ { int i,j; for(i=0;i #include #define N 4 /* N为方程组系数矩阵的阶数 */ #define MAX_N 100 /* 最大迭代次数 */ #define epsilon 1e-6 /* 给定精度要求 */nullint seidel(float a[N][N],float b[N],float x[N]) { float d,s,max,temp; int i,j,k,flag; k=0; for(i=0;i=MAX_N) { flag=0; break; } } return(flag); } nullvoid zg_matric(float a[N][N],float b[N]) /*输出增广矩阵*/ { int i,j; for(i=0;i
本文档为【第4章线性方程组的数值解法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_311514
暂无简介~
格式:ppt
大小:2MB
软件:PowerPoint
页数:0
分类:理学
上传时间:2011-03-20
浏览量:38