ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:191.51KB ,
资源ID:2268608      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2268608.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(2.3高斯列主元消去法.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2.3高斯列主元消去法.doc

1、 2.3高斯列主元消去法解线性方程组 一:问题的提出 我们都知道,高斯列主元素消去法是计算机上常用来求解线性方程组的一种直接的方法。就是在不考虑舍入误差的情况下,经过有限步的四则运算可以得到线性方程组的准确解的一类方法。实际运算的时候因为只能有限小数去计算,因此只能得到近似值。在实际运算的时候,我们很多时候也常用高斯消去法。但是高斯消去法在计算机中运算的时候常会碰到两个问题。 1. 一旦遇到某个主元等于0,消元过程便无法进行下去。 2.在长期使用中还发现,即使消元过程能进行下去,但是当某个主元的绝对值很小时,求解出的结果与真实结果相差甚远。 为了避免高斯消去法消元过程中出现的上

2、述两个问题,一般采用所谓的选择主元法。其中又可以分为列选主元和全面选主元两种方法。目前计算机上常用的按列选主元的方法。因此我在这里做的也是列选主元高斯消去法。 二、算法的基本思想 大家知道,如果一个线性方程组的系数矩阵是上三角矩阵时,即这种方程组我们称之为上三角方程组,它是很容易求解的。我们只要把方程组的最下面的一个方程求解出来,在把求得的解带入倒数第二个方程,求出第二个解,依次往上回代求解。然而,现实中大多数线性方程组都不是上面所说的上三角方程组,所以我们有可以把不是上三角的方程通过一定的算法化成上三角方程组,由此我们可以很方便地求出方程组的解。高斯消元法的目的就是把一般线性方程组简化成

3、上三角方程组。于是高斯消元法的基本思想是:通过逐次消元将所给的线性方程组化为上三角形方程组,继而通过回代过程求解线性方程组。 三、算法的描述 1、设有n元线性方程组如下: = 2、 第一步:如果a11!=0, 令 li1= ai1/a11, I= 2,3,……,n 用(-li1)乘第一个方程加到第i个方程上,得同解方程组: a(1)11 a(1)12 . . . a(1)1n x1 b(1)1 a(1)21 a(1)22 . . . a(1)2n x2 b(1)2 .

4、 . . . . . . = . a(1)n-11 a(1)n-12 . . a(1)n-1n xn-1 b(1)n-1 a(1)n1 a(1)n2 . . . a(1)nn xn b(1)n 简记为: A(2) x = b(2) 其中 a(2)ij = a(1)ij – li1 * a(1)1j , I ,j = 2,3,..,n

5、 b(2)I = b(1)I – li1 * b(1)1 , I = 2,3,...,n 第二步:如果a(2)22 != 0,令 li2= a(2)i2/a(2)22, I= 3,……,n 依据同样的原理,对矩阵进行化间(省略),依次下去,直到完成! 最后,得到上三角方程组: a(1)11 a(1)12 . . . a(1)1n x1 b(1)1 0 a(1)22 . . . a(1)2n x2 b(1)2 . .

6、 . . . . . = . 0 0 . . a(n-1)n-1n xn-1 b(n-1)n-1 0 0 . . . a(n)nn xn b(n)n 简记为: A(n) x = b(n) 最后从方程组的最后一个方程进行回代求解为: Xn = b(n) / a(n)nn Xi = ( b(k)k - a(k)kjxj ) / a(k)

7、kk 以上为高斯消去法的基本过程。但是如前面我们所提到的,存在的问题。 1.一旦遇到某个主元等于0,消元过程便无法进行下去。 2.在长期使用中还发现,即使消元过程能进行下去,但是当某个主元的绝对值很小时,求解出的结果与真实结果相差甚远。为了避免高斯消去法消元过程中出现的上述两个问题,一般采用所谓的选择主元法。其中又可以分为列选主元和全面选主元两种方法。目前计算机上常用的按列选主元的方法。因此我在这里做的也是列选主元高斯消去法。他的特点是:每次在系数矩阵中依次按列在主对角线及以下的元素中,选取绝对值最大的元素作为主元,将她调到主对角线上,然后用它消去主对角线以下的元素,最后化为同解的上三角

8、形方程组去求解。由于列主元法相对高斯消元法来说就增加了选主元操作,其他的求解步骤是一样的。 四、程序流程图 五、程序描述 程序的名称为:zealous.cpp 1. 程序的结构如下: 程序只能最大输入60行60列的系数矩阵。 2.程序要用到的函数 (1、)matrix_getElement(array,n,m);此函数的作用是获得用户输入的线性方程组的系数矩阵。 (2、)matrix_outputElement(array,n,m);此函数的作用是显示用户输入的矩阵。 (3、)selectMaxElement(array,n,m,row );此函数的作用是

9、选择主元素,并把此时对角线上的那列元素与主元素行交换。 (4、)GAUSSProcess(array, n, m, row);此函数的作用是用主元素列进行高斯消元,把此行以后所有的行的,此列的元素变为0。 (5、)GAUSSProcess_result(array, n,m);此函数的作用是显示经过高斯消元后的矩阵,此时的系数矩阵为一个上下三角矩阵。 (6、)GAUSSCalculate_result(array, n, m);此函数的作用是对已经消元好的矩阵,进行回代求解。并将结果输出。 六、程序代码 //--------------------------************

10、高斯列消去法***** #include #include #include #include const int N=60;//最大 const int M=61;//60列,再加上等号右边的一列值 //------------------------------输入要计算方程组的矩阵----------- void matrix_getElement(double ARRAY[N][M],int n, int m) { for(int i=0;i

11、 cout<<"请您输入第"<<"\t"<<(i+1)<<"\t"<<"row:"<>ARRAY[i][j]; } } return; } //---------------------------------------------------------- //---------------输出用户刚才用户输入的矩阵,以便用户检测是否输入正确 void matrix_outputElement(double ARRAY[N][M], int n, int m) { c

12、out<<"your have input the matrix as fllows:\n"; for(int i=0; i

13、Element(double ARRAY[N][M],int n, int m, int line ) { double max=0; double t=0; int j=0; int i=line; max=ARRAY[line][line]; for(i=line+1;i fabs(max) ) { max=ARRAY[i][line]; j=i; } } if(j>line) { for(i=0;i

14、RAY[j][i]; ARRAY[j][i]=ARRAY[line][i]; ARRAY[line][i]=t; } } } //-------------------------------------------------------- //------------------------用对角线上的元素消去后续行中此列的元素 void GAUSSProcess(double ARRAY[N][M], int n, int m, int row) { double ROW1[M]; for(int t=0;t<(m-row);t++)

15、 { ROW1[t]=ARRAY[row][row+t]; } for(int j=(row+1); j < n; j++) { double ROW_CHANGE[M]; for(int r=0;r<(m-row);r++) { double mainElement=ROW1[0]; if( fabs(mainElement) < 1e-7) { cout << "Single! press any key return...\n"; getchar

16、); return; } ROW_CHANGE[r]=ROW1[r]*ARRAY[j][row]/ROW1[0]; } for(int h=0; h<(m-row); h++) { ARRAY[j][h+row] = ARRAY[j][h+row]-ROW_CHANGE[h]; } } } //-------------------------------------------------------- //--------------------------用回代的方法求出线性方程组的解

17、 void GAUSSCalculate_result(double ARRAY[N][M], int n, int m) { double a[N]; a[n-1]=ARRAY[n-1][m-1]/ARRAY[n-1][n-1]; for(int p=n-2; p>=0; p--) { for(int q=n-1; q>p; q--) { ARRAY[p][m-1]=ARRAY[p][m-1] - ARRAY[p][q]*a[q]; } a[p] = ARRAY[q][m-1]/ARRAY[p][p]; } c

18、out<<"-------------------------the final result as follows------------------:\n"; for(int e=0; e

19、处理后得到如下形式:\n"; for(int i=0; i

20、[M]; cout<<"请输入您要运算的矩阵的大小!\n"; int n=0, m=0; cout<<"请输入您要运算的矩阵的行数:"; cin>>n; cout<<"请输入您要运算的矩阵的列数:"; cin>>m; cout<<"您所输入的行为:"<

21、/显示输入的矩阵 for(int row=0; row

22、 is the end!"; } //-------------------------------------------------------- 七、实例 本程序可以自己选择在60个未知数的方程组,可以自己选择线性方程组的行数和列数。例子如下: 2x1+x2- 5x3+x4=8; x1- 3x2 -6x4=9; 2x2-x3+ 2x4=-5; x1+ 4x2-7x3+6x4=0; 输入您要运算的矩阵的大小! 请输入您要运算的矩阵的行数:4 请输入您要运算的矩阵的列数:5 您所输入的行为:4 您所输入的列为:5 请您输入第 1 row: 2 1 -5 1 8 请您输入第 2 row: 1 -3 0 -6 9 请您输入第 3 row: 0 2 -1 2 -5 请您输入第 4 row: 1 4 -7 6 0 等用户输入以上的数据后,出现结果如下图所示: 此图片为用户运行程序后所看到的结果。其中包含了实例的解。即: x1=3 x2=-4 x3=-1 x4=1 八、误差分析 在此例子中,讲x1,x2,x3,x4这一组解带入到原方程组,可知此解为方程组的准确解。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服