【问题标题】:Gnuplot: imposing bounds on fitting parametersGnuplot:对拟合参数施加限制
【发布时间】:2015-07-10 18:36:49
【问题描述】:

有没有办法限制 gnuplot 拟合参数的取值?

f(x) = A/(x**2) + B/(x**4)
A = 1
B = 0.01
fit f(x) 'data.dat' u 1:2 via A,B

我知道B < 0 没有任何意义。有没有办法强加B > 0

【问题讨论】:

    标签: gnuplot curve-fitting


    【解决方案1】:

    由于 gnuplot 支持非线性拟合,您可以在函数中使用 B**2(或 sqrt(B**2))将变量约束为正数。

    【讨论】:

      【解决方案2】:

      你可以把你的函数改成这样:

      minB = 0.001
      f(x) = A*x**-2 + (B<minB:minB:B)*x**-4
      

      但我不确定 NLLS 算法对此有何反应。小心。

      或者你可能会想到这样的事情:

      f(x) = A*x**-2 + 10**B*x**-4
      

      这可能会反应更顺畅,更接近数据的实际物理模型。

      【讨论】:

        猜你喜欢
        • 2015-11-26
        • 1970-01-01
        • 2011-12-05
        • 2018-10-20
        • 2018-07-16
        • 2016-08-09
        • 1970-01-01
        • 2021-03-02
        • 1970-01-01
        相关资源
        最近更新 更多