拉格朗日插值及牛顿差商方法的实现(Matlab)

一、问题描述
拉格朗日插值及牛顿差商方法的实现。

二、实验目的
掌握拉格朗日插值和牛顿差商方法的原理,能够编写代码实现两种方法;能够分析多项式插值中的误差。

三、实验内容及要求

  1. 利用拉格朗日插值及牛顿差商方法估计1980 年的人口,并与1980 年的真实值
    4452584592 进行比较,观察两种方法的结果是否相同。其中:
    (a)利用1970 年和1990 年的数据,得到插值直线,估计1980 年的人口;
    (b)利用1960 年、1970、1990 年的数据,得到插值抛物线,估计1980 年的人口;
    (c)利用全部数据,估计1980 年的人口。
    年份 人口
    1960 3039585530
    1970 3707475887
    1990 5281653820
    2000 6079603571

  2. 现有5 个插值节点:(0.6,1.433329), (0.7, 1.632316), (0.8, 1.896481), (0.9,2.247908), (1.0,2.718282)。
    (a)使用牛顿差商方法计算 x = 0.82 和 x = 0.98 的近似值;
    (b)上述数据来自函数f(x) = e(x2),使用插值误差公式找出x = 0.82 和x = 0.98 时的误差上界,比较误差界和实际误差。
    (c)画出在区间[0.5, 1]上实际的插值误差曲线。


四、算法原理

1. 插值多项式的具体形式
拉格朗日插值多项式:

给定 n + 1 n+1 n+1个插值节点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , . . . , ( x n , y n ) (x_0, y_0), (x_1, y_1), ..., (x_n, y_n) (x0,y0),(x1,y1),...,(xn,yn),拉格朗日插值多项式 L ( x ) L(x) L(x) 的表达式为:

L ( x ) = ∑ i = 0 n y i ⋅ ∏ j = 0 , j ≠ i n x − x j x i − x j L(x) = \sum_{i=0}^{n} y_i \cdot \prod_{j=0, j\neq i}^{n} \frac{x - x_j}{x_i - x_j} L(x)=i=0nyij=0,j=inxixjxxj

其中, L ( x ) L(x) L(x) n n n 次多项式,通过 n + 1 n+1 n+1 个插值节点, x x x 是待插值的点。

牛顿差商插值多项式:

给定 n + 1 n+1 n+1个插值节点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , . . . , ( x n , y n ) (x_0, y_0), (x_1, y_1), ..., (x_n, y_n) (x0,y0),(x1,y1),...,(xn,yn),牛顿差商插值多项式 N ( x ) N(x) N(x) 的表达式为:

N ( x ) = y 0 + ( x − x 0 ) ⋅ f [ x 0 , x 1 ] + ( x − x 0 ) ⋅ ( x − x 1 ) ⋅ f [ x 0 , x 1 , x 2 ] + … + ( x − x 0 ) ⋅ ( x − x 1 ) ⋅ … ⋅ ( x − x n − 1 ) ⋅ f [ x 0 , x 1 , . . . , x n ] N(x) = y_0 + (x - x_0) \cdot f[x_0, x_1] + (x - x_0) \cdot (x - x_1) \cdot f[x_0, x_1, x_2] + \ldots + (x - x_0) \cdot (x - x_1) \cdot \ldots \cdot (x - x_{n-1}) \cdot f[x_0, x_1, ..., x_n] N(x)=y0+(xx0)f[x0,x1]+(xx0)(xx1)f[x0,x1,x2]++(xx0)(xx1)(xxn1)f[x0,x1,...,xn]

其中,差商 f [ x i , x i + 1 , . . . , x j ] f[x_i, x_{i+1}, ..., x_{j}] f[xi,xi+1,...,xj] 的计算方式为:

f [ x i , x i + 1 , . . . , x j ] = f [ x i + 1 , x i + 2 , . . . , x j ] − f [ x i , x i + 1 , . . . , x j − 1 ] x j − x i f[x_i, x_{i+1}, ..., x_{j}] = \frac{f[x_{i+1}, x_{i+2}, ..., x_{j}] - f[x_i, x_{i+1}, ..., x_{j-1}]}{x_j - x_i} f[xi,xi+1,...,xj]=xjxif[xi+1,xi+2,...,xj]f[xi,xi+1,...,xj1]

2. 多项式插值主定理

多项式插值主定理是插值理论的核心定理之一,它表述了一个多项式插值问题的存在唯一性。主定理陈述如下:

如果给定 n + 1 n+1 n+1 个节点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , . . . , ( x n , y n ) (x_0, y_0), (x_1, y_1), ..., (x_n, y_n) (x0,y0),(x1,y1),...,(xn,yn),其中所有的 x i x_i xi 都是互不相同的,则存在唯一一个次数不超过 n n n 的多项式 P ( x ) P(x) P(x) 满足 P ( x i ) = y i P(x_i) = y_i P(xi)=yi,对所有的 i i i 成立。

3. 多项式插值中的误差公式和用途
误差公式:

多项式插值中的误差公式用于估计插值多项式与真实函数之间的误差。对于拉格朗日插值,误差公式为:

∣ f ( x ) − L ( x ) ∣ ≤ M ( n + 1 ) ! ⋅ ∏ i = 0 n ∣ x − x i ∣ |f(x) - L(x)| \leq \frac{M}{(n+1)!} \cdot \prod_{i=0}^{n} |x - x_i| f(x)L(x)(n+1)!Mi=0nxxi

其中, M M M 是插值区间内的最大二阶导数的上界。
对于牛顿差商插值,误差公式为:

∣ f ( x ) − N ( x ) ∣ ≤ M 4 ( n + 1 ) ⋅ ∏ i = 0 n ∣ x − x i ∣ |f(x) - N(x)| \leq \frac{M}{4(n+1)} \cdot \prod_{i=0}^{n} |x - x_i| f(x)N(x)4(n+1)Mi=0nxxi

其中, M M M 是插值区间内的最大四阶导数的上界。

用途:
  • 误差估计: 误差公式用于估计插值多项式的精度,帮助确定插值点的选择和插值多项式的次数。
  • 数据逼近: 插值多项式可以用于逼近实际数据,使得在已知数据点上的拟合更为精确。
  • 数值计算: 插值多项式在数值计算中广泛应用,例如在数值积分和数值微分等问题中。

综上所述,插值方法通过构造插值多项式在给定节点上与已知数据一致,提供了一种在非常有限数据点上估计未知函数值的方法,并通过误差估计帮助控制插值的精度。


五、测试数据及结果

  1. 针对(a)(b)(c)三种情况,分别给出拉格朗日插值及牛顿差商方法的估计值(保留4 位小数)。给出3 种情况下的误差(保留4 位小数),分析是否插值多项式次数越高,近似结果越好。
  • 代码:
% 拉格朗日插值函数
function result = lagrange_interpolation(x, y, xi)n = length(x);result = 0;for i = 1:nterm = y(i);for j = 1:nif j ~= iterm = term * (xi - x(j)) / (x(i) - x(j));endendresult = result + term;end
end% 牛顿差商方法函数
function result = newton_interpolation(x, y, xi)n = length(x);f = zeros(n, n);f(:, 1) = y';for j = 2:nfor i = 1:n-j+1f(i, j) = (f(i+1, j-1) - f(i, j-1)) / (x(i+j-1) - x(i));endendresult = f(1, 1);for j = 2:nterm = 1;for i = 1:j-1term = term * (xi - x(i));endresult = result + f(1, j) * term;end
end
  • 结果:请添加图片描述

插值多项式次数越高,并不意味着近似结果一定越好。在插值中存在一个称为过拟合的问题,即使用高次多项式拟合数据,可能在已知数据点上表现得非常好,但在未知数据点上可能表现不佳。高次多项式在插值过程中容易产生振荡,尤其是在数据点边缘附近。这种情况下,多项式可能在数据点之间产生大的振荡,而不是真实的趋势。

  1. 按(a)(b)(c)的具体要求给出结果即可。
  • (a)&(b):
    请添加图片描述

  • ©:
    请添加图片描述

六、总结与思考

在实现拉格朗日插值和牛顿差商插值之前,深入理解了插值的基本原理是关键。插值的目标是通过已知数据点构建一个多项式,使得这个多项式在这些点上与真实函数相等。拉格朗日插值和牛顿差商插值是两种常见的插值方法,它们都基于多项式的性质,通过给定的插值节点生成插值多项式。

在编写和调试代码的过程中,遇到了一些错误,例如矩阵乘法的维度问题。这提醒了我在编写代码时要特别注意矩阵和数组的维度匹配,以避免出现运行时错误。同时,对于 MATLAB 的一些特殊语法和操作,要时刻保持警惕。

这次实验让我更深入地了解了插值方法的原理和应用,提高了对插值误差的理解。实践中遇到的问题促使我更加注重代码的细节和调试过程。通过这次实验,我对 MATLAB 编程、插值算法和数值计算的知识有了更全面的认识。在以后的学习和实践中,我将更加注重理论和实际问题的结合,提高编程和问题解决的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17816.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛!华为《Linux 面试笔记大全》太赞了,完整版PDF 开放下载!

在QQ和微信社群中,我注意到许多人都在寻找一份全面的Linux学习资料。因此,我在这里为大家整理和分类了相关的信息,可以看作是对重点内容的梳理和归纳。 这份《Linux面试笔记》主要分为三大部分:基础篇-进阶篇-高级篇 本书笔记针…

【SQL学习进阶】从入门到高级应用(二)

文章目录 简单查询查一个字段查多个字段查所有字段查询时字段可参与数学运算查询时字段可起别名as关键字省略as关键字别名中有空格别名中有中文 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博客,很高兴能够在这里和您见面&#xf…

44、Flink 的 Interval Join 详解

Interval Join Interval join 组合元素的条件为:两个流(暂时称为 A 和 B)中 key 相同且 B 中元素的 timestamp 处于 A 中元素 timestamp 的一定范围内,即 b.timestamp ∈ [a.timestamp lowerBound; a.timestamp upperBound] 或…

TCL华星揽获技术创新奖,创新能力与伙伴价值再获肯定

近日,以“拥抱AI共创美好”为主题的2024年联想全球供应商大会在深圳圆满举办,重磅分享联想战略愿景和目标。 TCL华星应邀设置品牌展区,携手机、IT等领域10余款前沿显示产品亮相会场,以先锋显示科技演绎联合共创的多元化场景。联想…

5-26作业

网络聊天室 服务器&#xff1a; 1 #include <myhead.h>2 int main(int argc, const char *argv[])3 {4 if(argc!3)5 {6 printf("请输入IP和端口号\n");7 return -1;8 }9 int sfd socket(AF_INET, SOCK_DGRAM, 0);10 if(…

MySQL数据库案例实战教程:数据类型、语法与高级查询详解

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

xss-labs之level9、level10

一、level9 1、测试分析 尝试了之前的payload&#xff0c;发现都不行&#xff0c;看源码发现多了个strpos函数&#xff0c; strpos() 是一个在 PHP 中用于查找子串首次出现位置的函数。它接受两个参数&#xff1a;要搜索的字符串&#xff08;主字符串&#xff09;和要查找的子…

AAAI2024 基于扩散模型 多类别 工业异常检测 DiAD

前言 本文分享一个基于扩散模型的多类别异常检测框架&#xff0c;用于检测工业场景的缺陷检测或异常检测。 设计SG语义引导网络&#xff0c;在重建过程中有效保持输入图像的语义信息&#xff0c;解决了LDM在多类别异常检测中的语义信息丢失问题。高效重建&#xff0c;通过在潜…

开源大模型与闭源大模型:谁将引领AI的未来?

前言 在AI领域&#xff0c;开源大模型和闭源大模型一直并存&#xff0c;各自有其独特的优势和挑战。下面&#xff0c;我们将从数据隐私、商业应用和社区参与三个方向&#xff0c;对这两种模型进行深入探讨。 一、数据隐私 开源大模型&#xff1a; 1. 透明度高&#xff1a; …

SSDReporter for Mac:守护您硬盘健康的守护者

SSDReporter for Mac是一款专为Mac用户设计的固态硬盘&#xff08;SSD&#xff09;健康状况检测工具。以下是关于这款软件的详细介绍&#xff1a; SSDReporter for Mac的主要功能是全面检测、监控Mac设备中SSD的工作状态&#xff0c;以确保数据的完整性和设备的稳定性。它能够…

【problem】解决EasyExcel导出日期数据显示为#####问题

前言 在使用EasyExcel进行数据导出时&#xff0c;你可能遇到日期或其他数据在Excel中显示为“#######”的情况&#xff0c;这通常是因为列宽不足以展示单元格内的全部内容。本文将指导你如何通过简单的步骤解决这一问题&#xff0c;并确保导出的Excel文件自动调整列宽或直接指…

文件传输服务应用1——java集成smb2/3实现文件共享方案详细教程和windows共享服务使用配置

在实际项目开发过程中&#xff0c;读取网络资源或者局域网内主机的文件是必要的操作和需求。而FTP&#xff08;文件传输协议&#xff09;和SMB&#xff08;服务器消息块&#xff09;是两种最为常见的文件传输协议。它们各自在文件传输领域拥有独特的优势和特点&#xff0c;但同…

7B2PRO5.4.2主题 wordpress主题开心版免授权源码

这款7B2 PRO主题也是很多小伙伴儿喜欢的一个主题&#xff0c;有伙伴儿反馈说想学习下新版本&#xff0c;这不就来了&#xff0c;免受权开心版本可供学习使用&#xff0c;要运营还是尊重下版权到官网进行购买吧。 下载&#xff1a;7B2PRO5.4.2 wordpress主题免授权直接安装_麦…

The First项目报告:解读ZK技术的跨链巨头Polyhedra Network

4 月 17 日&#xff0c;零知识证明&#xff08;ZK&#xff09;基础设施开发团队 Polyhedra Network与谷歌云达成战略合作&#xff0c;以响应 Web2 与 Web3 市场对于该技术日益增长的需求。双方将基于Polyhedra的尖端研究及专有算法通过谷歌云提供的零知识即服务向全球开发者开放…

hexo静态博客 部署到xxx.github.io github 静态页

hexo安装 npm install hexo-cli -g hexo init blog cd blog npm install hexo server key配置 ssh-keygen -t ed25519 -C “emaile.com” 添加key到github err gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository. 配置GitHub仓…

精酿啤酒:品质与口感在不同消费人群中的差异与共性

在啤酒市场中&#xff0c;不同消费人群对品质与口感的喜好存在一定的差异。然而&#xff0c;Fendi club啤酒凭借其卓着的品质和与众不同的口感&#xff0c;在不同消费人群中都展现出一定的共性。 从性别差异来看&#xff0c;男性消费者通常更注重啤酒的品质和口感&#xff0c;而…

TiDB-从0到1-体系结构

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务 一、TiDB体系结构图 TiDB基础的体系架构中有4大组件 TiDB Server&#xff1a;用于处理客户端的请求PD&#xff1a;体系的大脑&#xff0c;存储元数据信息TiKV&#xff1a;存储数据TiFlash…

【机器学习】【深度学习】批量归一化(Batch Normalization)

概念简介 归一化指的是将数据缩放到一个固定范围内&#xff0c;通常是 [0, 1]&#xff0c;而标准化是使得数据符合标准正态分布。归一化的作用是使不同特征具有相同的尺度&#xff0c;从而使模型训练更加稳定和快速&#xff0c;尤其是对于使用梯度下降法的算法。而标准化的作用…

软件功能测试的类型和流程分享

在现代社会&#xff0c;软件已经成为人们生活中不可或缺的一部分&#xff0c;而在软件的开发过程中&#xff0c;功能测试是不可或缺的环节。软件功能测试指的是对软件系统的功能进行检查和验证&#xff0c;以确保软件在各种情况下能够正常运行&#xff0c;并且能够按照用户需求…

2024年国内最全面最前沿人工智能理论和实践资料

引言 【导读】2024第11届全球互联网架构大会圆满结束。会议邀请了100余位行业内的领军人物和革新者&#xff0c;大会通过主题演讲、实践案例分享&#xff0c;以及前瞻性的技术讨论&#xff0c;探索AI技术的边界。 近日&#xff0c;备受瞩目的第十一届全球互联网架构大会&#x…