实验二列主元消元法实验报告.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二列主元消元法实验报告

《数值分析》实验报告 实验序号:实验二 题目名称: 列主元Gauss消元法解n阶线性代数方程组 学号: 姓名: 任课教师: 马季骕 专业班级:计算机科学与技术(非师范) 实验目的:用列主元Gauss消元法解n阶线性代数方程组 编写一个程序实现用列主元消元法实现解方程组的问题。 算法分析: 其基本做法是把上述方程组通过列主元Gauss消元转化为一个等价的三角形方程组,然后再进行回代就可以求出方程组的解。列主元消元的基本做法是选取系数矩阵的每一列中绝对值最大的作为主元,然后采取和顺序Gauss消元法相同的步骤进行 ,求得方程组的解。 1.???? 列主元Gauss消元法的算法思想: 1. 输入系数矩阵A,右端项b,阶n。 2. 对k=1,2,…,n,循环: (a) 按列选主元保存主元所在行的指标 。 (b) 若a=0,则系数矩阵奇异,计算停止;否则,顺序进行。 (c) 若 =k则转向(d);否则换行 (d) 计算乘子 (e) 消元: ??3.? 回代:用右端项b来存放解 。 ????????????????? 实验分析:   建立两个数组a和b,通过循环语句将n阶增广矩阵输入进去,通过对列的循环对每一列进行消去未知数,通过n小步n大步把矩阵化简成上三角形矩阵,最后通过迭代法解得方程组得解。 3、函数分析: 具体程序设计: for(i=1;i=n;i++)???????????????????? //消元的第一重循环 ????????? { ?????????????? p=0; ?????????????? q=0; ?????????????? for(m=i;mn+1;m++) ??????? ???????{ ???????????????????? if(pabs(a[m][i]))??????? //比较选取列主元 ???????????????????? { ?????????????????????????? p=abs(a[m][i]);???? //确定列主元 ?????????????????????????? q=m;??????????????? //记录列主元所在的行序列号 ???????????????????? } ?????????????? } ????????? ?????for(m=1;mn+1;m++)??????????????????? //交换系数 ?????????????? { ???????????????????? a[0][0]=a[q][m];???????????? //用a[0][0]做暂存单元 ???????????????????? a[q][m]=a[i][m]; ???????????????????? a[i][m]=a[0][0]; ?????????????? }???? ???????????????????? b[0]=b[q];??????????????? //交换常数项 ,用b[0]做暂存单元 ???????????????????? b[q]=b[i]; ???????????????????? b[i]=b[0]; ?????????????? for(t=i;t=n-1;t++)??????? //具体的Gauss消元算法 ?????????????? { ?????????????????? w=a[t+1][i]; ?????????????????? for(j=i;j=n;j++) ??? ???????????????{ ????????????????????????? a[t+1][j]=a[t+1][j]-a[i][j]*(w/a[i][i]);???????????? ?????????????????? } ?????????????????? b[t+1]=b[t+1]-b[i]*(w/a[i][i]); ?????????????? } ?????????????? k++; ????????? } ????????? for(i=n;i=1;i--)??????? //回代过程 ????????? { ?????????????? for(j=1;j=n;j++) ???????????????????? v=a[i][j]*x[j]+v; ?????????????? x[i]=(b[i]-v)/a[i][i]; ?????????????? v=0; ????????? } 4、实验数据截频: 5、程序说明: ??? 本程序在Dev C++ 环境中编译运行并且通过测试,也可以在VC++ 6.0环境中编译运行。 通过提示语句输入相应的系数矩阵和常数项。 6:总结体会

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档