多项式二阶插值公式:y=ax^2+bx+c

interp1d(x,y,kind='quadratic')中kind参数值为'quadratic'

import numpy as np
from scipy.interpolate import interp1d,interp2d
import pylab as plx=np.array([1,2,3,4,5])
y=np.array([1,4,2,4,1])fc=interp1d(x,y,kind='quadratic')
xint=np.linspace(x.min(),x.max(),20)
print("x:",xint)
print("y:",fc(xint))
pl.scatter(xint,fc(xint),marker='o',c='r')
pl.plot(xint,fc(xint),color='blue')
pl.show()

插值点:

x: [1.         1.21052632 1.42105263 1.63157895 1.84210526 2.05263158
 2.26315789 2.47368421 2.68421053 2.89473684 3.10526316 3.31578947
 3.52631579 3.73684211 3.94736842 4.15789474 4.36842105 4.57894737
 4.78947368 5.        ]
y: [1.         2.1966759  3.09196676 3.68587258 3.97839335 3.96952909
 3.65927978 3.04764543 2.37894737 2.04210526 2.04210526 2.37894737
 3.04764543 3.65927978 3.96952909 3.97839335 3.68587258 3.09196676
 2.1966759  1.        ]

自定义函数实现:

3点确定方程参数

a=-((y2-y3)*x1-(x2-x3)*y1+x2*y3-x3*y2)/((x2-x3)*(x1-x2)*(x1-x3))
b = ((y2 - y3) * x1*x1 +x2*x2*y3-x3*x3*y2-(x2**2-x3**2)*y1) / ((x2 - x3) * (x1 - x2) * (x1 - x3))
c = ((x2*y3-x3*y2)*x1*x1  - (x2*x2*y3-x3*x3*y2) * x1 +(x2*x2*x3-x2*x3*x3)*y1) / ((x2 - x3) * (x1 - x2) * (x1 - x3))
import numpy as np
from scipy.interpolate import interp1d,interp2d
import pylab as plx=np.array([1,2,3,4,5])
y=np.array([1,4,2,4,1])xint=np.linspace(x.min(),x.max(),20)# 2、二次
def quadratic_inter(x1,y1,x2,y2,x3,y3,nx):a=-((y2-y3)*x1-(x2-x3)*y1+x2*y3-x3*y2)/((x2-x3)*(x1-x2)*(x1-x3))b = ((y2 - y3) * x1*x1 +x2*x2*y3-x3*x3*y2-(x2**2-x3**2)*y1) / ((x2 - x3) * (x1 - x2) * (x1 - x3))c = ((x2*y3-x3*y2)*x1*x1  - (x2*x2*y3-x3*x3*y2) * x1 +(x2*x2*x3-x2*x3*x3)*y1) / ((x2 - x3) * (x1 - x2) * (x1 - x3))ny=a*nx*nx+b*nx+creturn ny#
for i in range(0,len(x),2):if i + 2 < len(x):print("---------")# print(ny)nx=[]for val in xint:if  val>=x[i] and val<=x[i+2]:nx.append(val)print(nx)nx=np.array(nx)ny = quadratic_inter(x[i], y[i], x[i+1], y[i+1],x[i+2],y[i+2], nx)print(ny)pl.scatter(nx,ny,c='b',marker='o')pl.plot(nx,ny,color='red')pl.show()

分段连接存在不连贯,可优化。

插值点:

nx: [1.0, 1.2105263157894737, 1.4210526315789473, 1.631578947368421, 1.8421052631578947, 2.052631578947368, 2.263157894736842, 2.473684210526316, 2.6842105263157894, 2.894736842105263]
ny: [1.         2.04709141 2.87257618 3.47645429 3.85872576 4.01939058
 3.95844875 3.67590028 3.17174515 2.44598338]

--------
nx: [3.1052631578947367, 3.3157894736842106, 3.526315789473684, 3.7368421052631575, 3.9473684210526314, 4.157894736842105, 4.368421052631579, 4.578947368421052, 4.789473684210526, 5.0]
ny: [2.44598338 3.17174515 3.67590028 3.95844875 4.01939058 3.85872576
 3.47645429 2.87257618 2.04709141 1.    ]

多项式插值拟合(二)相关推荐

  1. MATLAB学习之多项式拟合和多项式插值(附源代码)

    文章目录 前言 一.多项式的拟合 二.多项式的插值 1.一维插值 2.二维插值 三.问题探究 1.船在该海域会搁浅吗? 2.薄膜渗透率的测定 四.源代码下载 前言 公司最近在做单颗粒质谱的设备,在数据 ...

  2. 插值与拟合 (一) : 拉格朗日多项式插值 、Newton插值 、分段线性插值、Hermite插值 、样条插值、 B 样条函数插值、二维插值

    插值:求过已知有限个数据点的近似函数. 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小. 插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似 ...

  3. python多项式拟合_Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合。如 电...

    Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合.如 电 多元函数拟合.如 电视机和收音机价格多销售额的影响,此时自变量有两个. python 解法:imp ...

  4. 基于MATLAB的二维与三维插值拟合运算(附完整代码)

    · 一. 一维插值 interp1函数在上个博客中(如下链接)已经更新了,此处再补充两个相关例题. 基于MATLAB的数据插值运算:Lagrange与Hermite算法(附完整代码)_唠嗑!的博客-C ...

  5. matlab 平滑曲线连接_平滑轨迹插值方法之多项式插值(附代码)

    前言 今天我们来聊聊轨迹插值,在机器人的运动规划和控制领域,参考轨迹的生成是一个历史悠久的问题,已经发展出了一系列的方法.今天我们就来聊一聊轨迹插值领域中最常见的轨迹插值方法:多项式插值. 说明:本文 ...

  6. MATLAB之多项式插值

    MATLAB之多项式插值 一.算法原理 1.插值问题定义 当精确函数 y = f(x) 非常复杂或未知时,在区间[a,b]上一系列节点x0,x1,x2,......xn处测得函数值f(x0).f(x1 ...

  7. 【多项式最小二乘拟合实验】

    一.实验目的 编制以函数{xk}k=0,-,n:为基的多项式最小二乘拟合程序.了解在matlab环境下曲线拟合问题的思想,掌握最小二乘拟合多项式拟合法和曲线拟合法,区分插值于拟合的不同之处. 二.实验 ...

  8. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

  9. 基于MATLAB的多项式数据拟合方法研究-毕业论文

    摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...

最新文章

  1. 2021年度训练联盟热身训练赛第四场 H - Rock Paper Scissors(字符串匹配,FFT)
  2. TCP之深入浅出send和recv
  3. ABAP 屏幕上动态修改按钮的图标
  4. 谷歌SEO和百度SEO的区别
  5. Codeigniter CRUD代码快速构建
  6. php数组格式化显示,php 打印数组格式化显示
  7. 今天觉得自己好像比较紧张
  8. iOS5 UIKit新特性
  9. 物联网测试正面临四大难关
  10. AI产品经理的前世今生
  11. 微信抖音工具箱头像制作壁纸小程序带改图制图流量主功能搭建动态社群人脉助手
  12. 【牛刀小试4】斐波那契数
  13. 文件夹访问被拒绝 你需要权限来执行此操作,您需要权限来执行此操作
  14. 人工智能数学基础--微分:定义、运算以及应用
  15. webflux 之 Stream流
  16. Crypto菜狗的学习日志之古典密码(一)
  17. PMO和PM如何准备项目状态报告及进行项目进度汇报?【附项目状态表和进度跟踪表】
  18. codeforces The Artful Expedient(数学思维题)
  19. 超好用的思维导图网站
  20. 计算机网络里什么叫专线,专线和宽带的区别有哪些_专线网络和家庭宽带的具体区别介绍...

热门文章

  1. 【枚举】讨厌的青蛙,总踩我的稻田:( 谁最可恨?(POJ百练2812)
  2. spring framwork-ioc容器
  3. Linux FTP命令全集(ftp指令)
  4. html5语音读取文字_资源:文本转语音的神器!快来!
  5. 《花开半夏》--5 毁灭(1)
  6. PAT甲级A1013. Battle Over Cities (25)
  7. git branch的详细使用,10个常见用法
  8. IOT物联网观察之2019物联网发展趋势报告分享
  9. Apple - Quadrature
  10. Method selection for numeric quadrature