首页 > 解决方案 > Julia LsqFit 给出了错误的结果,而我可以使用 scipy.optimize 得到正确的结果(几乎等于 exp 结果)

问题描述

我尝试使用 Julia 使用饱和磁化接近定律来拟合磁化与磁场,但无法获得正确的结果。参数 p[2] 显示的值与我假设的值相同。而当我尝试使用 scipy 时,我可以得到很好的结果。

using DataFrames, CSV
df=CSV.read("X00.csv"; delim=",")
xdata=df[!, 1]
ydata=df[!, 2]
using Plots
using LsqFit
@. model(x, p) = p[1]*(1-(p[2]/x)-(p[4]*p[3]^2 /(p[3]^2 *x^2)))
p0=[97.0, 231.0, 250000.0, 0.076]

fit = curve_fit(model, xdata, ydata, p0)

beta_fit = fit.param

yfit = model(xdata, fit.param)
println(beta_fit)
scatter(xdata, ydata, label="data", grid=false)
plot!(xdata, yfit, label="model", grid=false) 

如何克服这一点?

标签: julia

解决方案


推荐阅读