数值分析实验报告:拉格朗日插值法和牛顿插值法(共4页).doc

上传人:飞****2 文档编号:14045727 上传时间:2022-05-02 格式:DOC 页数:4 大小:62KB
返回 下载 相关 举报
数值分析实验报告:拉格朗日插值法和牛顿插值法(共4页).doc_第1页
第1页 / 共4页
数值分析实验报告:拉格朗日插值法和牛顿插值法(共4页).doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《数值分析实验报告:拉格朗日插值法和牛顿插值法(共4页).doc》由会员分享,可在线阅读,更多相关《数值分析实验报告:拉格朗日插值法和牛顿插值法(共4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上实验一报告拉格朗日插值法一、实验目的1、学习和掌握拉格朗日插值多项式 2、运用拉格朗日插值多项式进行计算二、实验原理 根据x0,x1,xn;y0,y1,yn构造插值多项式其表达式为:将插值点x代入上式,就可得到函数f(x)在点x处的函数值的近似值。三、运行结果四、代码using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication3 class Program static double lglr(double x

2、, double y, double x1, int n) double result = 0.0; for (int i = 0; i n; i+) double temp = yi; for (int j = 0; j n; j+) if (j = i) continue; temp = temp * (x1 - xj); temp = temp / (xi - xj); result = result + temp; return result; static void Main(string args) double x; double y; Console.WriteLine(请输入

3、插值点数:); int length = Convert.ToInt32(Console.ReadLine(); x = new doublelength; y = new doublelength; for (int i = 0; i length; i+) Console.Write(请输入第0个点的x值:, i + 1); xi = Convert.ToDouble(Console.ReadLine(); Console.Write(请输入第0个点的y值:, i + 1); yi = Convert.ToDouble(Console.ReadLine(); Console.WriteLi

4、ne(请输入x1值:); double x1 = Convert.ToDouble(Console.ReadLine(); double result=lglr(x,y,x1,length); Console.Write(插值计算结果为:0:, result); Console.ReadLine(); 牛顿插值法一、实验目的 体会并了解牛顿插值法,用计算机插入x值,输出相应的y值。二、实验原理根据x0,x1,xn;y0,y1,yn构造插值多项式Nn(x)=f(x0)+f(x0,x1)(x-x0)+f(x0,x1,xn)(x-x0)(x-x1)(x-xn-1)牛顿差值公式中各项的系数就是函f(x

5、)的各阶均差(差商)f(x0),f(x0,x1),f(x0,x1,xn),因此,在构造牛顿差值公式时,常常先把均差列成一个表,此表称为均差表。三、运行结果四、代码using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace newton class Program static double chashang(int n, double x, double y) double f = 0; double temp = 0; for (int i = 0; i n + 1;

6、i+) temp = yi; for (int j = 0; j n + 1; j+) if (i != j) temp /= (xi - xj); f += temp; return f; static double niudun(double x, double y, double x1) double result = 0.0; for (int i = 0; i x.Length; i+) double f = chashang(i, x, y); double temp = 1.0; for (int j = 0; j i; j+) temp = temp * (x1 - xj);

7、result = result + f * temp; return result; static void Main(string args) double x; double y; Console.WriteLine(请输入插值点数:); int length = Convert.ToInt32(Console.ReadLine(); x = new doublelength; y = new doublelength; for (int i = 0; i length; i+) Console.Write(请输入第0个点的x值:, i + 1); xi = Convert.ToDoubl

8、e(Console.ReadLine(); Console.Write(请输入第0个点的y值:, i + 1); yi = Convert.ToDouble(Console.ReadLine(); Console.WriteLine(请输入x1值:); double x1 = Convert.ToDouble(Console.ReadLine(); double result = niudun(x, y, x1); Console.Write(插值计算结果为:0:, result); Console.ReadLine(); 五、分析 当插值多项式从n-1次增加到n次时,拉格朗日型插值必须重新计算所有的基本差值多项式;二对于牛顿插值,只需要表格再计算一个n阶均差,然后加上一项就可以了。这样大大减少了计算量,特别在计算结构复杂的多项式的时候,当然本实验中的数据组很少,计算机的计算速度快慢不明显而难以比较两种方法的优劣。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁