zHW: Stoichiometric Matrix
Using the list of species from HW_03, verify that the columns of the stoichiometric matrix are in the null space of the atomic matrix.
Contents
Chemical Species
The first step is to provide a list of all chemical species partcipating in the reaction system. Use molweight to verify correct entry of this list of species.
species = { ... 'CH3OH', ... % Methanol 'O2', ... % Oxygen 'CH2O', ... % Formaldehyde 'CHOOH', ... % Formic Acid 'CO', ... % Carbon Monoxide 'CO2', ... % Carbon Dioxide 'H2O'}; % Water molweight(species);
Species Mol. Wt. ------- -------- CH3OH 32.04 O2 32.00 CH2O 30.03 CHOOH 46.03 CO 28.01 CO2 44.01 H2O 18.02
Atomic Matrix
Element a(i,j) of the atomic matrix A is the number of atoms of element i that appear in a molecule of species j.
atomic(species);
CH3OH O2 CH2O CHOOH CO CO2 H2O C: 1 0 1 1 1 1 0 H: 4 0 2 2 0 0 2 O: 1 2 1 2 1 2 1
Stoichiometric Matrix
Element v(j,k) of the stoichiometric matrix V is the number of molecules of species j that participate in reaction k. The stoichiometric coefficient is negative if species j is a reactant, or positive if species j is a product of the reaction.
V = stoich(species);
disp('V = ');
disp(V);
V = -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 3 -2 2 1 -2 2 -1 0 2 0 1 1
Product of the Atomic and Stoichiometric Matrices
In principle, each matrix element b(i,k) of the product of the atomic and stoichiometric matrices, B = A*V, would the net number of atoms of atomic element j produced (if positive) or consumed (if negative) by reaction k. However, atoms are neither produced or consumed in a balanced reaction. Therefore the product A*V ought to be zero. Stated in terms of linear algebra, the columns of V are in the null space of A.
A = atomic(species); V = stoich(species); disp('Product of Atomic & Stoichiometric Matrices = '); disp(' '); disp(A*V)
Product of Atomic & Stoichiometric Matrices = 0 0 0 0 0 0 0 0 0 0 0 0