Eu quero fazer o seguinte:
Eu tenho um conjunto de dados seguindo uma forma de linha gaussiana, mas há alguns dados que estão se desviando strongmente. Para o ajuste resultante, esses pontos de dados não devem ser incluídos.
Então, minha ideia é criar um de Gaussian acima e outro abaixo como uma restrição. De modo que apenas todos os pontos de dados situados entre esses 2 Gaussianos são considerados no ajuste e o resto fora não.
Eupossocriarfacilmente2gaussianosecriaressesdadosemumatabelausando:(aviso:dados=arquivodedados)
settable'1.Gauss'plotg(x)+0.1unsettablesettable'2.Gauss'plotg(x)-0.1unsettablesettable'all'plot'1.Gauss','2.Gauss','data'unsettable
Masentão:todososdadossãolistadosumporoutro.AlémdissoeunãoseicomoseencaixarmaistardedizendoapenasusaressesdadosseforentreestesdoisGaussianos.
Vocêtemalgumaoutraideia?
ADIÇÃO:
Nãoestourealmenteinteressadoemprogramarounognuplot,porissotenhodificuldadesemcompreenderassuasmensagens.Entãoaquiestátodaminhaprogramaçãonognuplot:
setxrange[1038.6603:1038.666]setyrange[0.8:1.3]file="data"
g(x) = N0*(A*exp(-(x-(b+d))2/(2*sigma2)))+c
N0=0.2; b=1038.66315;d=0.00001; c=1; A=3; sigma=0.0001
filterData(y,m,M)=((yM)? 1/0 : y)
fit h(x) file using 1:(filterData($2,g($1)-0.1,g($1)+0.1)) via N0,d,c,A,sigma
plot file using 1:(filterData($2,g($1)-0.1,g($1)+0.1)) g(x)-0.1, g(x)+1, h(x)
Na penúltima linha, o gnuplot diz: "variável indefinida: x"
Eu sei que algo está faltando ou errado, mas eu não sei realmente como resolver. Poderia talvez comentar suas linhas também? Para que um leigo como eu possa entender isso?
Obrigado :)
AQUI 2ª ADIÇÃO:
aqui está todo o meu texto:
set xrange [1038.6598:1038.6663]
set yrange [0.8:1.3]
set fit errorvariables
file= "09_05_16-10.thzpp"
g(x) = N0*(A*exp(-(x-(b+d))**2/(2*sigma**2)))+c
N0=0.2; b=1038.66315;d=0.00001; c=1; A=3; sigma=0.0001
filterData(y,m,M)=((y<m||x>M)? 1/0 : y)
fit h(x) file using 1:(filterData($2,g($1)-0.1,g($1)+0.1)) via N0,d,c,A,sigma
plot file using 1:(filterData($2,g($1)-0.1,g($1)+0.1)), g(x)-0.1, g(x)+1, h(x)
Isso me dá o erro "na linha 8: variável indefinida: x"
Portanto, meus dados estão no intervalo x entre: [1038.6598: 1038.6663]. Quando eu apago as últimas 3 linhas e uso apenas:
fit [1038.6603:1038.666] [0.95:1.2] g(x) file via N0,d,c,A,sigma
plot file title 'Messung', g(x) title 'Fit'
funciona, mas eu não tenho essa boa restrição de 2 Gauss.
Então, o que há de errado no meu texto superior?