MyTetra Share
Делитесь знаниями!
Расстановка коэффициентов в химических уравнениях
Время создания: 16.04.2013 16:16
Раздел: Точные науки - Химия
Запись: xintrea/mytetra_syncro/master/base/1366114611k2y5iprha8/text.html на raw.github.com

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


Введение


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


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


Возьмём для примера уравнение 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 мс), что даёт возможность использовать этот алгоритм не только на ПК, но и на мобильных телефонах.


 
MyTetra Share v.0.59
Яндекс индекс цитирования