计 算 方 法
实验指导
姓名______________ 学号______________ 院系______________ 专业______________
哈尔滨工业大学
1
计算方法实验指导
根据实际问题建立的数学模型,一般不能求出所谓的解析解,必须针对数学模型的特点确定适当的计算方法,编制出计算机能够执行的计算程序,输入计算机,进行调试,完成运算,如果计算结果存在问题或不知是否正确,还需要重新确定新的计算方法,再编制出计算程序,输入计算机,重新调试,完成运算,直至获得正确的计算结果,这就是数值计算的全部过程。
学生在学习“计算方法”和“高级语言”等课程时普遍存在的问题是:只会套用教科书中的标准程序进行数值计算,很少有人能够独立地将学过的数值算法编制成计算机程序,至于灵活应用已经掌握的算法求解综合性较大的课题,则更是困难的事情。
编写《计算方法实验指导》的目的是:突出数值计算程序结构化的思想。提高学生的编程能力,加深对“计算方法”课程内容的理解和掌握,为”计算方法“课程的教学服务,进一步奠定从事数值计算工作的基础。具体地
1.根据“计算方法”课程内容的特点,给出五个典型算法的分析流程,学生可以利用所掌握的“高级语言”顺利地编制出计算机程序,上机实习,完成实验环节的教学要求。
2.所有的计算实习题目都经过任课教师逐一检验,准确无误。
3.充分利用循环的思想、迭代的思想,给出算法结构描述和程序语言的对应关系,有利于学生编制相应的程序。
4.结合实习题目,提出实验要求,要求学生按规范格式写出相应的实验报告,实验报告成绩记入期末总成绩。需要提醒学生:不能简单地套用现成的标准程序完成实验题目,应当把重点放在对算法的理解、程序的优化设计、上机调试和计算结果分析上,否则就失去实验课的目的啦。
5. 五个具体的实验题目是:
实验题目1拉格朗日(Lagrange)插值 实验题目2龙贝格(Romberg)积分法
实验题目3四阶龙格—库塔(Runge—Kutta)方法 实验题目4牛顿(Newton)迭代法
实验题目5高斯(Gauss)列主元消去法
要求必须完成其中三个(如果全部完成更好)。
2
实验题目1 拉格朗日(Lagrange)插值
方法概要:
给定平面上n?1个不同的数据点(xk,f(xk)),k?0,1,?,n,xi?xj,i?j;则满足条件
Pn(xk)?f(xk),k?0,1,?,n
的n次拉格朗日插值多项式
Pn(x)??k?0f(xk)lk(x)
是存在唯一的。若xk?[a,b],k?0,1,?,n,且函数f(x)充分光滑,则当x?[a,b]时,有误差估计式
nf(n?1)(?)f(x)?Pn(x)?(x?x0)(x?x1)?(x?xn),??[a,b]
(n?1)!拉格朗日插值算法实验
实验目的:利用拉格朗日插值多项式Pn(x)求f(x)的近似值 输 入:n?1个数据点(xk,f(xk)),k?0,1,?,n;插值点x 输 出:f(x)在插值点x的近似值Pn(x) 程序流程:
1 置y?0.0;k?0
2 当k?n时,做2.1—2.4 2.1 置l?1.0;
2.2 对j?0,1,?,k?1,k?1,?,n,置l?l?(x?xj)/(xk?xj) 2.3 置y?y?l?f(xk) 2.4 置k?k?1 3 输出x,y 4 停机
问题1 拉格朗日插值多项式的次数n越大越好吗?
3
考虑下面两个拉格朗日插值问题:
1,x?[?5,5],考虑等距节点的拉格朗日插值多项式Pn(x),21?x10.0即将区间[?5,5]进行n等分,记h?,xk??5.0?k?h,k?0,1,?,n,构造
n(1)设f(x)?Pn(x),利用拉格朗日插值多项式Pn(x)作为f(x)的近似值。分别取n?5,n?10,
n?20,同时计算Pn(x)在x?0.75,x?1.75,x?2.75,x?3.75,x?4.75处
的函数值。
(2)设f(x)?e,x?[?1,1],考虑等距节点的拉格朗日插值多项式Pn(x),即将区间[?1,1]进行n等分,记h?x2.0,xk??1.0?k?h,k?0,1,?,n,构造Pn(x),n利用拉格朗日插值多项式Pn(x)作为f(x)的近似值。分别取n?5,n?10,n?20,同时计算Pn(x)在x??0.95,x??0.05,x?0.05,x?0.95处的函数值。
问题2 插值区间越小越好吗?
考虑下面两个拉格朗日插值问题:
1,x?[?1,1],考虑等距节点的拉格朗日插值多项式Pn(x),21?x2.0k?0,1,?,n,即将区间[?1,1]进行n等分,记h?,构造Pn(x),xk??1.0?k?h,
n(1)设f(x)?利用拉格朗日插值多项式Pn(x)作为f(x)的近似值。分别取n?5,n?10,n?20,同时计算Pn(x)在x??0.95,x??0.05,x?0.05,x?0.95处的函数值。
(2)设f(x)?e,x?[?5,5],考虑等距节点的拉格朗日插值多项式Pn(x),即将区间[?5,5]进行n等分,记h?x2.0,xk??1.0?k?h,k?0,1,?,n,构造Pn(x),n利用拉格朗日插值多项式Pn(x)作为f(x)的近似值。分别取n?5,n?10,n?20,同时计算Pn(x)在x??4.75,x??0.25,x?0.25,x?4.75处的函数值。
4
问题3 在区间[?1,1]考虑拉格朗日插值问题,为了使得插值误差较小,应如何选取插值节点?
考虑下面两个拉格朗日插值问题:
(1)设f(x)?记xk?cos1x?[?1,1],,考虑非等距节点的拉格朗日插值多项式Pn(x),
1?x2(2k?1)?,k?0,1,?,n,构造Pn(x),利用拉格朗日插值多项式Pn(x)作
2(n?1)为f(x)的近似值。分别取n?5,n?10,n?20,同时计算Pn(x)在x??0.95,
x??0.05,x?0.05,x?0.95处的函数值。
(2)设f(x)?e,x?[?1,1],考虑非等距节点的拉格朗日插值多项式Pn(x),记xk?cosx(2k?1)?,k?0,1,?,n,构造Pn(x),利用拉格朗日插值多项式Pn(x)作
2(n?1)为f(x)的近似值。分别取n?5,n?10,n?20,同时计算Pn(x)在x??0.95,
x??0.05,x?0.05,x?0.95处的函数值。
问题4 考虑拉格朗日插值问题,内插比外推更可靠吗?
考虑下面两个拉格朗日插值问题:
(1)设f(x)?x,关于以x0?1,x1?4,x2?9为节点的拉格朗日插值多项
式P2(x),利用拉格朗日插值多项式P2(x)作为f(x)的近似值。同时计算P2(x)在
x?5,x?50,x?115,x?185处的函数值。
(2)设f(x)?x,关于以x0?36,x1?49,x2?64为节点的拉格朗日插值
多项式P2(x),利用拉格朗日插值多项式P2(x)作为f(x)的近似值。同时计算P2(x)在
x?5,x?50,x?115,x?185处的函数值。
(3)设f(x)?x,关于以x0?100,x1?121,x2?144为节点的拉格朗日插
值多项式P2(x),利用拉格朗日插值多项式P2(x)作为f(x)的近似值。同时计算P2(x)
5