小编Mat*_*rty的帖子

scipy.optimize.leastsq使用NaN调用目标函数

我正在使用scipy.optimize.leastsq尝试在存在噪声的情况下将大量参数拟合到实际数据中.偶尔会从minpack中使用NaN调用目标函数.这是scipy.optimize.leastsq的预期行为吗?有没有比在这种情况下返回NaN残差更好的选择?

以下代码演示了该行为:

import scipy.optimize
import numpy as np

xF = np.array([1.0, 2.0, 3.0, 4.0]) # Target value for fit
NOISE_LEVEL = 1e-6 # The random noise level
RETURN_LEN = 1000  # The objective function return vector length

def func(x):
    if np.isnan(np.sum(x)):
        raise ValueError('Invalid x: %s' % x)
    v = np.random.rand(RETURN_LEN) * NOISE_LEVEL
    v[:len(x)] += xF - x
    return v

iteration = 0
while (1):
    iteration += 1
    x = np.zeros(len(xF))
    y, cov = scipy.optimize.leastsq(func, x)
    print('%04d %s' % …
Run Code Online (Sandbox Code Playgroud)

python numpy mathematical-optimization scipy

15
推荐指数
1
解决办法
1477
查看次数

标签 统计

mathematical-optimization ×1

numpy ×1

python ×1

scipy ×1