在这种情况下,线性化有什么作用


def linearize(p, x):
    return p[0] * x**p[1]
def error(p, x, y):    
    return (np.log10(y) - np.log10(linearize(p, x)))

from scipy import optimize
args = freq_log[1:9063], np.abs(spec_log[1:9063])
qout, success = optimize.leastsq(error,
                             [1e5,-0.8],
                             args=args,
                             maxfev=3000)
fig,ax1=plt.subplots(figsize=(5,5))
spec = ax1.plot(freq_log,np.abs(spec_log), 'o', alpha=0.3)
approx = ax1.plot(freq_log[1:], linearize(qout, freq_log[1:]), linewidth=3)

我正在尝试复制一个代码,并且我正在尝试了解线性化在这种情况下的作用,需要什么参数以及返回的作用以纠正以下错误

当前它返回运行时错误和valueerror

RuntimeWarning: divide by zero encountered in power return p[0] * x**p[1]
RuntimeWarning: invalid value encountered in power return p[0] * x**p[1]
ValueError: object too deep for desired array

我主要关心的是前四行,任何人都可以帮助我了解导致此错误以及如何纠正它的原因吗?

完整代码是 @ https://github.com/seg/tutorials-2017/blob/master/1710_colored_inversion/colored_inversion_inversion_notebook.ipynb

a 详细的描述太长了,尽管如此,值得知道。

我在网上找到了这个不错的例子。

留下链接,而不是在这里复制和粘贴。

http://www.scipy-lectures.org/intro/summary-exercises/optimize-fit.html

这里的线性化试图返回传递的数据中的总体噪声,然后将其用于评估您的错误,然后在听起来时 lessq ,最小化初始波形的正方形之和。

相关内容

  • 没有找到相关文章

最新更新