您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 数值分析--线性方程组的数值解法
实验报告书20/20学年第学期课程名称:专业班级:学号:姓名:指导教师:课程设计指导教师评语成绩:____________指导教师签字:________________题目1线性方程组的数值解法1.1题目的主要研究内容及预期达到的目标(1)实现雅可比迭代算法(2)求得给定线性方程组的解1.2题目研究的工作基础或实验条件(1)笔记本(2)C-Free5应用开发平台1.3设计思想将线性方程组的系数矩阵A分成三部分D、L和U,其中满足A=D-L-U(具体关系参考教材P188)。由Ax=b和雅可比迭代法思想可以推导得出最终的计算公式,然后根据公式和算法思想即可编写程序实现。1.4流程图开始输入系数矩阵和常数项输入迭代次数循环迭代求解输出最终求解结果结束1.5主要程序代码(要求必须有注释)#includeiostream#includeWindows.husingnamespacestd;voidJacobiIteration(){intn,k;cout输入你将输入的系数矩阵阶数n=;cinn;doublee,w[n];doubleMatrix[n][n],b[n];ZeroMemory(Matrix,sizeof(Matrix));//初始化系数矩阵,元素置零cout输入系数矩阵(类似:\na1a2a3\nb1b2b3\nc1c2c3):endl;for(inti=0;in;++i)for(intj=0;jn;++j)cinMatrix[i][j];cout依次输入n个线性方程组的右式值:;for(inti=0;in;++i)cinb[i];doublex[n];for(inti=0;in;++i)x[i]=0;cout'\n'输入迭代次数k=;cink;for(inti=0;ik;++i){for(intm=0;mn;++m)w[m]=0;//清零,以便记录累加和for(intm=0;mn;++m){for(intl=0;ln;++l){if(l!=m)w[m]+=Matrix[m][l]*x[l];}}for(intj=0;jn;++j){x[j]=(b[j]-w[j])/Matrix[j][j];}}cout该线性方程组经雅可比迭代法求解得:endl;for(inti=0;in;++i){coutxi+1=x[i]endl;//输出最终求解结果}}intmain(){JacobiIteration();}1.6运行结果及分析所用测试范例为教材P180的例1,最终求得结果同教材所给结果相同。1.7心得体会通过本次实验,我加深了对雅可比迭代法的理解。通过将数学模型简化成一系列算术和逻辑运算并上机实现其数值求解的过程中,在增强了编程能力的同时,我还进一步掌握了利用计算机实现求解方程组的思想。
本文标题:数值分析--线性方程组的数值解法
链接地址:https://www.777doc.com/doc-5712483 .html