




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机数值方法课程设计报告题目高斯列主元消元法解线性方程组学生姓名班级计科12学号 成绩指导教师延安大学计算机学院2014年9月1日学号:姓名:题目:用高斯列主元消元法解线性方程组内容用c语言编写软件完成以下任务:用高斯列主元消元法解下列线性方程组:指导教师和学生签字指导教师:_ _ 学生签名:_ _成绩:教师评语:目 录一、程序设计题目1二、需求分析(高斯列主元消元法)1三、程序流程图3四、核心技术的实现方法及程序段6五、个人总结8六、参考文献9七、源程序9 计算机数值方法课程设计报告一、程序设计题目用c语言编写软件完成以下任务:用高斯列主元消元法解下列线性方程组:二、需求分析(高斯列主元消
2、元法)方法说明(以4阶为例):第1步消元在增广矩阵(a,b)第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(a,b)做初等行变换使原方程组转化为如下形式:第2步消元在增广矩阵(a,b)中的第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(a,b)做初等行变换使原方程组转化为:第3步消元在增广矩阵(a,b)中的第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(a,b)做初等行变换使原方程组转化为:按x4 x3 x2 x1 的顺序回代求解出方程组的解附:下面三种变换称为初等行变换: 对调两行; 以数k0乘某一行中的所有元素; 把某一行
3、所有元素的k倍加到另一行对应的元素上去。按照解题的思路,整个程序大概由以下几个部分组成:输入方程组;判断线性方程组是否合法;交换行的矩函数(change);比较系数大小的函数(mymax);菜单的选择(message);开始计算;退出程序等。除了以上主要部分外,程序还用到了if.和switch选择语句,对程序的进一步简化起到重要作用,使源程序显的更加简洁明了。三、程序流程图 总体流程图(一)定义数组xnumber,变量r,k,i,j,celect判断celect是否等于esc是 否 i = 1 i = n 输入系数和向量 j = 1 j = n+1 将输入的数据存入aij中退 j + i +
4、k = 1 k = n-1 出 调用mymax函数比较系数大小 判断ark是否等于零 是 否 判断f是否不等于k 是 否 此方程组不合法 调用change 不执行 函数 i = k+1 i = n j = k+1 j =1 j = k+1 j = 1j = k + 1 j = np1= p1 + akj * xjj + k -输出线性方程组的结果调用message函数变换行的函数流程图(二)定义变量i=1 i=n+1 i+a0i=ariari=akiaki=a0i 判断系数大小的流程图(三) 定义变量k,i,p2 判断fabs(aik)是否大于p2是 否i=k i=n i+ 不p2=fabs(
5、aik) 执 f=i返回p2的值 行 实现菜单选择的流程图(四)开始输出提示信息输入变量值值值值量入变量值退出返回主函数输出信息结束程序运行结果如图: (图一) (图二)若线性方程组为四维方程时: (图三)四、核心技术的实现方法及程序段源程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数中交换行的距函数、比较系数大小的函数和实现菜单选择的函数是程序中较为核心的部分,下面分别进行说明:1、 此模块通过change()函数改变矩阵行的顺序 ,具体程序段如下:change(int r,int k) /*交换行的矩函数*/ int i;for(
6、i=1;i=n+1;i+)a0i=ari; for(i=1;i=n+1;i+) ari=aki;for(i=1;i=n+1;i+)aki=a0i; 2、 此模块通过mymax()函数实现矩阵行的升序排列,具体程序段如下:float mymax(int m) /*比校系数大小的函数*/int i;float p2=0;for(i=m;ip2) p2=fabs(aim); f=i; return p2; 3、 模块通过message函数实现程序的重新运算,否则退出,错误则不执行,至此程序完毕,具体程序段如下:message() /*实现菜单选择的函数*/printf(nn 继续运算按 enter
7、,退出程式按 esc!);switch(getch()case enter: main();case esc: exit(0);default:printf(nn不合法的输入!);message();五、个人总结课程设计过程艰难奋斗的同时让我学会了很多c语言的知识,使我对c语言更充分的认识了它的实用性,自己基本掌握了有关函数与循环语句的用法及规则。该程序完成不是一帆风顺的,在编写过程中遇到了许多的疑难问题有幸得到了同学与老师的帮助,同时自己也翻阅了相关书籍,努力编好与完善。刚开始对自己解线性方程组的课题无从下手,对用“高斯列主消元法”更是莫名其妙。虽然源程序不是非常完美,不过在自己的不屑努力下
8、还是完成了课题。这次课设在一定程度上给自己的创新充分到发挥,希望以后能有更多的机会参加课程设计。六、参考文献1.谭浩强c程序设计北京:清华大学出版社2.刘成等c语言程序设计实验指导与习题集北京:中国铁道出版社3.黄云清. 数值计算方法. 北京:科学出版社七、源程序#include#include#include#include#define number 40 /*宏定义(若线性方程组的维数大把number定义更大些)*/#define esc 0x1b#define enter 0x0d float anumbernumber+1 ,ark;int f,n;change(int r,int
9、k);float mymax(int m);message();main() float xnumber; /*定义数组x用于储存方程组的解*/ int r,k,i,j; char celect; printf(nn用gauss列主元消元法解线性方程组); printf(nn1.开始解方程组请按enter.); printf(nn2.退出程式请按esc.); celect=getch(); if(celect=esc) exit(0); printf(nn 请输入方程组的维数:n=); scanf(%d,&n); printf( nn现在输入方程组系数矩阵a和向量b:); for(i=1;i=
10、n;i+) printf(nn请输入a%d1-a%d%d系数和向量b%d:,i,i,n,i); /*把线性方程的系数复于数组中*/ for(j=1;j=n+1;j+) scanf(%f,&aij); for(k=1;k=n-1;k+) ark=mymax(k); if(ark=0) /*判断线性方程组是否合法*/ printf(nn此方程组无解!);message(); else if(f!=k) change(f,k); for(i=k+1;i=n;i+) for(j=k+1;j=1;k-) float p1=0; for(j=k+1;j=n;j+) p1=p1+akj*xj; xk=(ak
11、n+1-p1)/akk; /*对线性方程组求解的运算(依次求的前面的、未知树的解)*/ for(i=1;i=n;i+) printf( nnx%d=%f,i,xi); message();change(int r,int k) /*交换行的函数 */ int i; for(i=1;i=n+1;i+) a0i=ari; for(i=1;i=n+1;i+) ari=aki; for(i=1;i=n+1;i+) aki=a0i;float mymax(int m) /*比较系数大小的函数*/ int i; float p2=0; for(i=m;ip2) /*对数组中的元素进行取绝对值比较大小的运算*/ p2=fab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同与协议书的异同
- 运输汽车物流合同协议书范本
- 智能化工厂厂房租赁及运营维护合同
- 国际院校代理招生合作框架合同
- 基础设施改造偿还债务借款合同范本
- 知名餐厅品牌授权及加盟店转让合同
- 柴油储备与应急供应保障合同
- 豪车抵押借款合同
- 城市更新项目财务担保合同模板
- 企业集团财务共享服务中心合作协议
- GB 28347-2012食品安全国家标准食品添加剂肉桂酸
- 会议室一音响设备清单及参数8
- 国际法-海洋法课件
- 新农乳业设备作业指导书
- 幼儿园绘本故事:《这是我的》 课件
- 机械类毕业设计外文翻译
- 2022年淮南市人民医院医护人员招聘笔试模拟试题及答案解析
- 原子荧光分析(砷)原始记录
- 如何提升企业的生命力
- 设备技术保密协议
- T∕CAME 27-2021 医院物流传输系统设计与施工规范
评论
0/150
提交评论