《数值计算课程设计-典型数值算法的C++语言程序设计.doc》由会员分享,可在线阅读,更多相关《数值计算课程设计-典型数值算法的C++语言程序设计.doc(36页珍藏版)》请在金锄头文库上搜索。
1、数值计算课程设计说明书题目: 典型数值算法的C+语言程序设计 院 (系): 理学院 专业班级: 数学1xx 学 号: xxxx12010134 学生姓名: x 指导教师: xxxx 2014年7月 6日陕 西 科 技 大 学数值计算课程设计任务书理学院信息与计算科学/应用数学专业信息12*/数学12* 班级 学生: xxx 题目:典型数值算法的C+语言程序设计 课程设计从 2014 年 5 月 26 日起到 2014 年 7 月 6 日1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):每人需作10个算法的程序、必做6题、自选4题。对每个算法要求用C+语言进行编程。必选题:1、高斯
2、列主元法解线性方程组2、牛顿法解非线性方程组3、经典四阶龙格库塔法解一阶微分方程组4、三次样条插值算法(压紧样条)用C+语言进行编程计算 依据计算结果,用Matlab画图并观察三次样条插值效果。5、龙贝格求积分算法6、M次多项式曲线拟合,据计算结果,用Matlab画图并观察拟合效果。自选题:自选4道其他数值算法题目.每道题目重选次数不得超过5次.2、对课程设计成果的要求包括图表、实物等硬件要求:2.1 提交课程设计报告按照算法要求,应用C+语言设计和开发算法程序,提交由:每个算法说明;与算法相应的程序设计说明(程序中的主要变量语义说明,变量的数据类型,数据在内存中组织和存储结构说明,各函数模块
3、的主要流程图,函数功能说明,函数的形参说明,函数的调用方法说明);程序调试与实例运行记录 (包括程序调试和修改记录、测试结论、运行结果记录),每个算法的源程序代码编入附录构成的课程设计报告。2.2 课程设计报告版式要求目录的要求:居中打印目录二字,(四号黑体,段后1行),字间空一字符;章、节、小节及其开始页码(字体均为小四号宋体)。节向右缩进两个字符,小节及以后标题均向右缩进四个字符。目录中应包含正文部分每个算法章节标题、设计体总结、无序号的“参考文献资料”,目录的最后一项是“附录”正文的要求:算法说明论述清楚,公式符号撰写规范,流程图图符规范, 计算正确,文字简练通顺,插图简洁规范,书写整洁
4、。文中图、表按制图要求绘制,程序调试和运行情况记录详实。打印版面要求:A4纸,页边距:上2cm,下2cm,左2.5cm、右2cm;字体:正文宋体、小四号;行距:固定值20;页眉1.5cm ,页脚1.75cm;页码位于页脚居中打印;奇数页页眉“数值计算课程设计”,偶数页页眉“具体算法名称”,页眉宋体小5号;段落及层次要求:每节标题以四号黑体左起打印(段前段后各0.5行),节下为小节,以小四号黑体左起打印(段前段后各0.5行)。换行后以小四号宋体打印正文。章、节、小节编号分别以1、1.1、1.1.1格式依次标出,空一字符后接各部分的标题。每一章的标题都应出现在本章首页的第一行上。当课程设计报告结构
5、复杂,小节以下的标题,左起顶格书写,编号依次用(1)、(2)或1)、2)顺序表示。字体为小四号宋体。对条文内容采用分行并叙时,其编号用(a)、(b)或a)、b)顺序表示,如果编号及其后内容新起一个段落,则编号前空两个中文字符。曲线图表要求:所有曲线、图表、线路图、流程图、程序框图、示意图等不准徒手画,必须按国家规定标准或工程要求绘制(应采用计算机绘图)。课程设计说明书(报告)中图表、公式要求如下:(a)图:图的名称采用中文,中文字体为五号宋体,图名在图片下面。引用图应在图题右上角标出文献来源。图号以章为单位顺序编号。格式为:图1-1,空一字符后接图名,比如第1章第5个图是关于高斯列主元法解方程
6、组算法图,图的下方的图号图名应为:图1-5 高斯列主元法解方程组算法图。(b)表格:表的名称及表内文字采用中文,中文字体为五号宋体,表名在表格上面。表号以章为单位顺序编号,表内必须按规定的符号标注单位。格式为:表1-1,空一字符后接表格名称。(c)公式:公式书写应在文中另起一行,居中排列。公式序号按章顺序编号。字体为五号宋体,序号靠页面右侧。格式为:(1-1)。设计体会及今后的改进意见:设计总结要写出算法理解,编程经验等技术性、学术性总结;体会要简洁、真实、深刻,切忌空话、大话,客套话和矫揉造作之词。改进意见要合理、中肯。参考文献的要求:另起一页,居中打印参考文献四字(四号黑体,段前段后1行)
7、,字间空一字符;另起一行,按论文中参考文献出现的先后顺序用阿拉伯数字连续编号(参考文献应在正文中注出);参考文献中每条项目应齐全(字体均为小四号宋体)。(格式:编号作者.论文或著作名称.期刊名或出版社.出版时间)。(期刊应注明第几期、起止页数(包括论著)。参考文献中条目要符合科技文献引用文献条目书写的国家标准规范。2.3 设计报告装订顺序与规范封面数值计算课程设计任务书目录数值计算课程设计报告正文设计体会及今后的改进意见参考文献(无需加目录序号)附录(无需加目录序号)左边缘装订3、课程设计工作进度计划:时间设计任务及要求第19周编写和调试程序并按要求撰写设计报告 目 录1高斯列主元法解线性方程
8、组11.1算法说明11.2算例11.3程序代码12牛顿法解非线性方程组22.1算法说明22.1算例:32.2程序代码53经典四阶龙格库塔法解一阶微分方程组93.1算法说明93.2算例103.3程序代码104三次样条插值算法(压紧样条)124.1算法说明124.2算例124.3 C+程序代码134.4 matlab程序代码165龙贝格求积分算法175.1算法说明175.2算例175.3 程序代码176 M次多项式曲线拟合186.1算法说明186.2算例196.3程序代码197拉格朗日插值解多项式227.1算法说明227.2算例227.3程序代码238二分法求解非线性方程248.1算法说明248.
9、1算例248.2程序代码249 不动点迭代269.1算法说明269.2算例269.3程序代码2610复化梯形求积分公式2710.1算法说明2710.2算例2810.3程序代码2811设计体会29参 考 文 献30数值计算课程设计1高斯列主元法解线性方程组1.1算法说明将线性方程组做成增广矩阵,对增广矩阵进行行变换。对第1列元素,在第i行及以下的元素中选取绝对值最大的元素,将该元素最大的行与第i行交换,然后采用高斯消元法将新得到的消去第i行以下的元素。一次进行直到。从而得到上三角矩阵。再对得到的上三角矩阵进行回代操作,即可以得到方程组的解。1.2算例课本99页例3.16,求解方程组的解运行结果如
10、图1-1所示。图1-11.3程序代码#include#includeusing namespace std;const N=20;float aNN;int m;int main()int i,j;int c,k,n,p,r;float xN,lNN,s,d;coutm;coutendl;cout请按顺序输入增广矩阵a:endl;for(i=0;im;i+)for(j=0;jaij;for(i=0;im;i+) for(j=i;jfabs(aii)?j:i; /*找列最大元素*/for(n=0;nm+1;n+) s=ain; ain=acn; acn=s; /*将列最大数防在对角线上*/for
11、(p=0;pm+1;p+)coutaipt;coutendl;for(k=i+1;km;k+) lki=aki/aii; for(r=i;r=0;i-) d=0;for(j=i+1;jm;j+)d=d+aij*xj;xi=(aim-d)/aii; /*求解*/cout该方程组的解为:endl;for(i=0;im;i+)coutxi=xit; /system(pause); return 0; 2牛顿法解非线性方程组2.1算法说明设已知,第一步计算函数第二步计算雅可比矩阵第三步求线性方程组的解。第四步计算下一点重复以上过程。2.1算例:设有非线性方程组(课本137页例3.32)设初始值,用牛顿
12、法计算。解:迭代3次后的近似解向量为1.9068,0.311219;具体运行结果如图2-1,2-2,2-3所示。 图2-1图2-2图2-12.2程序代码#include#include#define N 2 /非线性方程组中方程的个数、未知量的个数#define Epsilon 0.0001 /差向量的上限#define Max 100 /最大迭代次数using namespace std;const int N2=2*N;int main()void ff(float xxN,float yyN); /计算向量函数的因变量向量yyNvoid ffyakebi(float xxN,float yyNN);/计算雅可比矩阵yyNNvoid inv_yakebi(float yyNN,float invNN);/计算雅可比矩阵的逆矩阵invvoid newton(float x0N,float invNN,float y0N,float x1N);/由近似解向量x0求近似解向量x1float x0N=2.0,0.25,y0N,yakebiNN,invyakebiNN,x1N,errornorm;int i,iter=0;cout初始近似解向量