\documentclass[11pt,a4paper]{article}

\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{siunitx}   % units and uncertainties: \qty, \unit, S columns
\usepackage{graphicx}  % for \includegraphics once you upload a photo
\usepackage{pgfplots}  % the plot in the Results section
\pgfplotsset{compat=1.18}
\usepackage{hyperref}  % keep hyperref last

% Experiment, your name, your lab partner, the course.
\title{Experiment 4: The Spring Constant of a Helical Spring}
\author{Your Name \\ Partner: Second Student \\ Course 101, University of Somewhere}
\date{\today}

\begin{document}
\maketitle

\begin{abstract}
The extension of a helical spring was measured under loads from
\qty{0.10}{\kilogram} to \qty{0.50}{\kilogram}. The extension is proportional
to the load over the whole range, and the spring constant obtained from the
slope of the fitted line is \qty{112.0(9)}{\newton\per\meter}. This agrees
with the value of \qty{110}{\newton\per\meter} quoted by the manufacturer to
within the combined uncertainty.
\end{abstract}

\section{Introduction}

A helical spring stretched within its elastic range obeys Hooke's law: the
restoring force is proportional to the extension~\cite{halliday2018}. Writing
the applied force as $F$ and the extension as $x$,
\begin{equation} \label{eq:hooke}
  F = k x ,
\end{equation}
where $k$ is the spring constant of the spring in newtons per meter. Hanging a
mass $m$ from the spring applies a force $F = mg$, with
$g = \qty{9.81}{\meter\per\second\squared}$, so a plot of extension against
load is a straight line through the origin whose slope is $g/k$. The aim of
the experiment is to measure that slope and to compare the resulting spring
constant with the manufacturer's value.

\section{Method}

The spring was suspended from a clamp stand beside a vertical millimeter
scale, and the position of the lower end was read with no load in place. Five
slotted masses were then added one at a time, and the position was read again
after the spring had come to rest. Each reading was taken with the eye level
with the pointer to avoid parallax.

The extension for each load is the difference between the loaded and the
unloaded reading. The scale can be read to \qty{0.5}{\milli\meter}, but the
pointer drifted a little between readings, so an uncertainty of
\qty{1.0}{\milli\meter} was assigned to each extension.

\section{Results}

The measurements are collected in Table~\ref{tab:extension} and plotted in
Figure~\ref{fig:extension}.

\begin{table}[htbp]
  \centering
  \caption{Extension of the spring for each load.}
  \label{tab:extension}
  \begin{tabular}{
      S[table-format=1.2]
      S[table-format=2.1]
      S[table-format=1.1]
    }
    \toprule
    {Load $m$ (\unit{\kilogram})} & {Extension $x$ (\unit{\milli\meter})} &
      {Uncertainty (\unit{\milli\meter})} \\
    \midrule
    0.10 &  8.9 & 1.0 \\
    0.20 & 17.3 & 1.0 \\
    0.30 & 26.6 & 1.0 \\
    0.40 & 34.8 & 1.0 \\
    0.50 & 44.1 & 1.0 \\
    \bottomrule
  \end{tabular}
\end{table}

\begin{figure}[htbp]
  \centering
  \begin{tikzpicture}
    \begin{axis}[
        width=0.8\linewidth,
        height=6.5cm,
        xlabel={Load $m$ (kg)},
        ylabel={Extension $x$ (mm)},
        xmin=0, xmax=0.55,
        ymin=0, ymax=50,
        xtick={0, 0.1, 0.2, 0.3, 0.4, 0.5},
        grid=both,
        legend pos=south east,
      ]
      % Replace these rows with your own measurements.
      \addplot+[only marks, error bars/.cd, y dir=both, y explicit]
        table[x=load, y=ext, y error=err] {
          load  ext   err
          0.10   8.9  1.0
          0.20  17.3  1.0
          0.30  26.6  1.0
          0.40  34.8  1.0
          0.50  44.1  1.0
        };
      \addlegendentry{Measured}
      \addplot[thick, domain=0:0.55, samples=2] {87.6*x + 0.1};
      \addlegendentry{Fitted line}
    \end{axis}
  \end{tikzpicture}
  \caption{Extension against load, with the fitted straight line.}
  \label{fig:extension}
\end{figure}

A least squares fit to the five points gives a slope of
\qty{87.6(7)}{\milli\meter\per\kilogram} and an intercept consistent with
zero. With $k = g / \text{slope}$ from Equation~\eqref{eq:hooke}, the spring
constant is
\begin{equation} \label{eq:result}
  k = \frac{\qty{9.81}{\meter\per\second\squared}}
           {\qty{0.0876}{\meter\per\kilogram}}
    = \qty{112.0(9)}{\newton\per\meter} .
\end{equation}

\section{Discussion}

The points lie on the fitted line to within their error bars, so the spring
stayed inside its elastic range for every load used. The result in
Equation~\eqref{eq:result} is \qty{1.8}{\percent} above the manufacturer's
value of \qty{110}{\newton\per\meter}, a difference of about twice the
uncertainty of the fit, which suggests a small systematic effect rather than
random error.

The most likely source is the mass of the spring itself, which is not included
in the load but does stretch the upper coils. Reading the scale by eye is the
second source: a parallax error of one millimeter on the unloaded reading
shifts every extension by the same amount, which moves the intercept but not
the slope, so it does not explain the difference. Averaging three readings per
load and correcting for the mass of the spring would tighten the result.

\section{Conclusion}

The extension of the spring is proportional to the load between
\qty{0.10}{\kilogram} and \qty{0.50}{\kilogram}, as Hooke's law predicts. The
spring constant measured from the slope is
\qty{112.0(9)}{\newton\per\meter}, close to the quoted value of
\qty{110}{\newton\per\meter}. The method described by
Taylor~\cite{taylor1997} was used to propagate the uncertainties.

\begin{thebibliography}{9}

\bibitem{halliday2018}
  David Halliday, Robert Resnick and Jearl Walker,
  \emph{Fundamentals of Physics}, 11th edition, Wiley, 2018.

\bibitem{taylor1997}
  John R. Taylor,
  \emph{An Introduction to Error Analysis}, 2nd edition,
  University Science Books, 1997.

\end{thebibliography}

\end{document}
