enter image description here

Anyone know how to solve for the OMC and MDD using mathematical solution? The book says its OMC is 13% and MDD of 2020. I tried using $a+bx+cx^3$ and getting its maxima but its far from 13%

  • $\begingroup$ Welcome to engineering SE. Is this a homework problem? $\endgroup$ Aug 12, 2015 at 0:10
  • $\begingroup$ @Nico : I've added a post looking at your data in more detail. There does not seem to be any basis that I can see for the value of 2020 kg/m3. $\endgroup$
    – AsymLabs
    Oct 23, 2015 at 12:53

3 Answers 3


The optimum moisture content is defined as the moisture content where you get maximum dry unit weight. So plot moisture content ($w$) vs dry density ($\rho_d$) and locate the maximum.

Without any interpolation (i.e. if we have to pick a value from your table) this occurs at $12.3 \%$ moisture content, and corresponds to a dry density of $2001.27 \frac {kg}{m^3}$

However, if we want to interpolate, you need to decide on a fit. The relationship could be ball-parked as quadratic, so fitting it (see image below) as such yields

$$\rho_d = -25.168w^2 + 633.08w - 2061.1$$

Solving this for the maximum value of dry density results in $1919.67 \frac {kg}{m^3}$ at $12.57 \%$ moisture content.

enter image description here

Note that you have a measured point that is above your interpolated maximum. This means you could either measure more points (to reduce uncertainty), choose a different fit, etc. But that is the general idea.

Once you have a curve fit, you can solve for dry density at any moisture content. And more importantly, you know where the optimum is, so if the field conditions are too dry or too wet prior to compaction, you can adjust accordingly if needed.

  • $\begingroup$ I arrive at exactly the same result from regression as you; I wonder, from Nico's example, if the author has found the stated maximum, 2020 kg/m3 at 13%, from graphical (curve fitting) methods. It might be difficult in practice to fail a contractor's compaction test by using a value higher than actually measured in the laboratory. $\endgroup$
    – AsymLabs
    Oct 11, 2015 at 10:53

One of the things that struck me about this question is that the course booklet states the maximum value is higher than the results of the test, that is:

Maximum from test:     2001.27 kg/m3
Maximum from booklet:  2020    kg/m3

Aside from the fact that it is hard to see where this value has come from, if tests are failed on this basis, the Contractor may experience delays and this in turn may lead to a claim on the project - or at the very least potentially embarrassing arguments. When a higher value is used for acceptance of the Contractor's work than was actually measured in the laboratory, there must be a valid reason for it. So let's put this under scrutiny, by examining the data with commonly accepted curve fitting methods.

This post contains the code and data behind this procedure (for those who may find it useful), but others may want to skip to the images and conclusions.

Data File

Using GnuPlot, we look at: (1) linear regression using quadratic forms and (2) interpolation between points using cubic splines. The data file for this process, points.txt, follows:

X    Y         X    Y
8.4  1447.38   8.4  1447.38
10.2 1808.53   10.2 1808.53
12.3 2001.27   12.3 2001.27
14.6 1683.60   16.8 1524.81
16.8 1524.81

Columns 1 and 2 are the data given. In Columns 3 and 4 we eliminate point 4 as an outlier (it's not an outlier, but for the sake of comparison, let's consider it).

GnuPlot Source File

The gnuplot script, density.gpl follows:

# gnuplot 4.6 patchlevel 4

# quadratic fit
f0(x) = a0*x**2+b0*x+c0
f1(x) = a1*x**2+b1*x+c1

# set formats
set output 'density.png'
set xlabel 'Moisture, %'
set ylabel 'Dry Density, kg/m3'
set yrange [1400:2200]
set key inside horizontal top right
set terminal pngcairo dashed # permits dashed lines
set terminal pngcairo size 640,480 enhanced font 'Verdana,10'

# pt 1 +, pt 2 X, pt 3 *, pt 4 box, pt 5 filled box, pt 6 circle, pt 7 filled circle
# lt 1 solid, 2 ---, 3 ..., 4 -.-, 5 -..-, 6 solid, 7 - - -  

# color styles (for display)
set style line 1 lt 1 lc rgb 'black'  lw 2 pt 7 ps 1.2 
set style line 2 lt 1 lc rgb 'red'    lw 2 pt 2 ps 1.2
set style line 3 lt 1 lc rgb 'blue'   lw 2 pt 4 ps 1.2
set style line 4 lt 1 lc rgb 'green'  lw 2 pt 6 ps 1.2
set style line 5 lt 1 lc rgb 'yellow' lw 2 pt 2 ps 1.2

# black styles (for printing)
set style line 10 lt 1 lc rgb 'black' lw 2 pt 7 ps 1.2 
set style line 20 lt 2 lc rgb 'black' lw 2 pt 2 ps 1.2
set style line 30 lt 4 lc rgb 'black' lw 2 pt 4 ps 1.2
set style line 40 lt 5 lc rgb 'black' lw 2 pt 6 ps 1.2
set style line 50 lt 7 lc rgb 'black' lw 2 pt 2 ps 1.2

# fit data to forms
fit f0(x) 'points.txt' using 1:2 via a0,b0,c0
fit f1(x) 'points.txt' using 3:4 via a1,b1,c1

# plot the results
plot f0(x) with lines ls 2 smooth bezier title 'Quadratic', \
     f1(x) with lines ls 3 smooth bezier title 'Quadratic w/o 4', \
     'points.txt' using 3:4 with lines ls 4 title 'Cubic Spline w/o 4' smooth csplines, \
     'points.txt' using 1:2 with lines ls 1 title 'Cubic Spline' smooth csplines, \
     'points.txt' using 1:2 with points ls 1 notitle

Moisture-Density Curves

Next we run gnuplot from the command line (Linux Debian OS), view with the ImageMagick programme display and capture all output to stats.txt:

gnuplot density.gpl &> stats.txt && display density.png &

The resulting set of moisture-density curves follows :

Moisture-Density Curves

Moisture-Density Statistics

From stats.txt, the linear regression of all points (columns 1 and 2) yields:

degrees of freedom    (FIT_NDF)                        : 2
rms of residuals      (FIT_STDFIT) = sqrt(WSSR/ndf)    : 121.785
variance of residuals (reduced chisquare) = WSSR/ndf   : 14831.5

Final set of parameters            Asymptotic Standard Error
=======================            ==========================

a0              = -25.1676         +/- 7.493        (29.77%)
b0              = 633.079          +/- 189.8        (29.98%)
c0              = -2061.07         +/- 1147         (55.64%)

correlation matrix of the fit parameters:

                a0     b0     c0     
a0              1.000 
b0             -0.995  1.000 
c0              0.979 -0.994  1.000 

These coefficients are identical to those of CoryKramer's post. Now the best fit for Columns 3 and 4 (with the so-called outlier, point 4, discarded) becomes:

degrees of freedom    (FIT_NDF)                        : 1
rms of residuals      (FIT_STDFIT) = sqrt(WSSR/ndf)    : 4.71227
variance of residuals (reduced chisquare) = WSSR/ndf   : 22.2055

Final set of parameters            Asymptotic Standard Error
=======================            ==========================

a1              = -29.4084         +/- 0.3123       (1.062%)
b1              = 750.537          +/- 8.016        (1.068%)
c1              = -2783.63         +/- 48.58        (1.745%)

correlation matrix of the fit parameters:

                a1     b1     c1     
a1              1.000 
b1             -0.996  1.000 
c1              0.982 -0.995  1.000 

Just as an aside, there is little difference in the correlation coefficients between the two sets of data, but there is a very large difference in the standard error of the coefficients. This could mean either: that there is in fact an outlier, that there are too few data points or that the mathematical model is unsatisfactory.


It is clear that the stated maximum value of 2020 kg/m3 is not supported by the data. From inspection of the Moisture-Density plots, the maximum values from the various curve fitting methods do not exceed the measured test value, only the position of the optimum moisture content changes. It is also clear that if a dispute were to emerge on a construction project, the Contractor would have a legitimate case.

Finally, which curve is the most appropriate? Well the Proctor test method puts a great deal of reliability on each data point, in that the error of the test method should be minimal. For this reason only 5 test values are required. Therefore, it is logical to interpolate between these points, so my vote would be to use the cubic spline approach, including all points, rather than use the linear regression model.


We might arrive at the answer $\text{12.3%}$ for OMC, and $2001.273 \dfrac{kg}{m^3}$ for the MDD. The reason maybe why the author's answer for MDD is $2020 \dfrac{kg}{m^3}$ is due to the application of $\text{95% confidence}$ on the answer; i.e.

$\displaystyle 2001.273 \pm \text{95%} = [1982.261, 2020.285] $

and that's where the $2020$ might come from. ~


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.