import matplotlib.pyplot as plt
from pylab import mpl
import mathx = [0.40, 0.55, 0.65, 0.80, 0.90, 1.05]
y = [0.41075, 0.57815, 0.69675, 0.88811, 1.02652, 1.25382]"""计算五次差商的值"""
def five_difference_quotient(x, y):    # 定义差商函数,i记录计算差商的次数,这里循环5次,计算5次差商。i = 0quotient = [0, 0, 0, 0, 0, 0]while i < 5:j = 5while j > i:if i == 0:quotient[j]=((y[j]-y[j-1])/(x[j]-x[j-1]))else:quotient[j] = (quotient[j]-quotient[j-1])/(x[j]-x[j-i-1])print(f"第{i + 1}阶差商:quotient[{j}]={quotient[j]:.5f}")j -= 1i += 1   # i = 0时,q[j]计算的值对应的就是一阶差商的值;以此类推i = 1,二阶差商return quotient;parameters = five_difference_quotient(x, y)
def function(data):return x[0]+parameters[1]*(data-0.4)+parameters[2]*(data-0.4)*(data-0.55)\+parameters[3]*(data-0.4)*(data-0.55)*(data-0.65)+parameters[4]*(data-0.4)*(data-0.55)*(data-0.65)*(data-0.80)
print(f"f(0.596)={function(0.596):.5f}")"""计算插值多项式的值和相应的误差"""
def calculate_data(x,parameters):returnData=[];for data in x:           # 让变量data遍历一遍 x = [0.40, 0.55, 0.65, 0.80, 0.90, 1.05] returnData.append(function(data))  # 遍历一个,就用牛顿插值函数计算一个,追加到returnData的列表return returnData"""画函数的图像"""yuanzu=calculate_data(x,parameters)def draw(newData):plt.scatter(x,y,label="离散数据",color="red")                       # 生成一个散点图plt.plot(x,newData,label="牛顿插值拟合曲线",color="black")          # 牛顿插值拟合曲线,这个newData就是函数calculate_data()计算的值plt.scatter(0.596,function(0.596),label="预测函数点",color="blue")  # 牛顿插值函数预测点,f(0.596)plt.title("牛顿插值法")mpl.rcParams['font.sans-serif'] = ['SimHei']                        # 运行配置参数中的字体(font)为黑体(SimHei)mpl.rcParams['axes.unicode_minus'] = False                          # 运行配置参数总的轴(axes)正常显示正负号plt.legend(loc="upper left")                                        # 设置图例位置plt.show()draw(yuanzu)

借鉴宁悦大佬的代码,在此基础上进行修改。并且在jupyter notebook上实现。

牛顿插值法 [python]_宁悦的博客-CSDN博客_x1, x2, x3插值拟合python

用python求解牛顿插值函数(超详细)相关推荐

  1. Python的零基础超详细讲解(第十三天)-Python的类与对象

    基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...

  2. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

  3. Python的零基础超详细讲解(第七天)-Python的数据的应用

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  4. Python的零基础超详细讲解(第五天)-Python的运算符

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  5. python操作手机app超详细步骤

    〝 古人学问遗无力,少壮功夫老始成 〞 python操作手机app超详细步骤,现在很多app的都要刷经验打怪升级啥的,这些枯燥千篇一律但是很耗费时间的玩法,可以使用app自动去操作,解放双手,释放时间 ...

  6. 10分钟教你用python打造贪吃蛇超详细教程

    更多精彩尽在微信公众号[程序猿声] 10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来 ...

  7. 使用python玩跳一跳超详细使用教程

    在上一篇文章里介绍了使用Python玩微信跳一跳的详细使用教程,不过依旧还是有很多小伙伴有各种各样的问题.为了让各位小伙伴都能使用黑科技,于是再做一个超详细教程.从Python的安装开始,手把手教你一 ...

  8. python跳一跳教程_使用python玩跳一跳超详细使用教程

    在上一篇文章里介绍了使用Python玩微信跳一跳的详细使用教程,不过依旧还是有很多小伙伴有各种各样的问题.为了让各位小伙伴都能使用黑科技,于是再做一个超详细教程.从Python的安装开始,手把手教你一 ...

  9. Python可视化库matplotlib(超详细)

    超详细Matplotlib笔记 Matplotlib简介 开发环境搭建 为什么要学习Matplotlib 绘制基础 图形绘制流程 认识Matplotlib图像结构 实现基础绘图功能 设置标签文字和线条 ...

最新文章

  1. linux ln(link) 命令详解
  2. Nginx出现这么几个500怎么解决?
  3. 排序算法(4)----快速排序
  4. 信息权限管理(RMS)
  5. Abseil之Return Policy
  6. 利用Python的openpyxl对Excel实现空白单元格的填充
  7. 因子分析法基于matlab,因子分析matlab
  8. 机器人工程毕业设计☞开题报告
  9. 方舟同账号一个服务器能建小号吗,你玩明日方舟开小号吗?游戏虽好但请莫贪多,多号同玩会让人疲劳...
  10. Scala二十四点游戏
  11. 前端偶数行有底纹怎么写_如何在Excel中的替代行上应用底纹
  12. Blender烘焙贴图生成静态真实场景
  13. 【平衡二叉樹】超市促銷
  14. kubernetes入门实战
  15. SpringBoot结合MyBatis 【超详细】
  16. 盛大网络董事长陈天桥 三十年河东三十年河西
  17. 2016c语言模拟试卷一,2016年计算机程序员考试模拟试题及答案
  18. 触摸屏系统中的触觉反馈功能
  19. 未来五年国内将建逾300座微电网工程
  20. url操作一网打尽(一)

热门文章

  1. win10 上 vhdx 虚拟盘 数据丢失 大坑
  2. win11系统如何使用IE浏览器
  3. 企业ERP管理系统-国内自主研发低代码开发平台
  4. 【项目】简单的图书管理系统(下)
  5. log4j多配置文件处理
  6. java实训扫雷小程序设计项目_《Java程序设计实训教程》实训一扫雷游戏.ppt
  7. 蓝桥试题 算法训练 除法运算 JAVA
  8. 使用canvas画图形
  9. kafka版本兼容问题随笔
  10. ubuntu 1604 random: crng init done 后无反应