我在为无法正常运行的拟合找到良好的初始条件时遇到了一些问题。所以我想通过将它插入一个循环中来蛮力它,告诉 gnuplot 继续拟合,直到他得到小于 100% 的相对偏差,同时在每次他重新运行循环时随机更改初始值,我写了类似的东西那:
while(abs(m_err/m) > 1){
m = rand(0)*0.3
k = rand(0)
x_0 = 15 + rand(0)*10
fit logi(x) 'data.csv' u 1:8 via m,k,x_0
}
我将 rand 函数相乘,以便得到接近我期望适合拟合的值的值。
这种方法显然会导致很多不收敛和停止脚本中间循环的拟合。如果拟合不收敛或给出奇异矩阵,我如何告诉 gnuplot 简单地忽略这一点并重新运行随机化和拟合循环?