Skip to content

Instantly share code, notes, and snippets.

@tschoppi
Created December 8, 2014 23:14
Show Gist options
  • Save tschoppi/ee8cd08569e2073174be to your computer and use it in GitHub Desktop.
Save tschoppi/ee8cd08569e2073174be to your computer and use it in GitHub Desktop.
Simple iPython Notebook for calculations used in answering a Chem.SE question: http://chemistry.stackexchange.com/q/12256/3846
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Standard boilerplate imports."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's save the molar masses."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"MFe = 55.845 # g/mol\n",
"MCu = 63.546"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's save the theoretical yield.\n",
"\n",
"The reactions are:\n",
" - Fe + CuSO<sub>4</sub> <=> FeSO<sub>4</sub> + Cu\n",
" - 2 Fe + 3CuSO<sub>4</sub> <=> Fe<sub>2</sub>(SO<sub>4</sub>)<sub>3</sub> + 3 Cu"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"yld = np.asarray([1.00, 1.50]) # 100% and 150% for Fe2 and Fe3\n",
"yld"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"array([ 1. , 1.5])"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The masses of iron added and copper observed."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mFe = 0.78 # g\n",
"mCu_obs = 0.78 # g"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Expected mass of copper for both reactions:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mCu = mFe / MFe * yld * MCu\n",
"mCu"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
"array([ 0.88756164, 1.33134247])"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Error calculation:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"err = np.abs(mCu_obs - mCu) / mCu\n",
"err * 100 # now in %"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"array([ 12.1187801 , 41.41252006])"
]
}
],
"prompt_number": 6
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment