我正在尝试使用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
如何确定变量。提前谢谢。
答案 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