用三个变量拟合gnuplot

时间:2015-08-10 10:55:32

标签: gnuplot

我正在尝试使用gnuplot来填充一些数据。

这是数据(变量h,k,l和I):

user = models.OneToOneField(User, parent_link=True, primary_key=True, related_name='profile')
...
basic_info = User.objects.get(pk=int(userid))
profile = basic_info.profile

我想从这个拟合中确定常数M,F,A和L.

当我运行此代码时,我收到消息未定义变量:h

如何确定变量。提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用最新版本的gnuplot(> = 5.0),它支持包含两个以上变量的fit命令(请参阅Post)。另请注意,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
相关问题