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

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-9311678.html】到电脑端继续下载(重复下载不扣费)。

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高斯列主元消元法.doc)为本站会员(jmydc)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

高斯列主元消元法.doc

1、 课 程 设 计学 号:班 级 :姓 名 :指导教师 : 2008 年 6 月 26 日课 程 设 计 任 务 书一、课程设计题目:用高斯列主元消元法解线性方程二、课程设计工作自 2008 年 6 月 23 日起至 2008 年 6 月 27 日止三、课程设计内容:运用所学的 C 语言知识,编制和调试程序 ,具有如下功能:请用高斯列主元消元法解下列方程组: 533674352221 31 xxxxxx四、课程设计要求:程序质量: 用模快化程序设计方法;在程序界面,以菜单的形式调用各功能函数:程序可读性强,界面友好;输出形式尽量美观。 用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

2、用户界面中的菜单至少应包括“输入数据” 、 “开始计算” 、 “退出”3 项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。附:高斯列主元消元法求解线性方程组 AX=b 的简要步骤(高斯消元过程) AX=b: nnnnbxaa 21212112方法说明(以 4 阶为例) 第一步消元在增广矩阵(A ,b)第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A ,b)做初等行变换使原方程组转化为如下形式:*04321x 第二步消元在增广矩阵(A ,b)中的第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b)做初等行变换使原方程组转化为: *04321

3、x 第三步消元在增广矩阵(A ,b)中的第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b)做初等行变换使原方程组转化为: *0*4321x按 x4 x3 x2 x1 的顺序回代求解出方程组的解。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿) ,其内容如下: 封面 课程设计任务书 目录 需求分析(分析题目的要求) 程序流程图(总体流程图和主要功能模块流程图) 核心技术的实现说明及相应程序段 个人总结 参考资料 源程序及适当的注释指导教师:_ 学生签名:_目录一、需求分 析 1二、程序流程图 2三、核心技术的实现说明及相应程序段 8四、个人总结

4、6五、参考文献 .11六、源程序 .11xxxxxxxxxxxxxxxx1一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,分别是:输入方程组,计算方程组,继续运算/退出。计算方程组模块对应三个函数,其函数名和功能如下:一、菜单(menu):使用户界面友好,操作方便。二、调换(swap):实现两个传递系数之间调换。三、输入数据函数(input):其功能是输入方程系数四、计算函数:( count): 核心部分,列主元消元法,并输出。二、程序流程图1、程序总体结构图图 1: 程序总体结构图2、具体功能框图输出: 调用菜单(manu)函数显示菜单输入:所须选择的序号.1:

5、输入系数 2 开始计算 3:退出xxxxxxxxxxxxxxxx21:SWAP 函数定义:实数 t将 a 赋值给 t将 b 赋值给 a将 t 赋值给 b2:INPUT 函数输出:a1X1 + b1X2 + c1X3 = d1a2X1 + b2X2 + c2X3 = d2a3X1 + b3X2 + c3X3 = d3输出:! 以逗号隔开 ,回车结束 !!输出:input three num for a1,a2,a3:输入:a1,a2,a3输出:input three num for b1,b2,b3:输入:b1,b2,b3输出:input three num for c1,c2,c3:输入:c1

6、,c2,c3输出:input three num ford1,d2,c3:输入:d1,d2,d3输出:input three num for c1,c2,c3:xxxxxxxxxxxxxxxx33COUNT 函数真 a1 * a1 a2 * a2 假swap(a1,a2);swap(b1,b2);swap(c1,c2);swap(d1,d2);真 a1 * a1 a3 * a3 假swap(a1,a3);swap(b1,b3);swap(c1,c3);swap(d1,d3);b2=b1*(a2/a1*(-1)+b2;b3=b1*(a3/a1*(-1)+b3;c2=c1*(a2/a1*(-1)+

7、c2;c3=c1*(a3/a1*(-1)+c3;d2=d1*(a2/a1*(-1)+d2;d3=d1*(a3/a1*(-1)+d3;真 b2 * b2 b3 * b3 假swap(b2,b3);swap(c2,c3);swap(d2,d3);c3 = c2 * ( b3/b2 * (-1) + c3 ;d3 = d2 * ( b3/b2 * (-1) + d3 ;xxxxxxxxxxxxxxxx4x3 = d3 / c3;x2 = ( d2 - (x3 * c2) )/b2;x1 = (d1 - (x2 * b1) - (x3 * c1)/a1;printf(“x1 = %.3fnx2 = %

8、.3fnx3 = %.3fn“,x1,x2,x3);三、核心技术的实现说明及相应程序段本程序一共由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,交换函数,运算函数是程序中较为核心的部分,其他的函数为辅,整个程序运行的主界面如下:xxxxxxxxxxxxxxxx5下面作分布解说:1、交换赋值函数void swap(float a = b;b = t;2、输入函数,为方程赋予初值void input()printf(“a1X1 + b1X2 + c1X3 = d1na2X1 + b2X2 + c2X3 = d2na3X1 + b3X2 +

9、c3X3 = d3n“);printf(“!以逗号隔开,回车结束!n“);xxxxxxxxxxxxxxxx6printf(“input three num for a1,a2,a3:“);scanf(“%f,%f,%f“,printf(“input three num for b1,b2,b3:“);scanf(“%f,%f,%f“,printf(“input three num for c1,c2,c3:“);scanf(“%f,%f,%f“,printf(“input three num for d1,d2,d3:“);scanf(“%f,%f,%f“,3、运算函数 运算函数是本程序的主要

10、部分,首先列第一列主元(找到第一列的最大系数)然后通过调用 SWAP 函数,掉到第一行,依此类推。求出 Xn 然后回带,最后打印xxxxxxxxxxxxxxxx7出来 void count()if(a1 * a1 a2 * a2)swap(a1,a2);swap(b1,b2);swap(c1,c2);swap(d1,d2);if(a1 * a1 a3 * a3)swap(a1,a3);swap(b1,b3);swap(c1,c3);swap(d1,d3);b2=b1*(a2/a1*(-1)+b2;b3=b1*(a3/a1*(-1)+b3;c2=c1*(a2/a1*(-1)+c2;c3=c1*(

11、a3/a1*(-1)+c3;d2=d1*(a2/a1*(-1)+d2;d3=d1*(a3/a1*(-1)+d3;if(b2 * b2 b3 * b3)swap(b2,b3);swap(c2,c3);swap(d2,d3);c3 = c2 * ( b3/b2 * (-1) + c3 ;d3 = d2 * ( b3/b2 * (-1) + d3 ;x3 = d3 / c3;xxxxxxxxxxxxxxxx8x2 = ( d2 - (x3 * c2) )/b2;x1 = (d1 - (x2 * b1) - (x3 * c1)/a1;printf(“x1 = %.3fnx2 = %.3fnx3 = %

12、.3fn“,x1,x2,x3);四、个人总结这次课设让我更熟悉的掌握了通过 C 语言运用高斯定理解方程组,也使我对二维数组的认识更加深入了解,在完成程序中,遇到过较大的困难,但通过重新深入教材和对资料理解的基础逐步完成。xxxxxxxxxxxxxxxx9五、参考文献1 谭浩强 C 程序设计 北京:清华大学出版社,20062 刘成等 C 语言程序设计实验指导与习题集 北京:中国铁道出版社,2007六、源程序#include “stdio.h“#include “conio.h“/其中定义了 getch()函数。void menu()puts(“1. 数据输入“);puts(“2. 开始计算“);

13、puts(“3. 退出“);float a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3;float t;float x1,x2,x3;void swap(float a = b;b = t;void input()xxxxxxxxxxxxxxxx10printf(“a1X1 + b1X2 + c1X3 = d1na2X1 + b2X2 + c2X3 = d2na3X1 + b3X2 + c3X3 = d3n“);printf(“!以逗号隔开,回车结束!n“);printf(“input three num for a1,a2,a3:“);scanf(“%f,%f,%f“

14、,printf(“input three num for b1,b2,b3:“);scanf(“%f,%f,%f“,printf(“input three num for c1,c2,c3:“);scanf(“%f,%f,%f“,printf(“input three num for d1,d2,d3:“);scanf(“%f,%f,%f“,void count()if(a1 * a1 a2 * a2)swap(a1,a2);swap(b1,b2);swap(c1,c2);swap(d1,d2);if(a1 * a1 a3 * a3)swap(a1,a3);swap(b1,b3);swap(c

15、1,c3);swap(d1,d3);b2=b1*(a2/a1*(-1)+b2;b3=b1*(a3/a1*(-1)+b3;c2=c1*(a2/a1*(-1)+c2;xxxxxxxxxxxxxxxx11c3=c1*(a3/a1*(-1)+c3;d2=d1*(a2/a1*(-1)+d2;d3=d1*(a3/a1*(-1)+d3;if(b2 * b2 b3 * b3)swap(b2,b3);swap(c2,c3);swap(d2,d3);c3 = c2 * ( b3/b2 * (-1) + c3 ;d3 = d2 * ( b3/b2 * (-1) + d3 ;x3 = d3 / c3;x2 = ( d2 - (x3 * c2) )/b2;x1 = (d1 - (x2 * b1) - (x3 * c1)/a1;printf(“x1 = %.3fnx2 = %.3fnx3 = %.3fn“,x1,x2,x3);void main()char choice;menu();choice=getch();while(1)switch(choice)case 1:input();break;case 2:count();break;case 3:return;break;choice=getch();xxxxxxxxxxxxxxxx12

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


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

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

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