Программная расстановка коэффициентов в химических уравнениях

в 12:56, , рубрики: алгоритм, Алгоритмы, Песочница, Программирование, химия, метки: , ,

Введение

Все, кто когда-нибудь изучал химию, знают, что это наука сложная и в многих моментах не совсем понятная. Например, у учеников средних и старших классов часто возникают проблемы с решением химических задач и уравнений. Поэтому они часто ищут ответ на задание с помощью химических калькуляторов. Но большинство программ этого класса нельзя назвать калькулятором — они не считают, а только проверяют результат в базе данных. Этот способ имеет очень большой недостаток — программа не выдаст результат, если уравнения реакции не будет в базе. Поэтому есть необходимость использовать алгоритм, который даст возможность находить коэффициенты программно. И такой алгоритм существует.

Алгоритм расстановки коэффициентов

Возьмём для примера уравнение KMnO4+K2SO3+H2SO4->K2SO4+MnSO4+H2O
Сначала нужно построить для него матрицу. Молекулы используются в качестве столбца, атомы — в качестве строки. В ячейку записывается количество атомов в молекуле. Сначала разбираем левую часть. Должно получиться так:

KMnO4 K2SO3 H2SO4
Mn 1 0 0
K 1 2 0
O 4 3 4
S 0 1 1
H 0 0 1

Затем таким же образом обрабатываем правую часть уравнения, но с одним отличием — ставить нужно отрицательное число. После этого матрица должна обрести такой вид:

KMnO4 K2SO3 H2SO4 K2SO4 MnSO4 H2O
Mn 1 0 0 0 -1 0
K 1 2 0 -2 0 0
O 4 3 4 -4 -4 -1
S 0 1 1 -1 -1 0
H 0 0 1 0 0 -2

Эту матрицу уже можно решать. Но ответ, который мы получим, может быть правильным с точки зрения математики, а не химии. Поэтому к матрице нужно добавить ещё одну строку, в которой будет записана информация об электронном балансе. В данном примере должно быть так:
K+1Mn+7O4-2+K2+1S+4O3-2+H2+1S+6O4-2->K2+2S+6O4-2+Mn+2S+6O4-2+H2+1O-2
Mn+7+ 5e -> Mn+2
S+4 — 2e -> S+6

Как видим, Mn с первой молекулы получил 5е, а S со второй отдал 2е. Добавляем в матрицу ещё одну строку

KMnO4 K2SO3 H2SO4 K2SO4 MnSO4 H2O
Mn 1 0 0 0 -1 0
K 1 2 0 -2 0 0
O 4 3 4 -4 -4 -1
S 0 1 1 -1 -1 0
H 0 0 1 0 0 -2
5 -2 0 0 0 0

Теперь уже можно решать матрицу. Самый удобный и быстродействующий способ — метод Гаусса. Полученные данные подставляем в уравнение. Должно получиться так:
2KMnO4+5K2SO3+3H2SO4=6K2SO4+2MnSO4+3H2O

Выводы

Таким образом, коэффициенты для химического уравнения можно получить, не прибегая к созданию базы данных, а просто сделав весьма простые вычисления. Нужно также уточнить, что расчёт производится крайне быстро (задержка менее 1 мс), что даёт возможность использовать этот алгоритм не только на ПК, но и на мобильных телефонах.

Автор: Sungmaster

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js