用三个变量拟合 gnuplot
Fitting in gnuplot with three variables
我正在尝试使用 gnuplot 拟合一些数据。
这是数据(变量 h、k、l 和 I):
#h k l I
2 1 1 7807
2 2 0 9664
3 2 1 6042
4 0 0 1394
3 3 2 1358
4 2 0 4896
### Function
I(h,k,l) = M * (F * ( (sin(A*pi*sqrt(h*h+k*k+l*l)*L))/(A*2*pi*sqrt(h*h+k*k+l*l)) ))^2
### Initial values
M=1
F=0.5
A=1
L=1
### Fitting
fit I(h,k,l) "cavendish.data" using 1:2:3 via M, F, A, L
我想从这个拟合中确定常数 M、F、A 和 L。
当我 运行 此代码时,我收到消息 未定义的变量:h
我怎样才能确定变量。提前致谢。
尝试使用最新版本的 gnuplot (>= 5.0),它支持具有两个以上变量的拟合命令(参见 release notes)。另请注意,gnuplot 中的幂运算符是 **
而不是 ^
.
你的例子必须稍微改变才能工作:
### Function
I(h,k,l) = M * (F * ((sin(A*pi*sqrt(h*h+k*k+l*l)*L))/(A*2*pi*sqrt(h*h+k*k+l*l)) ))**2
### Initial values
M=1.0
F=0.5
A=1.0
L=1.0
### Fitting
set dummy h, k, l
fit I(h,k,l) "cavendish.data" using 1:2:3:4 via M, F, A, L
我正在尝试使用 gnuplot 拟合一些数据。
这是数据(变量 h、k、l 和 I):
#h k l I
2 1 1 7807
2 2 0 9664
3 2 1 6042
4 0 0 1394
3 3 2 1358
4 2 0 4896
### Function
I(h,k,l) = M * (F * ( (sin(A*pi*sqrt(h*h+k*k+l*l)*L))/(A*2*pi*sqrt(h*h+k*k+l*l)) ))^2
### Initial values
M=1
F=0.5
A=1
L=1
### Fitting
fit I(h,k,l) "cavendish.data" using 1:2:3 via M, F, A, L
我想从这个拟合中确定常数 M、F、A 和 L。
当我 运行 此代码时,我收到消息 未定义的变量:h
我怎样才能确定变量。提前致谢。
尝试使用最新版本的 gnuplot (>= 5.0),它支持具有两个以上变量的拟合命令(参见 release notes)。另请注意,gnuplot 中的幂运算符是 **
而不是 ^
.
你的例子必须稍微改变才能工作:
### Function
I(h,k,l) = M * (F * ((sin(A*pi*sqrt(h*h+k*k+l*l)*L))/(A*2*pi*sqrt(h*h+k*k+l*l)) ))**2
### Initial values
M=1.0
F=0.5
A=1.0
L=1.0
### Fitting
set dummy h, k, l
fit I(h,k,l) "cavendish.data" using 1:2:3:4 via M, F, A, L