[PR]当サイトはアフィリエイト広告を利用しています。
はじめに
今回は久しぶりにソルバーネタ。
高校の化学平衡の話に出てくる計算をします。
ソルバーの練習です。
問題
次のような問題を解きます。
酢酸6.0molとエタノール3.0mol、触媒として硫酸を少量混合し、25℃に保って振った。
平衡状態に達したとき、混合溶液中の酢酸エチルの物質量は何molか。
25℃におけるこの反応の平衡定数はK=4.0とし、反応中に液体の体積は変化しないものとする。
解:
この反応は次のように書ける。(入試レベルの完璧な書き方ではなく、概要をわかるように書いているだけですので注意)
CH3COOH + C2H5OH ⇄ CH3COOC2H5 + H2O
反応前はそれぞれ、
6.0, 3.0, 0, 0 [mol]
平衡時はそれぞれ
6.0-x, 3.0-x, x, x [mol]
混合溶液中の酢酸エチルの物質量をx[mol]とする。
混合溶液の体積をVとすると、
K=([CH3COOC2H5][H2O])/([CH3COOH][ C2H5OH])
=(x/V)2/(((6.0-x)/V)((3.0-x)/V))
=4.0
この式から
x≒9.5, 2.5 x<3より、x=2.5[mol]
ソルバーで求める
これをソルバーで求めてみます。
まずxの式を整理します。
K=x*x/((6.0-x)(3.0-x))
となります。
適当にセルにxとKの式を入力します。
D4:=C4C4/((6-C4)(3-C4))
C4は0にしておきます。
ソルバーの設定をしていきます。
目的セル:D4
目標値:指定値 4
変数セル:C4
制約条件:C4<=2.9999、C4>=0
解決方法:GRG非線形
Kは4なので目標値は4です。
制約条件がC4<=3とならないのは、C4<=3とすると、Kの式の分母が0になる(C4=3のとき)場合があって、そのときにソルバーが途中で止まってしまうからです。
GRG非線形なのは、xの一次式ではないこと(つまり線形ではないので線形計画法が使えない)、xは連続変数であることから選択しました。
解決すると
C4=2.535898377
となりました。
ゴールシークでも解決できる
変数セルが一つなのでゴールシークでも解が求まります。
このようにセットして解決すると
C4=2.535856554
と出ます。
ただしゴールシークはC4の初期値からアルゴリズムを走らせるので
C4=10とかで始めると
C4=9.464293876
と出ます。
こういうときは初期値を0から始めれば、小さい方の解を出すので、変数の下限から始めたほうがいいです。
エボリューショナリー以外の解法は、初期点から、関数の勾配(微分してプラスかマイナスか)を頼りに進んでいきます。
よくわからないときは、色々な初期点で求めてみて、変数の範囲に入る値を決めるというアプローチもあります。
変数の範囲をよく確認してから走らせましょう。
ちなみにソルバーの場合は
C4<=2.9999
としておけばC4の初期値が10でも求めたい解が出ます。
変数の範囲を最初の設定段階で明確にしておくのが大事ですね。
まとめ
今回はソルバーの練習で化学平衡の問題を扱いました。
二次方程式を式展開するの面倒なら、ソルバーを使ってみてもいいかもしれませんね。
式の形だけ入力すれば解が出ますから。
当ブログ(シルルスのコードおきば)ではエクセルソルバー関係の記事を他にも執筆しています。参考になりましたら幸いです。
●エクセルソルバーで複数解を求める方法【初期値を変えるしかないです】
●エクセルソルバーと組み合わせ最適化問題【解法例と基礎知識】