0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python插值算法基本的概念

云深之无迹 来源:云深之无迹 作者:云深之无迹 2022-07-12 10:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Python实现所有算法-二分法

Python实现所有算法-力系统是否静态平衡

Python实现所有算法-力系统是否静态平衡(补篇)

Python实现所有算法-高斯消除法

Python实现所有算法-牛顿-拉夫逊(拉弗森)方法

Python实现所有算法-雅可比方法(Jacobian)

Python实现所有算法-矩阵的LU分解

今天的算法是插值,细分是牛顿插值。关于插值可能大家听到最多的就是图像插值,比如100元的摄像头有4K的分辨率???其实这里就是使用的插值算法,通过已经有的数据再生成一些,相当于提升了数据的量。如果我们想放大图像,我们需要使用过采样算法来扩展矩阵。

6d7cf9d8-0130-11ed-ba43-dac502259ad0.png

左边是原有的信息,右边是通过算法生成的新数据

6d9a4556-0130-11ed-ba43-dac502259ad0.png

就像这样

在上图中,出现的算法是最近邻算法,也称为近端插值,是一维或多维空中多元插值的一种简单方法。插值是通过已知的离散数据点在一定范围内寻找新数据点的过程或方法。最近邻插值算法选择最接近数据点的值,完全不考虑其他相邻点的值,从而生成一个分段常数插值值作为数据点的值。线性的插值算法是双线插值是二维坐标系下线性插值的扩展,用于插值二元函数。它的核心思想是在两个方向上执行一次线性插值。

关于这里的图像算法我不想说什么,等之后我会补上。简单来说在数据给的少的情况下我们都可以考虑使用插值算法来生成新数据或者是改善。

注意我们处理的是离散数据:离散数据是指其数值只能用自然数或整数单位计算的数据。

离散函数:定义域是离散集合的函数称为离散函数。其函数图像为一系列离散的点。

在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。 插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。

理论就这么多了(其实也没有理论就是说下基本的概念)

牛逼的插值算法来自:

6dab61d8-0130-11ed-ba43-dac502259ad0.jpg

《自然哲学的数学原理》的第三卷的引理五

对牛顿插值来说,它最大的特点是引入了差商这个概念。差商即均差,一阶差商是一阶导数的近似值。对等步长(h)的离散函数f(x),其n阶差商就是它的n阶差分与其步长的n次幂的比值。例如n=1时,若差分取向前的或向后的,所得一阶差商就是函数的导数的一阶近似;若差分取中心的,则所得一阶差商是导数的二阶近似。

6de97360-0130-11ed-ba43-dac502259ad0.png

对一个f(x)可以构造差商表来递推的给出差商

6e15525a-0130-11ed-ba43-dac502259ad0.png

计算的公式就是这样,因为是重复同一种范式,所以程序实现可以使用递归

6e35f3d4-0130-11ed-ba43-dac502259ad0.png

事实上我们应该给出一点更加规范的论证(不就是个导数)

有了上面的定义,作用是给出每一项的系数。具体推导是这样的:

6e6bef5c-0130-11ed-ba43-dac502259ad0.png

最后的就是我们的插值公式

6e9139ba-0130-11ed-ba43-dac502259ad0.png

为了看起来平易近人,可以写成这样

6e9fd8f8-0130-11ed-ba43-dac502259ad0.png

6ec6e0e2-0130-11ed-ba43-dac502259ad0.png

还有一种是等间距的插值计算,在下面的计算中间距设置为h(方向为前向差分)

6ee646bc-0130-11ed-ba43-dac502259ad0.png

6f0436d6-0130-11ed-ba43-dac502259ad0.png

这个图就完美了!!!

6f25a1c2-0130-11ed-ba43-dac502259ad0.png

二阶的前向差分后和后向差分都在这里了

牛顿插值作为一种常用的数值拟合方法,因其计算简单,方便进行大量插值点的计算。在实验中经常出现只能测量得到离散数据点的情况,或者只能用数值解表示某对应关系之时,可以使用牛顿插值公式,对离散点进行拟合,得到较为准确的函数解析值。

牛顿真厉害啊,几百年前他万万没有想到,一个小辈大晚上的还得研究人家随手写的东西。

牛顿插值算法的优点是,每一个新项的生成都不需要庞大的算力,对前一项进行计算就行,拉格朗日的算法是每一个新项都需要对基函数完全计算,耗费算力。最后我们的泰勒公式其实就是对牛顿的插值算法进行了改进:

6f8294f4-0130-11ed-ba43-dac502259ad0.png

就记几项就行

对了,插值是针对自变量的任何中间值估计函数值的技术,而计算给定范围之外的函数值的过程称为外插。

6f98f6cc-0130-11ed-ba43-dac502259ad0.png

u是啥?别着急

6fb521a8-0130-11ed-ba43-dac502259ad0.png

这个公式对于在给定值集的开头附近插值 f(x) 的值特别有用。h 称为差值区间,u = ( x – a ) / h,这里 a 是第一项。

函数就是算这个的。

6fd1e7f2-0130-11ed-ba43-dac502259ad0.png

测试

6fe93f38-0130-11ed-ba43-dac502259ad0.png

下面的分母,需要求阶乘,这里也准备一个小函数

70029456-0130-11ed-ba43-dac502259ad0.png

将输入的值转为整型,准备一个list,将输入的值输入到空白的二维数值表。

701da2e6-0130-11ed-ba43-dac502259ad0.png

就像这样

7049295c-0130-11ed-ba43-dac502259ad0.png

这个没有什么好说的,就是将输入的值解到该有的位置,而且计算差分值。

706e09ac-0130-11ed-ba43-dac502259ad0.png

最后输入插值表

潘老师的数值分析讲义是我见过相当不错的

7093a5ae-0130-11ed-ba43-dac502259ad0.png

如图

70b7a72e-0130-11ed-ba43-dac502259ad0.png

嘻嘻,以前还问过老师的参考资料

https://math.ecnu.edu.cn/~jypan/Teaching/NA/index.html

70dbfe80-0130-11ed-ba43-dac502259ad0.png

讲义一览

https://www.zhihu.com/question/26692289

https://www.geeksforgeeks.org/newton-forward-backward-interpolation/

7106fb30-0130-11ed-ba43-dac502259ad0.png

非常多的数值算法的实现

原文标题:Python实现所有算法-牛顿前向插值

文章出处:【微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7366

    浏览量

    95183
  • 函数
    +关注

    关注

    3

    文章

    4423

    浏览量

    68079
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90447

原文标题:Python实现所有算法-牛顿前向插值

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    射频线缆损:时间因素对信号传输的影响

    过程中因线缆阻抗不匹配、导体电阻、绝缘材料损耗等因素导致的能量损失。一个核心问题随之而来:射频线缆的损是否会随着使用时间的增加而上升?本文将从损的基本概念、随时间变化的潜在原因、实际影响及应对策略等方面展开探讨。 一、插入损
    的头像 发表于 05-21 10:27 188次阅读
    射频线缆<b class='flag-5'>插</b>损:时间因素对信号传输的影响

    MAX5868:高性能16位5Gsps调制RF DAC的技术剖析

    MAX5868:高性能16位5Gsps调制RF DAC的技术剖析 在通信和视频广播等领域,高性能的数模转换器(DAC)是实现信号处理和传输的关键组件。今天我们要深入探讨的是Maxim
    的头像 发表于 04-22 14:05 228次阅读

    MAX5855:高性能16位4.9Gsps宽带调制RF DAC的特性与应用

    MAX5855:高性能16位4.9Gsps宽带调制RF DAC的特性与应用 在电子工程师的设计工作中,一款性能卓越的数模转换器(DAC)能为设计带来诸多便利和创新。今天,我们就来深入了解一下
    的头像 发表于 04-21 16:40 164次阅读

    AD9773:高性能12位DAC的技术解析与应用指南

    AD9773:高性能12位DAC的技术解析与应用指南 在通信与仪器仪表等领域,数模转换器(DAC)扮演着至关重要的角色。AD9773作为Analog Devices推出的一款12位、160
    的头像 发表于 04-16 09:15 469次阅读

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    摘要 VirtualLab Fusion允许Python外部访问其建模技术、求解器和结果。这个用例介绍了一种使用路径变量和Visual Studio代码将Python连接到VirtualLab
    发表于 03-31 09:39

    算法工程师需要具备哪些技能?

    算法工程师需要掌握一系列跨学科的技能,涵盖数学基础、编程能力、算法理论、工程实践以及业务理解等多个方面。 以下是具体技能及学习建议: 线性代数核心内容:矩阵运算、特征分解、向量空间等。应用场
    发表于 02-27 10:53

    PID控制的算法

    PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,而难能可贵的是,在我所
    发表于 01-23 08:18

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如早期 SIFT
    发表于 12-13 12:37

    DAC5681Z 16 位 1.0 GSPS 型数模转换器(DAC)产品手册总结

    该DAC5681Z为16位1.0 GSPS数字转模拟转换器(DAC),支持宽带LVDS 数据输入、集成的2x到4x滤波器、板载时钟倍增器以及内部 电压参考。DAC5681Z提供更优越的线性、噪声
    的头像 发表于 11-21 14:03 900次阅读
    DAC5681Z 16 位 1.0 GSPS <b class='flag-5'>插</b><b class='flag-5'>值</b>型数模转换器(DAC)产品手册总结

    光纤芯分类

    光纤芯(Ferrule)是光纤连接器的核心部件,用于精确固定和保护光纤端面,确保光信号的低损耗传输。根据材料、结构、应用场景等不同,光纤芯可分为以下几大类: 1. 按材料分类 陶瓷芯(ZrO
    的头像 发表于 11-11 10:35 1136次阅读

    神经网络加速器的双线性插值上采样

    双线性插值法:目标象素根据这个源图中虚拟的点四周的四个真实的点来按照一定的规律计算出来。像最邻近法那样由目标图的坐标反推得到的源图的的坐标是一个浮点数的时候,采用了四舍五入的方法
    发表于 10-29 06:36

    使用Otsu阈值算法将灰度图像二

    Otsu 算法是由日本学者OTSU于1979年提出的一种对图像进行二化的高效算法,又称“最大类间方差法”。当我们对一个图象进行二化操作的时候,需要根据一项灰度阈值来判决每个像素点应
    发表于 10-28 06:49

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

    基础篇3:掌握Python中的条件语句与循环

    通过学习条件语句和循环,您能够编写出能够根据不同情况和条件作出决策的Python程序。这些结构在编程中非常常见,对于提高编程能力和构建复杂程序至关重要。在接下来的学习和实践中,不断练习这些概念,您将能够更自如地运用它们来解决实际问题。
    发表于 07-03 16:13

    shimetapi:开源RGB+EVS视觉融合相机事件相机工具链与算法

    事件相机的原始数据流,执行高级的计算机视觉算法,以提升数据质量、提取有用信息或进行三维理解。 包含的模块: 降噪 (Denoise): 去除事件流中的噪声,提高信号质量。 (Inter
    的头像 发表于 06-26 13:52 907次阅读