c语言文字表达式,【原创】化学方程式配平算法的设计与实现( 非Naylon版)
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
通過下面這個例子可以說明此程序計算機配平化學方程式的過程。
例1:配平
Na2CO3+HCl
= NaCl+H2O+CO2
設
aNa2CO3+bHCl
= cNaCl+dH2O+eCO2,根據化學反應前后原子總個數不變的原理,可列方程組:
Na:
2a = c
C:
a = e
O:
3a = d+2e
H:
b = 2d
Cl:
b = c
因為這個方程組沒有任何常數項,故其無唯一解,設
a
= 1,則可整理成完整的方程組:
2a
+ 0b - 1c + 0d + 0e = 0
1a
+ 0b + 0c + 0d - 1e = 0
3a
+ 0b + 0c - 1d - 2e = 0
0a
+ 1b + 0c - 2d + 0e = 0
0a
+ 1b - 1c + 0d + 0e = 0
1a
+ 0b + 0c + 0d + 0e = 1 (等同于
a
= 1)
一般地,可以用線性代數的理論解此類方程組,在90年代,加拿大科學家R.W.Jissen、W.R.Smish等已經提出了這種方法,但這些方法仍然有許多不足之處需要完善。對于解多元一次方程組,初等代數中的加減消元法已經很高效穩定且易于理解,可用于計算機算法的實現。
使用加減消元法解多元一次方程組的一般過程是:
將首次項系數不為零的方程的系數化成相同的數;
通過相減消去這個未知數,并與去掉零次項的首次項系數為零的方程共同組成新的方程組
重復上述過程,直將方程化為一元一次方程組,求得一個未知項系數并依次回代求得所有未知數的值。
用此方法解上述方程:
初始方程
2a
+ 0b - 1c + 0d + 0e = 0
1a
+ 0b + 0c + 0d - 1e = 0
3a
+ 0b + 0c - 1d - 2e = 0
0a
+ 1b + 0c - 2d + 0e = 0
0a
+ 1b - 1c + 0d + 0e = 0
1a
+ 0b + 0c + 0d + 0e = 1
將首次項系數不為零的方程的系數化成相同的數
6a
+ 0b - 3c + 0d + 0e = 0
6a
+ 0b + 0c + 0d - 6e = 0
6a
+ 0b + 0c - 2d - 4e = 0
0a
+ 1b + 0c - 2d + 0e = 0
0a
+ 1b - 1c + 0d + 0e = 0
6a
+ 0b + 0c + 0d + 0e = 6
將方程1分別與方程2、方程3、方程6相減,求得:
0b
– 3c + 0d + 6e = 0
0b
– 3c + 2d + 4e = 0
1b
+ 0c – 2d + 0e = 0
1b
– 1c + 0d + 0e = 0
0b
– 3c + 0d + 0e = -6
將方程3與方程4相減,求得:
-3c
+ 0d + 6e = 0
-3c
+ 2d + 4e = 0
1c
– 2d + 0e = 0
-3c
+ 0d + 0e = -6
將首次項系數不為零的方程的系數化成相同的數
-3c
+ 0d + 6e = 0
-3c
+ 2d + 4e = 0
-3c
+ 6d + 0e = 0
-3c
+ 0d + 0e = -6
將方程1分別與方程2、方程3、方程4相減,求得:
-2d
+ 2e = 0
-6d
+ 6e = 0
0d
– 6e = -6
將首次項系數不為零的方程的系數化成相同的數
-6d
+ 6e = 0
-6d
+ 6e = 0
0d
– 6e = -6
方程1與方程2相同,消去,并求得:
-6e
= -6
解得:
e
= 1
將
e
= 1 依次回代,得到a
= 1、b
= 2、c
= 2、d
= 1。
這樣就求得了方程式的配平系數,如果是分數,將其通分成整數就可以了。
總結
以上是生活随笔為你收集整理的c语言文字表达式,【原创】化学方程式配平算法的设计与实现( 非Naylon版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP心脏装置,“人工心脏”不再科幻 中
- 下一篇: [家里蹲大学数学杂志]第284期李大潜秦