【问题标题】:Fitting a sinc function with gnuplot用 gnuplot 拟合 sinc 函数
【发布时间】:2019-11-16 06:30:49
【问题描述】:

我正在尝试使用 gnuplot 拟合 sinc 函数,但它失败并显示以下消息:

'Undefined value during function evaluation'. 

首先是我的数据:

27      9.3
27.2    9.3
27.8    9.3
29      9.4
32      9.5
34      9.6
34.2    9.7
34.4    9.7
34.6    9.8
34.8    10.1
35      10.9
35.2    12.9
35.4    16.1
35.6    21.1
35.8    26.5
36      31.8
36.2    34.7
36.4    36.6
36.6    36.3
36.8    32.3
37      26.4
37.2    20.6
37.4    15.4
37.6    11.6
37.8    9.9
38      9.6
38.5    10
39      9.5
39.5    9.5
40      9.6

我想在 Gnuplot 中做什么:

sinc(x)=sin(pi*x)/pi/x
f(x)=a*(sinc((b*(x-c))))**2+d
fit f(x) '4_temp.txt' via a,b,c,d

我将 a、b、c、d 设置为接近所需的值(见图),但它不适合。

有人可以帮忙吗? 提前致谢。

【问题讨论】:

  • 您是否提供了 a、b、c、d 的起始值?

标签: gnuplot


【解决方案1】:

我可以重现您的错误消息。您正在尝试适应 sin(x)/x 函数。对于x=0,你会得到0/0,虽然,gnuplot 对plot sin(x)/x 没有问题,显然,拟合有这个问题。 仅当您添加一点偏移量时,例如1e-9,它似乎可以工作,它会找到一些合理的参数。 正如@Ethan 所说,您需要选择一些不应离最终值太远的起始值。 您将获得拟合值:

Final set of parameters            Asymptotic Standard Error
=======================            ==========================
a               = 27.5271          +/- 0.2822       (1.025%)
b               = 0.608263         +/- 0.006576     (1.081%)
c               = 36.3954          +/- 0.00657      (0.01805%)
d               = 9.21346          +/- 0.127        (1.379%)

代码:

### fitting type of sin(x)/x function
reset session

$Data <<EOD
27     9.3
27.2    9.3
27.8    9.3
29      9.4
32      9.5
34      9.6
34.2    9.7
34.4    9.7
34.6    9.8
34.8    10.1
35      10.9
35.2    12.9
35.4    16.1
35.6    21.1
35.8    26.5
36      31.8
36.2    34.7
36.4    36.6
36.6    36.3
36.8    32.3
37      26.4
37.2    20.6
37.4    15.4
37.6    11.6
37.8    9.9
38      9.6
38.5    10
39      9.5
39.5    9.5
40      9.6
EOD

a=25
b=1
c=36
d=10

sinc(x)=sin(pi*x)/pi/(x)
f(x)=a*(sinc((b*(x-c+1e-9))))**2+d
set fit nolog
fit f(x) $Data via a,b,c,d

plot $Data u 1:2 w p pt 7, f(x) w l lc rgb "red"
### end of code

结果:

【讨论】:

  • 谢谢你!这对我帮助很大!我提供了接近最终值的起始值,但仍然不合适。偏移解决了它。再次感谢您!
猜你喜欢
  • 2014-09-30
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多