python插值程序,python程序中的插值误差

from cmath import phase

import math

import numpy

import numpy as np

from numpy import unwrap

import matplotlib.pyplot as plt

import matplotlib.pyplot as plt

import scipy

from scipy import interpolate

from scipy.interpolate import interp1d

import scipy.signal.signaltools as sigtool

我有一个由以下代码生成的数据集。在

^{pr2}$

我用以下代码找到局部极大值和局部极小值及其对应位置:loc_mx=[]

loc_mn=[]

loc_mnt=[]

loc_mxt=[]

for i in range(len(comb)-2):

if comb[i] < comb[i+1]:

if comb[i+1] > comb[i+2]:

loc_mx.append(comb[i+1])

loc_mxt.append(i+3)

if comb[i] > comb[i+1]:

if comb[i+1] < comb[i+2]:

loc_mn.append(comb[i+1])

loc_mnt.append(i+3)

利用局部极大值和局部极小值对数据进行插值loc_mn.append(comb[len(comb)-1])

loc_mx.append(comb[len(comb)-1])

loc_mnt.append(k[len(comb)-1])

loc_mxt.append(k[len(comb)-1])

loc_mn.reverse

loc_mx.reverse

loc_mn.append(comb[0])

loc_mx.append(comb[0])

loc_mnt.append(k[0])

loc_mxt.append(k[0])

loc_mn.reverse

loc_mx.reverse

min_mnt=min(loc_mnt)

min_mxt=min(loc_mxt)

max_mnt=max(loc_mnt)

max_mxt=max(loc_mxt)

x1=loc_mxt

y1=loc_mx

f1=interpolate.interp1d(x1,y1,kind="cubic")

x2=loc_mnt

y2=loc_mn

f2=interpolate.interp1d(x2,y2,kind="cubic")

f1(k)

f2(k)

我得到以下错误。在File "emd.py", line 150, in

int_dt.write(str(k[i])+" "+str(f1(k[i]))+" "+str(f2(k[i])))

File "/usr/lib/python2.7/dist-packages/scipy/interpolate/polyint.py", line 54, in __call__

y = self._evaluate(x)

File "/usr/lib/python2.7/dist-packages/scipy/interpolate/interpolate.py", line 448, in _evaluate

out_of_bounds = self._check_bounds(x_new)

File "/usr/lib/python2.7/dist-packages/scipy/interpolate/interpolate.py", line 475, in _check_bounds

raise ValueError("A value in x_new is below the interpolation "

ValueError: A value in x_new is below the interpolation range.

如能在这方面得到任何帮助,将不胜感激。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值