下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告.课程设计目的:采用高斯列主元消去法解线性方程组。用 C语言或C +设计一个程 序来通过高斯列主元消去法解线性方程组AX=b的解。.课程设计的内容.课程设计的题目及简介题目:高斯列主元消去法解线性方程组。简介:对线性方程组 AX = b等价于aiai2ain xia21a2nX2b2ani an2ann xnbn方法说明(以4阶为例):(i)第i步消元在增广矩阵(A, b)第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A, b)做初等行变换使原方程组的第一列元素除了第一行的全变为0;(2)第2步消元在增广矩阵(A, b)中的第二列中(从第二行开始)找到绝对值最大的元素
2、,将其所在行与第二行交换,再对(A, b)做初等行变换使原方程组转化为: HYPERLINK l bookmark0 o Current Document * * *Vxi0* * *x200*x300*X4* 汪:*代表非零的数。(3)第3步消元一一在增广矩阵(A, b)中的第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A, b)做初等行变换使原方程组转化为:*Vxi0*x20 0* x3000*x4*(4)按 x4x3x2 xi的顺序回代求解出方程组的解。此方法即高斯列主元消去法,若在变换的过程中没有选出绝对值最大的数放在最前面进行消元而求出未知数的方法就叫高
3、斯消去法。高斯消去法有一很明显的缺点,即在消元的过程中可能出现小主元,这种小主元可能导致解的不稳定,为了避免小主元的出现正是高斯列主元消去法的主要目的。而通过每次消元之前的调换方程的次序也正是计算机实现高斯列主元消 去法的关键。.设计说明我用白是C + +面向对象程序设计进行这个程序的设计的。定义一个求方程解的类,只需用户将所需求解的方程的各个系数输入即可求出此方程的解。很方便,而且程 序很简洁。先设定了一个类,也就是说是面向对象的。此类的作用就是解用户输入的方程组,并输出结果。此类里面定义了两个函数,void initialize()和void glz:soke()。第一个函数的作用是初始化
4、类中的变量,以便计算机知道方程中未知数的个数,便于运算 和输出。而后一个函数的作用这是解方程组,并输出结果。此函数的解方程组功能 的思路由上面课程设计的简介设计而出。主函数中增加了循环,此循环可以解多个 方程组。.流程图#include/ 文件包含#include#include#includeclass glz/定义类public:int row,col,i,j,k,t;double mat100100;double tmp;public:void solve(););void glz : initialize()/ 函数初始化cout欢迎使用我的小程序来解方程组,本程序是利用高斯列主元消去
5、法解方程组 的,祝您使用愉快endl;cout输入方程组的个数row;cout输入未知数的个数加一col;cout按行输入各未知数前的系数和等号右边的常数endl;for(int i=0;irow;i+)for(int j=0;jmatij;)void glz:solve() double x100;/ 解方程的函数for(i = 0;i col - 2;i +)/ 变形k = i;double max = matki;for(j = i + 1;j abs(matk i)max = matj i;k = j;)if (k != i)for (j = i; j col; j+)/找到最大的并交
6、换double tmp = matk j; matk j = mati j;mati j = tmp;for (j = i + 1; j col-1; j+)/ 解方程(double tmp = matj i / matii;for (t = i + 1; t = 0; i-)(for (j = col - 2; j = i + 1; j-)maticol - 1 -= xj * mati j;xi = maticol-1/matii;)cout此方程组的解为:;/输出解for(int i=0;irow;i+)coutxi;void main ()/ 主函数glz a;char d;a.ini
7、tialize();a.solve();cout是否继续? endl;coutYES (Y) or NO(N)d;while(d=Y) a.initialize(); a.solve();))运行此程序将产生如下的画面(左侧部分),此时按要求输入相应的参数即可。三.课程设计总结以前对C+程序设计总有点畏惧, 可能是接触的不多, 其实只要一心投进去其实也不是很 难。只要由决心,努力努力也就能做出来了。看着自己编的程序有种说不出的喜悦和兴奋, 很有成就感,就像以前自己苦思冥想出一道难题一样,那感觉是难以描述的。 写一点程序的时候还要细心点,C + +编译器容不得一点错误,否则就没法编译。在编的过程
8、中,一定要 注意整体与局部的关系。写程序过程中的体会:1:做程序特别是做大程序是很有趣味的!虽然有的问题很难,要花很多时间很多精力,但是那种解决了一个问题时的喜悦足以把付出 的辛苦补偿回来。得到一种心里的慰藉! 2:做事情要有恒心,遇到困难不要怕,坚决去做。如果做出来了,固然高兴,如果没有做 出来也没有关系,自己努力了对得起自己就好。同时,把它看作是对自己的锻炼! 3:必须学好基础知识,在做的过程中,发现自己有很多东西都不懂。要博学必须从一点一 点做起。以往训练得少,知识掌握得不牢靠。所以做起来感到有点吃力。所以,无论什么学 科,一定要打好基础! 4:程序设计要靠多练,多见识。那样形成一种编程思维,我想对我是有很大好处的!尤其 对我,平时学得不扎实。四.遇到的问题和解决方案在编译的过程中,调试了很久之后还是有一个连接错误,很奇怪。问了同学,都没辙。自己慢慢调,我采用的方法是删掉次要部分,只留下主干,由于是连接问题,因此肯定跟函数内容无关。带着这样的思想逐渐删掉函数,果然,删掉之后仍然还是有一个编译 错误,因此大体思路没错。但不可思议的是,删到最后只剩主函数和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据仓库与数据挖掘第一章-数据仓库和数据挖掘概述
- 报关员资格管理制度改革公告后工作范文
- 人教部编版四年级语文上册习作《我和-过一天》精美课件
- 【同步提优】部编版三语下第四单元各类阅读真题(含小古文、非连续性文本等)名师解析连载
- 算法设计与分析 课件 6.8-贪心法总结
- 2024年惠州客运从业资格证考试培训试题和答案
- 2024年日照旅客运输从业资格证考试题库
- 2024年泰安道路旅客运输从业资格考试
- 2024年扬州客运从业资格证模拟考试练习题
- 吉首大学《媒体编辑》2021-2022学年第一学期期末试卷
- WINCC满足FDA规范配置说明分解
- 煤场机械车辆操作规程
- JJG 1030-2007超声流量计
- GB 30254-2013高压三相笼型异步电动机能效限定值及能效等级
- 设备开箱验收记录表
- 2022年惠州仲恺城市发展集团有限公司招聘笔试试题及答案解析
- 国家开放大学《组织行为学》章节测试参考答案
- 卷积神经网络讲义课件
- 部编版八年级语文上册课内文言文复习课件
- 围墙护栏建设安装施工组织设计方案
- 毛中特课件讲义整理
评论
0/150
提交评论