python - Julia - Python lmfit 的等价物

标签 python julia least-squares lmfit

我想使用最小二乘法 (Levenberg-Marquardt) 最小化函数 f 中的 xy。在 Python 中,我可以像下面这样使用 lmfit

params = lmfit.Parameters()
params.add('x', value=0, min=-np.pi, max=np.pi)
params.add('y', value=0.0, min=-0.25, max=0.25)
# Least square is the default method
x,y = lmfit.minimize(f, params)

在 Julia 中是否有任何等效/实现此目标的最佳方法是什么?

最佳答案

是否必须是 Levenberg-Marquardt?如果没有,你可以使用 Optim.jl 得到你想要的。 :

using Optim

f(x) = x[1]^2 + x[2]^4
result = optimize(f, [1.0,2.0]) # minimum expected at (0,0)
x,y = result.minimizer # (2.3024075561537708e-5, -0.0009216015268974243)

lbounds = [1, -0.25]
ubounds = [2, 0.25]
result = optimize(f, lbounds, ubounds, [1.5,0.1]) # minimum expected at (1,0)
x,y = result.minimizer # (1.0000000000000002, -2.1978466115000986e-11)

上一个答案:

你或许可以使用包 LsqFit.jl :

using LsqFit

# function with two parameters
@. f(x, p) = p[1]*exp(-x*p[2])

# fake data
xdata = range(0, stop=10, length=20)
ydata = f(xdata, [1.0 2.0]) + 0.01*randn(length(xdata))

# upper and lower bounds + initial parameter guess
lb = [-π, -0.25]
ub = [π, 0.25]
p0 = [0.5, 0.1]

# least squares fit
fit_bounds = curve_fit(f, xdata, ydata, p0, lower=lb, upper=ub)
p1,p2 = fit_bounds.param

关于python - Julia - Python lmfit 的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60634803/

相关文章:

python - 命令完成在 Hg 代码的哪个位置实现?

julia - 如何评估 Julia 一行中第一个罪恶情节的启动+执行时间?

julia - 如何在 Flux.jl 中使用 .pth 模型?

julia - 组合字符串和表达式插值

c++ - 图像曲线拟合的多项式最小二乘法

python - "only size-1 arrays can be converted to Python scalars"或 "` x0 ` must have at most 1 dimension"

Python - 从 JSON 创建字典时遇到问题

python - 如何使 Python Structlog 在不使用关键字 `event` 的情况下进行记录

python - Pygame 中的快速生成

python - sklearn 上的套索不收敛