刘盼计算方法实验.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
讣算机科学与工程学院 讣算机科学与工程学院 《计算方法》实验报告 学号 201677 刘盼 班级 计算机一班 实验项目名称 插值与拟合 一、实验名称 实验一插值与拟合 二、实验目的: 明确插值多项式和分段插值多项式各自的优缺点: 编程实现拉格朗日插值算法,分析实验结果体会高次插值产生的龙格现象: 理解最小二乘拟合,并编程实现线性拟合,掌握非线性拟合转化为线性拟合的方法 运用常用的插值和拟合方法解决实际问题。 三、实验内容及要求 (1)对于 f(x) = — 9 一5SXS5 l + x 要求选取11个等距插值节点,分别采用拉格朗日插值和分段线性插值,汁算x为0.5, 4.5处的函数 值并将结果与精确值进行比较。 输入:区间长度,n(即n+1个节点),预测点 输岀:预测点的近似函数值,精确值,及误差 (2)已知J = 1,折=2,^9 = 3,用牛顿插值公式求V5的近似值。 输入:数据点集,预测点。 输岀:预测点的近似函数值 四、实验原理及算法描述 Lagrange插值法的基本原理: 当精确函数y = f(x)非常复杂或未知,在一系列节点xo... xn处测得函数值yo = f(xo),... yn = f(xn),希望由此构造一个简单易算的近似函数g(x) ? f(x),满足条件g(Xi) = f(Xi) (i = 0,... n)°这 里的g(x)称为f(x)的插值函数,由插值函数可以去近似估计f(x)在一些未知点处的函数值。最常 用的插值函数是多项式插值。 所谓多项式插值即求n次多项式£“)=厲+牛+…使得Pn(Xi) = f(Xi) 基于基函数的拉格朗日插值是构造多项式插值最基本方法。也是推导数值微积分和微分方程数 值解的公式的理论基础。 91 丹 X — X - 拉格朗日插值公式为:Pn(X)= ^yJk(X)其中人(x) = 连—0 丿?0 X — Xj Lagrange插值算法描述:(也可以是算法流程图) 步骤1:构造兀0,£,???,£处的插值基函数Z0(x),/,(%),,其中,插值节点无处的插值 (片一 X (片一 X。)…(片一兀_])(兀一 X )…(无-xn) 步骤厶 以片作为A3 的系数,使得WQ)通过插值点(xpyz): 步骤3:把所有的)7,(A-)线性叠加,得到通过所有插值点U,x)J = O,l,...j的插值函数 厶(X)=^2⑴ ° Lagrange插值伪代码: 给定H个插值点(如,儿),3,X),???,(X”,儿)的情况下,求插值函数LJx)在点/处的函数值。 厂输入参数 *X=(XO,Xi?..,Xn), T=(yo,yi,?返回值插值节点 *X=(XO,Xi?..,Xn), T=(yo,yi, ?返回值 被插函数f(x)在插值节点处的函数值 求插值函数Ln (x)在t处的函数值 插值函数-(X)在t处的函数值 五、程序代码及实验结果 主程序 int main() { double x[11] = {-5,-43,-2,-1,0,1,2,3A5},y[11]= {0.038461,0.058823,0.100000,0.200000,0.500000,1.000000,0.500000,0.200000,0.100000,0.0588 23,0.038461}; double u1,u2; double m1,U,p1,m2,l2,p2; printf(请输入要计算的x的值:”); scanfC%lf;u1); m1= 1/(1+u1*u1); printf(Hx=%lf时的精确值为:%f\nH,u1 ,m1); printf(,,x=%lfl时的拉格朗日差值近似值为:%f\n,u1,Lagrange(x,y,u1));//拉格郎日插值 printf(x=%lf时的分段线性差值近似值为:%f\n,u1 ,PiecevviseLinear(x,y,u1)); //分段线性插值 U =m1 ? Lagrange(x,y,u1); p1=m1-Piecev/iseLinear(x,y,u1); printffx=%lf时的拉格朗日误差为:%f\n\u1,11); printf(Hx=%lfl时的分段线性误差为:%f\n,u1,p1); printf(请再输入要计算的x的值:”); scanfC%lf;u2); m2=1/(1+u2*u2); printfCx=%lf时的精确值为:%f\nH,u2,m2); printf(,,x=%lf时的拉格朗日差值近似值为:%f\n,u2,Lagrange(x,y,u2));//拉格郎日插值 printfCx=%lf时的分段线性差值近似值为:%f\nH,u2,PiecewiseLinear(x,y,u2)); //分段线性插值 讣算机科学与工程学院

文档评论(0)

cooldemon0602 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档