当前位置: 首页 > news >正文

三次样条插值的原理(一)

在做三次样条插值的时候,我们需要首先注意几点:

第一,样条插值主要有两种,一种并不算插值,属于拟合,近似,不过每个给定的离散数据点;另一种是插值,过每个离散数据点。

第二、样条插值函数是在每个段上定义的,如果有N段,就是N个函数。

如果有N+1个数据点,就会一共有N个间隔。也就有分了N段的曲线。我们假设每段曲线为S(x),假设这一堆数据点为:

x_0 ,x_1, x_2,...,x_N 是按照从小到大的顺序排列的,对应每个点的值y_0 ,y_1, y_2,...,y_N

假设我们取其中的一段进行分析,比如取 x_4 和 x_5 ,在这个间隔的曲线就是 S_4(x)

首先我们需要保证的是,S_4(x_4)=S_4(x_5) ,当然也有 S_5(x_5)=S_5(x_6)

我们设该三次多项式为:S_4(x) = a_4+b_4(x-x_4)+c_4(x-x_4)^2+d_4(x-x_4)^3

除了上面要保证的条件,还有

{S_4}(x_4)=y_4 对应到每个点的插值应该和真实值一样。

{S_4}'(x_5)={S_5}'(x_5) 表示的是其导数也应该是连续的。

{S_4}''(x_5)={S_5}''(x_5) 表示的是其二阶导数也应该是连续的。

为了方便描述,我们做一些替代:h_i 表示第 i 段间隔。{S_i}''(xi)=m_i 表示第 i 段的二次函数在边缘的二阶导数。

把这些关系联立,然后带入到S_i(x) = a_i+b_i(x-x_i)+c_i(x-x_i)^2+d_i(x-x_i)^3中,就能解得如下公式:

在首尾两端令 S''=0 

 

解该方程就能得到每段的插值。

参考文献:三次B样条插值和误差分析

三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)

三次样条插值(Cubic Spline Interpolation)及代码实现(C语言)

相关文章:

  • 体渲染方程记录
  • glut 常用函数描述
  • 什么是卷积,以及卷积的意义
  • 各态历经性的整理
  • 联合概率密度函数
  • git clone 默认下载目录
  • 编译PBRT-v3源码
  • VSCode与Latex环境的搭建(最简洁,最省事,最舒服的方案,不用搞一堆乱七八糟的配置)
  • OpenCV,3.4.2+VS2015+CUDA10.1+contrib环境搭建
  • LINK : fatal error LNK1158: cannot run ‘rc.exe‘
  • VSCode文本编辑设置自动换行
  • 三维可视化体渲染效果
  • Exposure编译失败的原因总结
  • 修改VS Studio工程名的最简单的方式
  • unexpected end of file while looking for precompiled header.
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [译]Python中的类属性与实例属性的区别
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS实用技巧干货
  • git 常用命令
  • Github访问慢解决办法
  • Hibernate【inverse和cascade属性】知识要点
  • java8 Stream Pipelines 浅析
  • Java到底能干嘛?
  • Redis中的lru算法实现
  • Swoft 源码剖析 - 代码自动更新机制
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vue 2.3、2.4 知识点小结
  • 百度小程序遇到的问题
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 后端_MYSQL
  • 前端_面试
  • 容器服务kubernetes弹性伸缩高级用法
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (9)目标检测_SSD的原理
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (四)模仿学习-完成后台管理页面查询
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core WebAPI中封装Swagger配置
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • // an array of int
  • /var/lib/dpkg/lock 锁定问题