6

I would like to create the following graph using PSTricks:

want

The data, which can be downloaded from http://gupl.dk/705644/, should be plotted together with the three graphs. I have managed to plot data and functions similar to this before, but for some reason I can't figure out how to plot this. I tried to put a psgraph environment inside a pspicture environment inside a figure environment, but then the y-axis is scaled wrong:

\documentclass{article}
\usepackage{pst-plot}
\begin{document}
\begin{figure}
 \centering
   \psset{
     xAxisLabel = {$t$~(s)},
     yAxisLabel = {$x$~(m)}
   }
   \begin{pspicture}(-0.7,0.06)(5.4,0.14)
   \begin{psgraph}[
     Dy = 0.01,
     Oy = 0.0954
   ]{->}(0,0.0954)(0,0.065)(5.2,0.13){10cm}{7cm}
     \readdata{\daempning}{daempning.txt}
     \dataplot[
       plotstyle = dots,
       dotsize = 4pt,
       dotstyle = o,
       fillstyle = solid,
       fillcolor = blue
     ]{\daempning}
   \end{psgraph}
   \end{pspicture}
  \caption{D{\ae}mpede svingninger af fjeder.}
 \label{fig:daempede-svingninger}
\end{figure}

\end{document}

got

Update

I've now managed to plot the data;

\documentclass{article}

\usepackage{
  pst-plot,
  pst-math
}
\psset{
  xunit = 1.95,
  yunit = 0.8,
  algebraic
}

\begin{document}

\begin{figure}
% constants.
\def\bKonst{0.182323628}
\def\mKonst{0.179887}
\def\kKonst{25.04285714}
\def\omegaSHBKonst{12.1277}
\def\omegadKonst{1.026}
\def\AKonst{0.0264572}
\def\pKonst{0.095398}
% functions (something is wrong here)
\def\hFunk(#1){\AKonst*exp(-\bKonst/(2*\mKonst)*#1)}
\def\spring(#1){\hFunk(#1)*ACOS(sqrt(\kKonst/\mKonst-(\bKonst/(2*\mKonst))^2)*#1+ATAN(\bKonst/\mKonst/(\omegaSHBKonst^2-\omegadKonst^2)))+\pKonst}
% data
\readdata{\daempning}{daempning.txt}
% plot
\centering
  \begin{pspicture}(-0.57,5.35)(5.65,16.9)
    \pstScalePoints(1,8){1000 div}{660 sub 600 div}
    \psaxes[
      dx = 1,
      Dx = 1.00,
      xsubticks = 5,
      dy = 1,
      Dy = 0.005,
      Oy = 0.095,
      comma
    ]{->}(0,9.5398)(0,5.5)(5.25,16)[$t$~(s),0][$x$~(m),90]
    \listplot[
      plotstyle = dots,
      dotstyle = o,
      fillcolor = red
    ]{\daempning}
%    \psplot{0}{5}{\spring(x)}
  \end{pspicture}
  \caption{D{\ae}mpede svingninger af fjeder.}
 \label{fig:daempede-svingninger}
\end{figure}

\end{document}

output-half-finished

but the three graphs are still giving me headaches. How do I plot these?

2
  • External data is not needed because PSTricks can reproduce it via the given equation of motion and its parameters. Dec 25, 2013 at 3:24
  • @StiffJokes It is experimental data that I need to plot along with the fitted curve. :) If you can fix my problem, I'll be very glad. Dec 25, 2013 at 3:31

1 Answer 1

4

it is COS and not ACOS!

\documentclass{article}
\usepackage{pst-plot,pst-math}
\psset{xunit = 1.95,yunit = 100,algebraic}

\begin{document}

\def\bKonst{0.182323628}
\def\mKonst{0.179887}
\def\kKonst{25.04285714}
\def\omegaSHBKonst{12.1277}
\def\omegadKonst{1.026}
\def\AKonst{0.0264572}
\def\pKonst{0.095398}
% functions (something is wrong here)
\def\spring{\AKonst*Euler^(-x*\bKonst/(2*\mKonst))
            *COS(sqrt(\kKonst/\mKonst-(\bKonst/(2*\mKonst)))
            *x+ATAN(\bKonst/\mKonst/(\omegaSHBKonst^2-\omegadKonst^2)))
            +\pKonst
%  0.0264572*Euler^(-0.506773*x)*COS(11.788*x+0.00694063)+0.095398
}

% data
\readdata{\daempning}{/tmp/test.data}
% plot
  \begin{pspicture}(-0.57,0.065)(5.65,0.14)
    \psplot[plotpoints=1000]{0}{5}{\spring}
    \psplot[plotpoints=100,linecolor=red]{0}{5}{0.0264572*Euler^(-0.506773*x)+0.095398}
    \psplot[plotpoints=100,linecolor=red]{0}{5}{-0.0264572*Euler^(-0.506773*x)+0.095398}
    \psaxes[xsubticks = 5,Dy = 0.010,Oy = 0.095,comma]{->}%
       (0,0.095398)(0,0.06)(5.25,0.13)[$t$~(s),0][$x$~(m),90]
    \pstScalePoints(1,1){1000 div}{14000 div 0.006 sub}
    \listplot[plotstyle = dots,dotscale=0.5,linecolor=blue]{\daempning}
  \end{pspicture}

\end{document}

enter image description here

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .