首页 > 技术文章 > 解包值太多报错(自定义函数参数太多)

wangdan0526 2019-07-11 15:34 原文

在进行最小二乘法曲线拟合时报错参数太多
import numpy as np from numpy import pi from scipy.optimize import leastsq def func(p,x): A,k,theta = p return A*np.sin(2*k*np.pi*x+theta) def residuals(x,y,p): return fun(p,x)-y x=np.linspace(0,-2*pi,100) A,k,theta=10,0.34,np.pi/6 y1=func(x,[A,k,theta]) y2=y1+2*np.random.randn(len(x)) p0=[7,0.2,0] #曲线拟合 plsq=leastsq(residuals,p0,args(y2,x))

out:ValueError: 第15行y1=func(x,[A,k,theta]) :too many values to unpack (expected 3)

  检查原因:自定义函数func()参数位置颠倒

       解决办法:改为func(x,p)就解决了。







推荐阅读