【学习笔记】插值之拉格朗日插值(Lagrange)

0 插值介绍

插值法是广泛应用于理论研究和工程实际的重要数值方法。用提供的部分离散的函数值来进行理论分析和设计都是极不方便的,因此希望能够用一个既能反映原函数特征,又便于计算的简单函数去近似原函数。

1 低次拉格朗日插值

定理:设 x 0 {x_0} x0​, ⋯ {\cdots} ⋯, x n {x_n} xn​是互异插值节点,则满足差值条件 p ( x i ) = y i ( i = 0 , 1 , 2 , ⋯ , n ) {p(x_i)}=y_i(i=0,1,2,\cdots,n) p(xi​)=yi​(i=0,1,2,⋯,n)的插值多项式 p ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ + a n x n {p(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n} p(x)=a0​+a1​x+a2​x2+⋯+an​xn是存在且唯一的。
证明:由条件可知, p ( x ) p(x) p(x)的系数 a i a_i ai​满足
{ a 0 + a 1 x 0 + ⋯ + a n x 0 = y 0 a 0 + a 1 x 1 + ⋯ + a n x 1 = y 1 ⋮ a 0 + a 1 x n + ⋯ + a n x n = y n \left\{ \begin{array}{c} a_0+a_1x_0+\cdots+a_nx_0=y_0\\ a_0+a_1x_1+\cdots+a_nx_1=y_1\\ \vdots\\ a_0+a_1x_n+\cdots+a_nx_n=y_n\\ \end{array} \right. ⎩ ⎨ ⎧​a0​+a1​x0​+⋯+an​x0​=y0​a0​+a1​x1​+⋯+an​x1​=y1​⋮a0​+a1​xn​+⋯+an​xn​=yn​​
这是一个关于 a 0 , a 1 , ⋯ , a n a_0,a_1, \cdots ,a_n a0​,a1​,⋯,an​的 n + 1 n+1 n+1元线性方程组,并注意到其系数行列式为一个范德蒙行列式,又由于 i ≠ j i \ne j i=j时 x i ≠ x j x_i \ne x_j xi​=xj​,于是,方程组唯一解。

以上定理的证明提供了一个求 p ( x ) p(x) p(x)的方法,这就是解方程组。但当 n n n较大时,这是很困难的。对于给定的插值点,求形如 p ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ + a n x n {p(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n} p(x)=a0​+a1​x+a2​x2+⋯+an​xn的插值多项式有不同的方法。

1.1 n=1时插值方法

先讨论 n = 1 n=1 n=1的简单情况,互异插值点 x 0 , x 1 x_0,x_1 x0​,x1​上的函数值分别为 f ( x 0 ) , f ( x 1 ) f(x_0),f(x_1) f(x0​),f(x1​)是已知的,通过两点 ( x 0 , f ( x 0 ) ) (x_0,f(x_0)) (x0​,f(x0​))及 ( x 1 , f ( x 1 ) ) (x_1,f(x_1)) (x1​,f(x1​))的插值多项式是一条直线,即两点式
L 1 ( x ) = x − x 1 x 0 − x 1 f ( x 0 ) + x − x 0 x 1 − x 0 f ( x 1 ) L_1(x)=\frac {x-x_1}{x_0-x_1}f(x_0) + \frac {x-x_0}{x_1-x_0}f(x_1) L1​(x)=x0​−x1​x−x1​​f(x0​)+x1​−x0​x−x0​​f(x1​)
显然, L 1 ( x 0 ) = f ( x 0 ) , L 1 ( x 1 ) = f ( x 0 ) L_1(x_0)=f(x_0),L_1(x_1)=f(x_0) L1​(x0​)=f(x0​),L1​(x1​)=f(x0​),满足插值条件,所以 L 1 ( x ) L_1(x) L1​(x)就是线性插值多项式。若记 l 0 ( x ) = x − x 1 x 0 − x 1 l_0(x)=\frac{x-x_1}{x_0-x_1} l0​(x)=x0​−x1​x−x1​​, l 1 ( x ) = x − x 0 x 1 − x 0 l_1(x)=\frac{x-x_0}{x_1-x_0} l1​(x)=x1​−x0​x−x0​​,则称 l 0 ( x ) , l 1 ( x ) l_0(x),l_1(x) l0​(x),l1​(x)为关于 x 0 x_0 x0​与 x 1 x_1 x1​的线性插值基函数。

于是有
L 1 ( x ) = l 0 ( x ) f ( x 0 ) + l 1 ( x ) f ( x 1 ) L_1(x)=l_0(x)f(x_0)+l_1(x)f(x_1) L1​(x)=l0​(x)f(x0​)+l1​(x)f(x1​)

1.2 n=2时插值方法

当 n = 2 n=2 n=2时,给定互异插值点 x 0 , x 1 , x 2 x_0,x_1,x_2 x0​,x1​,x2​上的函数值分别为
f ( x 0 ) , f ( x 1 ) , f ( x 2 ) f(x_0),f(x_1),f(x_2) f(x0​),f(x1​),f(x2​)
l 0 ( x ) = ( x − x 1 ) ( x − x 2 ) ( x 0 − x 1 ) ( x 0 − x 2 ) , l_0(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}, l0​(x)=(x0​−x1​)(x0​−x2​)(x−x1​)(x−x2​)​,
l 1 ( x ) = ( x − x 0 ) ( x − x 2 ) ( x 1 − x 0 ) ( x 1 − x 2 ) , l_1(x)=\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}, l1​(x)=(x1​−x0​)(x1​−x2​)(x−x0​)(x−x2​)​,
l 2 ( x ) = ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) l_2(x)=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} l2​(x)=(x2​−x0​)(x2​−x1​)(x−x0​)(x−x1​)​
称为关于点 x 0 , x 1 , x 2 x_0,x_1,x_2 x0​,x1​,x2​的二次插值基函数,它满足
l i ( x j ) = { 1 , j = i 0 , j ≠ i , i , j = 0 , 1 , 2 , ⋯ l_i(x_j)= \left\{ \begin{array}{c} 1, j = i \\ 0, j \ne i\\ \end{array},i,j=0,1,2,\cdots \right. li​(xj​)={1,j=i0,j=i​,i,j=0,1,2,⋯
满足条件的 L 2 ( x i ) = f ( x i ) ( i = 0 , 1 , 2 ) L_2(x_i)=f(x_i)(i=0,1,2) L2​(xi​)=f(xi​)(i=0,1,2)的二次插值多项式 L 2 ( x ) L_2(x) L2​(x)可表示为
L 2 ( x ) = l 0 ( x ) f ( x 0 ) + l 1 ( x ) f ( x 1 ) + l 2 ( x ) f ( x 2 ) L_2(x)=l_0(x)f(x_0)+l_1(x)f(x_1)+l_2(x)f(x_2) L2​(x)=l0​(x)f(x0​)+l1​(x)f(x1​)+l2​(x)f(x2​)
y = L 2 ( x ) y=L_2(x) y=L2​(x)的图形是通过三点 ( x 1 , f ( x i ) ) ( i = 0 , 1 , 2 ) (x_1,f(x_i))(i=0,1,2) (x1​,f(xi​))(i=0,1,2)的抛物线。

1.3 举例

x x x14916
x \sqrt{x} x ​1234

解:
选择与 x = 5 x=5 x=5最接近的三点 x 0 = 1 , x 1 = 4 , x 2 = 9 x_0=1,x_1=4,x_2=9 x0​=1,x1​=4,x2​=9为插值点,由
L 2 ( x ) = l 0 ( x ) f ( x 0 ) + l 1 ( x ) f ( x 1 ) + l 2 ( x ) f ( x 2 ) L_2(x)=l_0(x)f(x_0)+l_1(x)f(x_1)+l_2(x)f(x_2) L2​(x)=l0​(x)f(x0​)+l1​(x)f(x1​)+l2​(x)f(x2​)
得, 5 ≈ 1 ⋅ ( 5 − 4 ) ( 5 − 9 ) ( 1 − 4 ) ( 1 − 9 ) + 2 ⋅ ( 5 − 1 ) ( 5 − 9 ) ( 4 − 1 ) ( 4 − 9 ) + 3 ⋅ ( 5 − 1 ) ( 5 − 4 ) ( 9 − 1 ) ( 9 − 4 ) ≈ 2.267 \sqrt{5} \approx 1 \cdot \frac{(5-4)(5-9)}{(1-4)(1-9)}+2 \cdot \frac{(5-1)(5-9)}{(4-1)(4-9)}+ 3 \cdot \frac{(5-1)(5-4)}{(9-1)(9-4)} \approx 2.267 5 ​≈1⋅(1−4)(1−9)(5−4)(5−9)​+2⋅(4−1)(4−9)(5−1)(5−9)​+3⋅(9−1)(9−4)(5−1)(5−4)​≈2.267

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

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

相关文章

福利来了| 200多款精选简历模板免费领,让你30秒内征服HR!

找工作是不是让你很头大?尤其是写简历,真的好痛苦啊!我在网上找了好久,都没有找到合适的简历模板,自己做又不知道从哪里下手。 不过现在好了,有一个超级福利送给大家!200多款精选简历模板免费领…

codeformer,是如何对数据进行降级处理的?是如何模糊人脸图像的?

答案&#xff1a;https://github.com/sczhou/CodeFormer/blob/8392d0334956108ab53d9439c4b9fc9c4af0d66d/basicsr/data/ffhq_blind_dataset.py#L90 运动模糊&#xff1a; # motion blurif self.use_motion_kernel and random.random() < self.motion_kernel_prob:m_i ran…

使用HTML+CSS+JS网页设计与制作,酷炫动效科技农业网页

使用HTMLCSSJS网页设计与制作&#xff0c;酷炫动效科技农业网页。 可以用于家乡介绍、科技农业、图片画廊展示等个人网站的设计与制作。农业网站、家乡网站、农产品网站、旅游网站。 网站亮点 1、视觉设计&#xff1a;排版布局极简设计&#xff0c;优质的视觉体验等。 2、动…

手摸手Element-ui路由VueRoute

后端WebAPI准备 https://router.vuejs.org/zh/guide/ https://v3.router.vuejs.org/zh/installation.html <template><el-table:data"tableData"style"width: 100%":row-class-name"tableRowClassName"><!-- <el-table-colum…

【华为OD】统一考试B\C卷真题:100%通过: 分班 C/C++源码实现

目录 题目描述&#xff1a; 示例1 C源码实现&#xff1a; 题目描述&#xff1a; 幼儿园两个班的小朋友在排队时混在了一起&#xff0c;每位小朋友都知道自己是否与前面一位小朋友是否同班&#xff0c;请你帮忙把同班的小朋友找出来。 小朋友的编号为整数&#xff0c;与前一…

3-全功能pytest测试框架-allure2

3-全功能pytest测试框架-allure2 一:Allure介绍1> Allure 优势2> Allure 安装二:allure demo1> 脚本demo2> 查看result三:allure装饰器1> 装饰器一览表2> 装饰器概述1. epic、feature、story3> @allure.title()4> @allure.testcase()5> @allure.…

【linux挂载windows,密码含特殊字符,使用证书方式挂载】

1、设置Windows端共享文件目录 暂定设置共享目录为为&#xff1a;D:\shared 2、Linux客户端挂载 安装samba服务 查看是否安装&#xff1a;rpm -qa | grep samba samba4-libs-4.0.0-58.el6.rc4.x86_64 samba4-4.0.0-58.el6.rc4.x86_64 samba4-client-4.0.0-58.el6.rc4.x86_64 s…

Vue框架学习笔记——侦听(监视)属性watch:天气案例+immediate+deep深度监听

文章目录 前文提要天气案例描述样例代码呈现效果&#xff1a;事件的响应中可以写一些简单的语句&#xff08;不推荐&#xff09; 侦听&#xff08;监视&#xff09;属性watch结合天气案例的第一种写法&#xff08;New Vue&#xff09;immediate&#xff1a; 侦听&#xff08;监…

为什么要用 Redis 而不用 map/guava 做缓存? Redis为什么这么快 Redis有哪些数据类型 Redis的应用场景

文章目录 为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快Redis有哪些数据类型Redis的应用场景总结一计数器缓存会话缓存全页缓存&#xff08;FPC&#xff09;查找表消息队列(发布/订阅功能)分布式锁实现 总结二 简单的聊聊Redis常见的一些疑问点&#xff1a;具体…

Spring Security 6.1.x 系列(5)—— Servlet 认证体系结构介绍

一、前言 本章主要学习Spring Security中基于Servlet 的认证体系结构&#xff0c;为后续认证执行流程源码分析打好基础。 二、身份认证机制 Spring Security提供个多种认证方式登录系统&#xff0c;包括&#xff1a; Username and Password&#xff1a;使用用户名/密码 方式…

MATLAB中FFT频谱分析使用详解

文章目录 语法说明语法一&#xff1a;Y fft(X)fft(X)返回X长度的傅里叶变换 语法二&#xff1a;Y fft(X,N)如果 X的长度小于 N&#xff0c;则为 X补上尾零以达到长度 N(FFT插值)双边谱转换为单边谱 如果 X 的长度大于 N&#xff0c;则对 X 进行截断以达到长度 N。 语法三&…

Postman如何使用(四):接口测试

一.接口 1.程序内部接口&#xff1a;方法与方法之间&#xff0c;模块与模块之间的交互&#xff0c;程序内部抛出的接口&#xff0c;比如bbs系统&#xff0c;有登录模块&#xff0c;发帖模块等等&#xff0c;那你要发帖就必须先登录&#xff0c;那么这两个模块就得有交互&#…

Nginx(九) aio sendfile directio 组合使用测试(2)

测试7&#xff1a;开启directio2m、sendfile&#xff0c;关闭aio&#xff0c;请求/vendor.js {"time_iso8601":"2023-11-26T22:47:3508:00","request_uri":"/vendor.js","status":"200","bytes_sent":…

什么是数据增强,为什么会让模型更健壮?

在做一些图像分类训练任务时&#xff0c;我们经常会遇到一个很尴尬的情况&#xff0c;那就是&#xff1a; 明明训练数据集中有很多可爱猫咪的照片&#xff0c;但是当我们给训练好的模型输入一张戴着头盔的猫咪进行测试时&#xff0c;模型就不认识了&#xff0c;或者说识别精度…

Makefile讲解

CC g CFLAGS -stdc11 -Wall -pthread LDFLAGS SRCS ../main.cpp socketCan_FW_Download.cpp OBJS $(SRCS:.cpp.o)acandev: $(OBJS)$(CC) $(CFLAGS) $(OBJS) -o acandev $(LDFLAGS)%.o: %.cpp$(CC) $(CFLAGS) -c $< -o $clean:rm -f $(OBJS) acandev解释下上面Makefile中…

栈和队列OJ题目——C语言

目录 LeetCode 20、有效的括号 题目描述&#xff1a; 思路解析&#xff1a; 解题代码&#xff1a; 通过代码&#xff1a; LeetCode 225、用队列实现栈 题目描述&#xff1a; 思路解析&#xff1a; 解题代码&#xff1a; 通过代码&#xff1a; LeetCode 232、用栈…

Harmony入门-HelloWorld

HarmonyOS 已经出来一些时间了。也有了OpenHarmony&#xff0c;作为HarmonyOS抽离的基础架构OpenHarmony&#xff0c;贡献给开源了&#xff0c;后续独立出来&#xff0c;那可真是就要独立生态啦&#xff0c;咱们顺水行舟&#xff0c;学习学习。 1.IDE 安装 https://hmxt.org/d…

MySQL学习day03

一、SQL图形化界面工具 常用比较常用的图形化界面有sqlyog、mavicat、datagrip datagrip工具使用相当方便&#xff0c;功能比前面两种都要强大。 DataGrip工具的安装和使用请查看这篇文档&#xff1a;DataGrip 安装教程 DML-介绍 DML全称是Data Manipulation Language(数据…

Ubuntu22.04下打包发布Qt5.15应用程序的方法

Qt应用编译时选择release方式编译 目的:debug方式编译依赖的文件会多一些,同时文件大小还会很大。 Notice: 所有操作都是在当前用户下,如果是root账户,需要注意加上sudo,否则会因为权限问题提取依赖文件失败。 准备 在Ubuntu当前用户目录下创建一个目录gary@gary-host:…

【Java数据结构 -- 包装类和泛型】

包装类和泛型 1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱1.4 自动装箱实际上是调用了valueOf&#xff08;&#xff09;1.5 Integer包装类赋值注意点 2 什么是泛型3 引出泛型4 泛型的使用4.1 语法4.2 类型推导 5 裸类型6 泛型如何编译6.1 擦…