A me pare proprio che state esagerando il problema!
Eppure Soviet_Mario e' stato chiaro: vuole bilanciare delle reazioni,
e ben difficilmente avra' piu' di 10 molecole tra reagenti e prodotti
(e ti vorrei vedere, prima a trovarle, e poi a darle ai tuoi poveri
studenti...).
Trattandosi di questo, sa gia'
1) che le equazioni non saranno mai mal condizionate
2) che la soluzione sara' in numeri interi (su questo vedi dopo)
per cui non c'e' *mai* alcun problema di accuratezza nell'algoritmo o
nella sua implementazione, ne' di efficienza, di tempo di calcolo ecc.
Insomma *qualunque* algoritmo, anche il piu' rozzo, va bene.
Io direi perfino Cramer...
Come contributo costruttivo, se Soviet_Mario vuole gli posso fornire
un codice del metodo Gauss-Jordan, scritto in Turbo Pascal, che credo
potra' tradurre a occhio in VB.
Credo di averlo ricavato anni fa proprio da NR.
Sono 80 righe, commenti inclusi.
Avrei piuttosto un commento sull'idea di base, ossia usare un sistema
di eq. lineari per bilanciare una reazione.
Primo: naturalmente uno dei coeff. andra' fissato in modo arbitrario.
Secondo: e' sicuro che non succeda mai che i coeff. incogniti superano
di due o piu' il numero di atomi coinvolti?
Avrei questo esempio:
H2O2 + KMnO4 + HCl --> O2 + MnCl2 + KCl + H2O.
Terzo: il fatto che la soluzione sia sempre in numeri interi fa
pensare che ci debba essere un metodo piu' elegante che non quello "a
carro armato" del sistema lineare.
Pero' la risposta non la so.
--
Elio Fabri
Perche' tu devi pur sapere, aggiunse, mio ottimo Critone, che parlare
scorrettamente non solo e' cosa brutta per se medesima, ma anche fa
male all'anima.
Received on Sat Feb 19 2011 - 21:06:48 CET