《数值计算实验5》由会员分享,可在线阅读,更多相关《数值计算实验5(5页珍藏版)》请在金锄头文库上搜索。
1、本科实验报告课程名称: 计算机数值方法 B 实验项目: 代数插值 实验地点: 逸夫楼 302 专业班级: 学号: 学生姓名: 指导教师: 2013 年 4 月 20 日一、实验目的和要求学习使用拉格朗日插值法或牛顿插值法求解二、实验内容和原理使用拉格朗日插值法或牛顿插值法求解:已知 f(x)在 6 个点的函数值如下表所示,运用插值方法,求 f(0.596)的近似值。X 0.40 0.55 0.65 0.80 0.90 1.05f(x) 0.41075 0.57815 0.69675 0.88811 1.02652 1.25386原理:设函数在区间a,b上 n+1 互异节点 x0,x1,xn上的
2、函数值分别为 y0,y1,yn,求 n 次插值多项式 Pn(x),满足条件Pn(xj)=yj, j=0,1,n令Ln(x)=y0l0(x)+y1l1(x)+ynln(x)= y ili(x)其中 l0(x),l1(x), ln(x) 为以 x0,x1,xn为节点的 n次插值基函数,则 Ln(x)是一次数不超过 n 的多项式,且满足Ln(xj)=yj, L=0,1,n再由插值多项式的唯一性,得Pn(x)L n(x)三、主要仪器设备惠普 ProBook6460b VC+运行环境四、操作方法与实验步骤#include stdio.h#include math.h #include stdafx.h#
3、includeiostreamusing namespace std;typedef struct datafloat x;float y;Data; /变量x和函数值y的结构Data d20; /最多二十组数据float f(int s,int t) /牛顿插值法,用以返回插商if(t=s+1)return (dt.y-ds.y)/(dt.x-ds.x);elsereturn (f(s+1,t)-f(s,t-1)/(dt.x-ds.x); float Newton(float x,int count)int n;while(1)coutn;if(ncount;if(countdi.x;cou
4、tdi.y;system(cls);coutx;while(1)int choice=3;coutchoice;/取得用户的选择项if(choice=2)cout你选择了牛顿插值计算方法,其结果为:;y=Newton(x,count);break;/调用相应的处理函数if(choice=1)cout你选择了拉格朗日插值计算方法,其结果为:;y=lagrange(x,count);break;/调用相应的处理函数if(choice=0)break;system(cls);cout输入错误!endl;coutx , yendl;/输出最终结果system(pause); 五、实验结果与分析拉 格
5、朗 日 插 值 的 优 点 是 插 值 多 项 式 特 别 容 易 建 立 , 缺 点 是 增加 节 点 是 原 有 多 项 式 不 能 利 用 , 必 须 重 新 建 立 , 即 所 有 基 函 数 都要 重 新 计 算 , 这 就 造 成 计 算 量 的 增 加 。 牛 顿 插 值 法 则 很 好 地 避 免了 上 述 问 题 。心得:本 实 验 有 两 种 插 值 方 法 可 以 选 用 , 由 于 时 间 关 系 , 最 终 选 用牛 顿 插 值 法 。 若 是 下 去 有 时 间 的 话 , 可 以 再 用 拉 格 朗 日 插 值 法 验证 一 番 。 既 能 增 加 编 程 的 锻 炼 能 力 , 还 能 进 一 步 巩 固 一 下 所 学 知识 。