How can the ideal gas law be made more precise?
ASSUMPTION OF THE IDEAL GAS LAW
#PV = nRT => \mathbf(PbarV = RT)#
The ideal gas law really assumes that all gases at STP have a molar volume
But in real life, some gases are easier to compress than a typical ideal gas, and some are harder to compress. i.e. the molar volume will not always be that of the ideal gas.
"MODIFYING" THE IDEAL GAS LAW TO MAKE IT MORE REALISTIC
The pressure and temperature can be measured in real life with good certainty, and the universal gas constant is well-known to at least 6 decimal places, so
The experimental mass density tends to be well-known for many substances.
Thus, to account for non-ideality, use the experimental mass density of the gas, and convert to the molar volume via the molar mass. That corrects for the only variable in the ideal gas law that assumes ideality.
EXAMPLE OF USING THE MASS DENSITY
Let's say we looked at calculating the molar volume for helium. Assuming ideality, we simply claim about
#rho = "0.17614"# #(pm 0.00005)# #"g/L"#at #0^@ "C"#and #"1 bar"#
#color(blue)(barV_"real") = (M_r)/rho#
#= ("4.002602" cancel"g""/mol")/("0.17614" cancel"g""/L")#
#=# #color(blue)("22.724 L")#
So, this means helium, having a slightly higher molar volume than that of the ideal gas, is slightly harder to compress than an ideal gas if treated realistically.
Ultimately, this can be interpreted as near-ideality at STP.
ALTERNATIVE: COMPRESSIBILITY FACTOR
Another way you could have done it is to introduce the compressibility factor
#color(green)(PbarV = ZRT)#,
#Z = (PbarV)/(RT)#indicates whether a gas is easier to compress than the ideal gas ( #Z < 1#), harder to compress than the ideal gas ( #Z > 1#), or ideal ( #Z = 1#).
But that can be harder to look up quickly, as it is dependent on the reduced temperature and pressure as per the Theorem of Corresponding States, so personally I find using the density more convenient.
I found it using this equation (pg. 9) to be
As before, we'd get:
#color(blue)(barV_"real") = (ZRT)/P = (1.0005*"0.083145 L"cdotcancel"bar""/mol"cdotcancel("K")*"273.15" cancel"K")/(cancel"1 bar")#
#= "22.722 L" ~~ color(blue)("22.724 L")#(within #0.009%#error... close enough.)