Portanto, a linha i
do arquivo contém f_i L_i
? Você pode fazer isso usando uma chamada para uma função:
sumval=0
add(x)=(sumval=sumval+x)
plot "file.dat" using 0:(add($1*exp(-0.001*(x-$2)**2)))
(aqui as abscissas serão em termos de número de linha, pseudo-coluna $0
)
Aqui, x
é assumido como fixo antes, emitindo, e. um comando x=...
.
Mas eu acho que o que você queria é para qualquer valor de x
, traçar o resultado do somatório?
Em seguida, você precisaria fazer um grande número dessas somas, plotando apenas o último ponto para cada x
.
N_samples=100 # number of points to plot
Xmin=0
Xmax=1.
x(ix)=Xmin+(Xmax-Xmin+0.)*ix/N_samples
stats "data.dat"
N=STATS_records
sumval=0
currec=0
finished(v)=(sumval=0,currec=0,v) #reinitialise the counters
add(y)=(currec=currec+1,sumval=sumval+y,(currec==N)?finished(sumval):1/0)
plot [Xmin:Xmax] for [ix=0:N_samples] "file.dat" using (x(ix)):(add($1*exp(-0.001*(x(ix)-$2)**2)))
Você não poderá juntar pontos com uma linha a menos que primeiro redirecione sua trama para uma tabela e, em seguida, plote a tabela.