hi,
gnuplot kann natuerlich fitten. ich wuerde dann allerdings pgfplots verwenden und gnuplot damit aufrufen. dafuer habe ich mal ein bespiel gemacht
Code:
%Create some data we can fit in (x,y) notation
\begin{filecontents}{test.dat}
0.2 -0.8
1 -0.2
1.6 0.2
2.5 2.5
3 5
\end{filecontents}
\documentclass{article}
\usepackage{pgfplots} %Version 1.3 or higher
\begin{document}
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
name=plot,
width=1\linewidth,
xlabel={X},
ylabel={Y},
xtick={-1,0,...,3},
ytick={-1,0,...,5},
enlargelimits=false,
title=Fitting of datapoints with gnuplot,
legend pos={north west,},
ticks=both,
grid=major,
]
%First, just plot the points with marks
\addplot[only marks,mark=square*,blue] file {test.dat};
\addlegendentry{The ``measured'' points}
%
%Now call gnuplot to fit this data
%The key is the raw gnuplot option
%which allows to write a gnuplot script file
\addplot+[raw gnuplot,mark=none, line width=1.5pt] gnuplot {
%The gnuplot script
%
%fit linear function with variables a,b and c
f(x)=a*x**3+b*x+c;
%let gnuplot fit, using column 1 and 2
%of the data file
%Let a,b and c be variables
fit f(x) 'test.dat' using 1:2 via a,b,c;
%Plot the function, specify plot range
%The range should be approx. the same as your
%test.dat x range
plot [x=0:3] f(x);
};
\addlegendentry{The fitted curve}
\end{axis}
\end{tikzpicture}
\end{document}
Lesezeichen