iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >用Python实现Newton插值法
  • 837
分享到

用Python实现Newton插值法

2024-04-02 19:04:59 837人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1. n阶差商实现2. 牛顿插值实现3.完整python代码1. n阶差商实现 def diff(xi,yi,n): """ param xi:插值节点xi

1. n阶差商实现


def diff(xi,yi,n):
    """
    param xi:插值节点xi
    param yi:插值节点yi
    param n: 求几阶差商
    return: n阶差商
    """
    if len(xi) != len(yi):  #xi和yi必须保证长度一致
        return
    else:
        diff_quot = [[] for i in range(n)]
        for j in range(1,n+1):
            if j == 1:
                for i in range(n+1-j):
                    diff_quot[j-1].append((yi[i]-yi[i+1]) / (xi[i] - xi[i + 1]))
            else:
                for i in range(n+1-j):
                    diff_quot[j-1].append((diff_quot[j-2][i]-diff_quot[j-2][i+1]) / (xi[i] - xi[i + j]))
    return diff_quot

测试一下:


xi = [1.615,1.634,1.702,1.828]
yi = [2.41450,2.46259,2.65271,3.03035]
n = 3
print(diff(xi,yi,n))

返回的差商结果为:

[[2.53105263157897, 2.7958823529411716, 2.997142857142854], [3.0440197857724347, 1.0374252793901158], [-9.420631485362996]]

2. 牛顿插值实现


def Newton(x):
    f = yi[0]
    v = []
    r = 1
    for i in range(n):
        r *= (x - xi[i])
        v.append(r)
        f += diff_quot[i][0] * v[i]
    return f

测试一下:


x = 1.682
print(Newton(x))

结果为:

2.5944760289639732

3.完整Python代码


def Newton(xi,yi,n,x):
    """
    param xi:插值节点xi
    param yi:插值节点yi
    param n: 求几阶差商
    param x: 代求近似值
    return: n阶差商
    """
    if len(xi) != len(yi):  #xi和yi必须保证长度一致
        return
    else:
        diff_quot = [[] for i in range(n)]
        for j in range(1,n+1):
            if j == 1:
                for i in range(n+1-j):
                    diff_quot[j-1].append((yi[i]-yi[i+1]) / (xi[i] - xi[i + 1]))
            else:
                for i in range(n+1-j):
                    diff_quot[j-1].append((diff_quot[j-2][i]-diff_quot[j-2][i+1]) / (xi[i] - xi[i + j]))
    print(diff_quot)
    
    f = yi[0]
    v = []
    r = 1
    for i in range(n):
        r *= (x - xi[i])
        v.append(r)
        f += diff_quot[i][0] * v[i]
    return f

到此这篇关于用Python实现牛顿插值法的文章就介绍到这了,更多相关python牛顿插值法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 用Python实现Newton插值法

本文链接: https://www.lsjlt.com/news/123806.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用Python实现Newton插值法
    目录1. n阶差商实现2. 牛顿插值实现3.完整Python代码1. n阶差商实现 def diff(xi,yi,n): """ param xi:插值节点xi ...
    99+
    2024-04-02
  • 如何使用Python实现Newton插值法
    小编给大家分享一下如何使用Python实现Newton插值法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. n阶差商实现def diff(xi,yi...
    99+
    2023-06-14
  • 用Python实现插值算法
            数模比赛中,常常需要对数据进行处理和分析,但有时候数据不多,就需要一些方法&ldquo...
    99+
    2024-04-02
  • Python实现一维插值方法的示例代码
    目录案例一:线性插值案例二:案例应用插值主要用于物理学数学中,逼近某一确定值的方法 (1)插值是通过已知的离散数据求未知数据的方法。 (2)与拟合不同,插值要求曲线通过所有的已知数据...
    99+
    2024-04-02
  • python实现线性插值的示例
    目录线性插值python实现线性插值numpy.interpscipy.interpolate.interp1d线性插值 插值:是根据已知的数据序列(可以理解为你坐标中一系列离散的点...
    99+
    2022-12-08
    python线性插值 python线性插值
  • Python实现RGB等图片的图像插值算法
    目录前言RGB彩色图像和数组理解图片坐标对其左对齐中心对齐临近插值算法线性插值法双线性插值三种插值算法的综合使用附件前言 问题:我们在放大图片的过程中,放大的目标图像和原图图像之间会...
    99+
    2024-04-02
  • python实现图像最近邻插值
    目录引言:1、最近邻插值算法思想2、python实现最邻近插值引言: 最近邻插值Nearest Neighbour Interpolate算法是图像处理中普遍使用的图像尺寸缩放算法,...
    99+
    2024-04-02
  • javascript怎么实现IDW插值算法
    IDW(Inverse Distance Weighting)是一种空间插值方法,其核心思想是基于现有数据点之间的空间距离和数据值之间的权重关系,对未知位置的数据进行估计或推断。该方法在GIS、遥感、环境科学等领域广泛应用,是一种简单而有效...
    99+
    2023-05-14
  • 用Python实现单链表的头插法与尾插法
    以下代码由python3实现,欢迎大家来讨论 import random as rd class Linklist(object): def __init__(self,data,next=None): sel...
    99+
    2023-01-31
    链表 Python 尾插法
  • Python实现拉格朗日插值法的示例详解
    目录概述拉格朗日插值法什么是插值法拉格朗日插值法的原理拉格朗日公式拉格朗日插值法的代码实现Python 进行拉格朗日插值的主要知识点Polyfit 函数Polyval 函数Linsp...
    99+
    2023-02-08
    Python实现拉格朗日插值法 Python拉格朗日插值法 Python插值法
  • Python怎么实现RGB等图片的图像插值算法
    这篇文章主要介绍“Python怎么实现RGB等图片的图像插值算法”,在日常操作中,相信很多人在Python怎么实现RGB等图片的图像插值算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么实现R...
    99+
    2023-06-21
  • 详解Python牛顿插值法
    目录一、牛顿多项式二、例题三、ACcode:一、牛顿多项式 拉格朗日多项式的公式不具备递推性,每个多项式需要单独构造。但很多时候我们需要从若干个逼近多项式选择一个。这个时候我们就需要...
    99+
    2024-04-02
  • python实现拉格朗日插值及作图
    本文实例为大家分享了python实现拉格朗日插值及作图,供大家参考,具体内容如下 python代码 import numpy as np import matplotlib.py...
    99+
    2024-04-02
  • python中插值算法有哪些
    python中的插值算法有格朗日插值法、分段插值法和样条插值法三种格朗日插值法当节点数n较大时,拉格朗日插值多项式的次数较高,可能出现不一致的收敛情况,而且计算复杂,随着样点增加,高次插值会带来误差的震动现象称为龙格现象。分段插值法分段线性...
    99+
    2024-04-02
  • Three.js Interpolant实现动画插值
    目录Interpolant通过离散的采样点定义曲线插值的步骤1. 寻找要插值的位置2. 根据找到的左右两个点,进行插值Interpolant源码1. 构造器2. copySample...
    99+
    2023-02-10
    Three.js Interpolant动画插值 Three.js Interpolant
  • 详解Python查找算法的实现(线性,二分,分块,插值)
    目录1. 线性查找2. 二分查找3. 插值查找4. 分块查找5. 总结查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找:线性查找也称为顺序...
    99+
    2024-04-02
  • 基于Python实现二维图像双线性插值
    目录插值简介最近邻法 (Nearest Interpolation)双三次插值 (Bicubic interpolation)双线性插值 (Bilinear Interpolatio...
    99+
    2024-04-02
  • scipy.interpolate插值方法实例讲解
    目录scipy.interpolate插值方法1 一维插值2 multivariate data3 Multivariate data interpolation on a regu...
    99+
    2022-12-29
    scipy.interpolate插值 scipy.interpolate scipy插值
  • 利用Python实现数值积分的方法
    目录1. 栗子2. 矩形计算面积2.1 左侧边长计算面积2.2 右侧边长计算面积2.3 中值边长计算面积3. 梯形计算面积4. 真值比对5. 总结1. 栗子 为了加深大家的印象,首先...
    99+
    2024-04-02
  • JavaScript如何实现字符串插值
    这篇文章主要为大家展示了“JavaScript如何实现字符串插值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何实现字符串插值”这篇文章吧...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作