《典型数值算法的C++语言程序设计.docx》由会员分享,可在线阅读,更多相关《典型数值算法的C++语言程序设计.docx(11页珍藏版)》请在第一文库网上搜索。
1、教值计算课程设计任务书题目:典型数值算法的C+语言程序设计1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):每人需作10个算法的程序、必做6题、自选4题。对每个算法要求用C+语言进行编程。必选题:1、高斯列主元法解线性方程组2、牛顿法解非线性方程组3、经典四阶龙格库塔法解一阶微分方程组4、三次样条插值算法(压紧样条)用C+语言进行编程计算依据计算结果,用Mat1ab画图并观察三次样条插值效果。5、龙贝格求积分算法6、M次多项式曲线拟合,据计算结果,用MatIab画图并观察拟合效果。自选题:自选4道其他数值算法题目.每道题目重选次数不得超过5次.2、对课程设计成果的要求(包括图表、
2、实物等硬件要求):2.1 提交课程设计报告按照算法要求,应用C+语言设计和开发算法程序,提交由:每个算法的原理与公式说明;与算法相应的程序设计说明(程序中的主要变量语义说明,变量的数据类型,数据在内存中组织和存储结构说明,各函数模块的主要流程图,函数功能说明,函数的形参说明,函数的调用方法说明);程序调试与实例运行记录(包括程序调试和修改记录、测试结论、运行结果记录),每个算法的源程序代码编入附录构成的课程设计报告。2.2 课程设计报告版式要求目录的要求:居中打印目录二字,(四号黑体,段后1行),字间空一字符;章、节、小节及其开始页码(字体均为小四号宋体)。节向右缩进两个字符(汉字),小节及以
3、后标题均向右缩进四个字符(汉字)。目录中应包含正文部分每个算法章节标题、设计体总结、无序号的“参考文献资料”,目录的最后一项是“附录”正文的要求:算法说明论述清楚,公式符号撰写规范,流程图图符规范,计算正确,文字简练通顺,插图简洁规范,书写整洁。文中图、表按制图要求绘制,程序调试和运行情况记录详实。打印版面要求:A4纸,页边距:上2cm,下2cm,左2.5cm、右2cm;字体:正文宋体、小四号;行距:固定值20;页眉1.5cm,页脚1.75cm;页码位于页脚居中打印;奇数页页眉“数值计算课程设计”,偶数页页眉“具体算法名”,页眉宋体小5号;段落及层次要求:每节标题以四号黑体左起打印(段前段后各
4、0.5行),节下为小节,以小四号黑体左起打印(段前段后各0.5行)。换行后以小四号宋体打印正文。章、节、小节编号分别以1、1.1、111格式依次标出,空一字符后接各部分的标题。每一章的标题都应出现在本章首页的第一行上。当课程设计报告结构复杂,小节以下的标题,左起顶格书写,编号依次用(1)、(2)或1)、2)顺序表示。字体为小四号宋体。对条文内容采用分行并叙时,其编号用(a)、(b)或a)、b)顺序表示,如果编号及其后内容新起一个段落,则编号前空两个中文字符。曲线图表要求:所有曲线、图表、线路图、流程图、程序框图、示意图等不准徒手画,必须按国家规定标准或工程要求绘制(应采用计算机绘图)。课程设计
5、说明书(报告)中图表、公式要求如下:(a)图:图的名称采用中文,中文字体为五号宋体,图号图名在图片下面。引用图应在图题右上角标出文献来源。图号以章为单位顺序编号。格式为:图11,空一字符后接图名,比如第1章第5个图是关于高斯列主元法解方程组算法图,图的下方的图号图名应为:图15高斯列主元法解方程组算法图。(b)表格:表的名称及表内文字采用中文,中文字体为五号宋体,表号表名在表格上面。表号以章为单位顺序编号,表内必须按规定的符号标注单位。格式为:表11,空一字符后接表格名称。比如第4章第1个表是关于三次样条插值的插值点列表,表的上方表号表名则应为:表4-1已知插值点的列表。(c)公式:公式书写应
6、在文中另起一行,居中排列。公式序号按章顺序编号。字体为五号宋体,序号靠页面右侧。比如第3章第1个公式其编号则应为:(3-1)o设计体会及今后的改进意见:设计总结要写出算法理解,编程经验等技术性、学术性总结;体会要简洁、真实、深刻,切忌空话、大话,客套话和矫揉造作之词。改进意见要合理、中肯。参考文献的要求:另起一页,居中打印参考文献四字(四号黑体,段前段后1行),字间空一字符;另起一行,按论文中参考文献出现的先后顺序用阿拉伯数字连续编号(参考文献编号应在正文中标注出);参考文献中每条项目应齐全(字体均为小四号宋体)。(格式:编号作者.论文或著作名称.期刊名或出版社.出版时间)。(期刊应注明第几期
7、、起止页数(包括论著)。参考文献中条目要符合科技文献引用文献条目书写的国家标准规范。2.3 设计报告装订顺序与规范封面数值计算课程设计任务书目录数值计算课程设计报告正文设计体会及今后的改进意见参考文献(无需加目录序号)附录(无需加目录序号)左边缘装订3、课程设计工作进度计划:时间设计任务及要求第18周编写和调试程序并按要求撰写设计报告1高斯列主元法解线性方程组问题提出:求解线性方程组x1+2x2+x3+4x4=132x1+Ox2+4x3+3x4=284x1+2x2+2x3+x4=20-3x1+x2+3x3+2x4=61.1 高斯列主元法解线性方程组算法思想1)将线性方程组写成增广矩阵的形式;2
8、)对增广矩阵进行行变换,对元素羯,在第i列中及以下的元素选取绝对值最大的元素,将所有元素中最大的所在的行与第i行交换,然后采用高斯消元法使得新得到的为第i行以下的元素均为零。一直重复上述过程直到从而得到上三角矩阵。3)对上三角矩阵进行回代求解,即可以得到方程组的解。1.2 高斯列主元法解线性方程组流程图图1-1高斯列主元法流程图1.3 高斯列主元法解线性方程组运行结果D:Cyuyan+CYuYanbinwvemp.exe请输入未知量的个薪3请输入增广矩阵A的第1行:1264请输入增广矩阵A的第2行:7534请愉人增广矩阵A的第3行:9342检睑找主元的正确性:主元位于第3行,第1列交换第1行与
9、第3行,请检险换行的正确性Aug=934275341264在被调函数equ中,回带计算解X,边计算,边输出X3=0.68;X2=O.945;x1=-O.395;检蛉找主元的正确性:主元位于第2行,第2列交换第2行与第2行,请检蛉换行的正确性Aug=9342O2.66667-O.I111112.44444O1.666675.555563.77778在被调函数equ中,回带计算解X,边计算,边输出X3=0.4;x2=0.933333;x1=-0.266667;在主凶数中输出解X=-0.2667,0.9333,0.4000,Pressanykeytocontinue2牛顿法解非线性方程组问题提出:求
10、解非线性方程组O(x,y)=f-2y+0.5O=x,y)=炉+4y2-4设初值(Po,4o)=(12,1.2),用牛顿法计算(PIM),也必MP3,%)。2.1牛顿法解非线性方程组算法思想前提:设8已知1)计算函数工业外“2-1)2)计算雅可比矩阵.r.、Wf1(PZqk)W工(PKM)oxy(2-2)Jg=6Q启PZ/)Wf254)xy3)求线性方程组(2-3)J(A)AP=-F(E)的解。4)计算下一点(2-4)&+1&+AP重复上述过程,直到达到要求的精度,停止计算。求解非线性方程组0=fi(x,y)=X2-2x-y+0.50=f2(x9y)=X2+4/-4设初值(P0,%)=(1.2,
11、1.2),用牛顿法计算(P1M)函数向量和雅克比矩阵为尸(,y)=2xy+0.5/、2,x214-4件力=8y(2-5)在点(2.00,0.25)处的函数值为/、.25/、网2.00,0.25)=025J(2OO,O25)=由牛顿法可得出下面的线性方程组(2-6)迭代得2.0-1O-P0.25解得p=P-0.093754.02.0S1_0.25幺0.0625(2-7)-1.906251.90069-1.900677p1=po+p=0.3125,P2=0.311213,P3=0.311219(2-8)手工计算与程序运行结果一致。3经典四阶龙格库塔法解一阶微分方程问题提出:求解线性微分方程,2xy=y-rya=0,Z?=IoJ(O)=I3.1经典四阶龙格库塔法解一阶微分方程算法思想龙格-库塔法的基本思想是:用/(x,y)在几个不同点的数值加权平均来代替Faj+%,y(M+%)的值,而使截断误差的阶数尽可能高。我们用四个不同点上的函数值的线性组合,将精度提高到四阶就可以得到四阶龙格-库塔公式。常用的标准四阶龙格-库塔公式为:0,白无片+帖)(3-1)A=/(%+九乂+岫)