gnuplot 4.4 で必要な大きさの変数値を持つ関数をプロットできます。
gnuplot> t = 10000*365.25*24*3600
gnuplot> f(x) = alpha*delta*exp(-alpha*x)*(sin(omega*t-alpha*x)-cos(omega*t-alpha*x))
gnuplot> plot f(x)
しかし、代わりに、「plot for」コマンドを使用して、上記と同様の値を使用して t を反復処理したい場合、segfaults が発生するか、終了していないように見えます (長時間待っても応答がありません)。
tau = int(40000*365.25*24*3600)
step = int(10000*365.25*24*3600)
f(x,t) = alpha*delta*exp(-alpha*x)*(sin(omega*t-alpha*x)-cos(omega*t-alpha*x))
plot for [t=0:tau:step] f(x,t)
タウ = 1000 でステップ = 10 の場合、問題はないので、イテラブルのサイズが問題であると想定しています。これを回避する方法はありますか、それとも何か間違っていますか?
@mgilsonの回答に続くいくつかの詳細情報:私のシステムは64ビットで、pythonは非常に大きな整数を処理できます:
>>> import sys
>>> sys.maxint
9223372036854775807
>>> tau = int(40000*365.25*24*3600)
>>> print tau
1262304000000
gnuplot はできませんが:
gnuplot> tau = int(40000*365.25*24*3600)
gnuplot> print tau
-2147483648
試してみたい場合は、プロットファイルを次に示します。
tau = int(40000*365.25*24*3600)
delta = 10
kappa = 1e-6
omega = 2*pi/tau # angular frequency
alpha = sqrt(omega/(2*kappa)) # a simplifying factor
# set the range of x and time, t
set xrange[0:3000]
step = int(10000*365.25*24*3600)
f(x,t) = alpha*delta*exp(-alpha*x)*(sin(omega*t-alpha*x)-cos(omega*t-alpha*x))
plot for [t=0:tau:step] f(x,t)