PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fitten mit Qtiplot



b_o_g
15-12-2010, 17:25
Ich weiß nicht, ob Qtiplot hier mit dazugehört, falls nicht, bitte ich mich zu entschuldigen. Ich möchte für mein Torsionsoszillator-Protokoll aufgetragene Messwerte mit den Formeln für die Phasenverschiebung bzw. Amplitude fitten. Da diese Formeln natürlich nicht in Qtiplot selbst einprogrammiert sind, muss ich wohl selber diese Fits erstellen. Der Fit-Assistent gibt mir aber Rätsel auf. Es gibt keinen arctan, nur einen atan, das zweite Fenster verstehe ich überhaupt nicht (bin noch im ersten Semester) und in das Diagramm krieg ich das Teil natürlich nicht. Könnte mir jemand kurz erklären, worauf ich achten muss oder mir eine gute Anleitung im Internet nennen? Ich hab in der Richtung nichts Brauchbares gefunden.

bobmalaria
15-12-2010, 18:02
hi,

das ist ein externes programm das mit latex meines erachtens nichts zu tun hat. bist du vielleicht im falschen forum gelandet?

gruss

ps: ist atan nicht gleich dem acrtan? sowas sollte doch in der doku stehen

b_o_g
16-12-2010, 13:53
Nun, für Protokolle braucht man unter Anderem auch ein Programm zum Fitten, daher dachte ich, dass es als unterstützende Komponente zu Latex gezählt werden kann. Aber jetzt bin ich ja informiert.

v_neises
16-12-2010, 13:55
Nun, für Protokolle braucht man unter Anderem auch ein Programm zum Fitten, daher dachte ich, dass es als unterstützende Komponente zu Latex gezählt werden kann. Aber jetzt bin ich ja informiert.

Hierzu würde ich gnuplot vorschlagen. Damit kann man fitten und z.B. über

set terminal epslatex

schöne Ausgaben erstellen, die sich optisch einheitlich in LaTeX Dokumente einbinden lassen.

bobmalaria
16-12-2010, 14:01
hi,

gnuplot kann natuerlich fitten. ich wuerde dann allerdings pgfplots verwenden und gnuplot damit aufrufen. dafuer habe ich mal ein bespiel gemacht


%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}

pucki
12-01-2011, 21:35
tach,

unter Windows funktioniert das ganz gut, allerdings nicht unter linux ...

folgendes steht dann in der Datei *.gnuplot


set format "%.7e";; set samples 25; plot [x=-5:5] f(x)=a*x**3+b*x+c; fit f(x) 'data.dat' using 1:2 via a,b,c; plot [x=0:3] f(x); ;


wenn man die datei mit gnuplot aufruft, mag er das erste plot[...] nicht


grüße

Reinhard

bobmalaria
12-01-2011, 23:01
hi,

ich werde es morgen bei der arbeit mal auf meinem linuxrechner versuchen. das erste plot sollte da nicht stehen da man mit f(x)=... ja gnuplot erstmal nur die funktion bekannt macht. wie gesagt, mal sehen...

bobmalaria
13-01-2011, 12:24
hi,

bei mir geht es auch in ubuntu 10.04 mit pgfplots in der version

pgfplots.sty 2010/07/14 Version 1.4.1 (git show 1.4.1-1-g64c9e95 )

und gnuplot in version

Version 4.2 patchlevel 6


eventuell ist also mal ein update faellig. ich vermute das der fehler bei pgfplots liegt, bzw bei deiner aelteren version. bei gnuplot hat sich da nicht viel geaendert an den hier verwendeten befehlen.

gruss