Standard boilerplate imports.

In [1]:
import numpy as np

Let's save the molar masses.

In [2]:
MFe = 55.845 # g/mol
MCu = 63.546

Now let's save the theoretical yield.

The reactions are:

  • Fe + CuSO4 <=> FeSO4 + Cu
  • 2 Fe + 3CuSO4 <=> Fe2(SO4)3 + 3 Cu
In [3]:
yld = np.asarray([1.00, 1.50]) # 100% and 150% for Fe2 and Fe3
yld
Out[3]:
array([ 1. ,  1.5])

The masses of iron added and copper observed.

In [4]:
mFe = 0.78 # g
mCu_obs = 0.78 # g

Expected mass of copper for both reactions:

In [5]:
mCu = mFe / MFe * yld * MCu
mCu
Out[5]:
array([ 0.88756164,  1.33134247])

Error calculation:

In [6]:
err = np.abs(mCu_obs - mCu) / mCu
err * 100 # now in %
Out[6]:
array([ 12.1187801 ,  41.41252006])