2023.4.27(2011.3.11)
化学工学トップページ >
最も簡単な逐次反応は,
A→B, r1=k1Ca
B→C, r2=k2Cb
と書くことができる。
各成分の濃度を表わす微分方程式は次のようになる。
dCa/dt = -k1Ca
dCb/dt =k1Ca – k2Cb
dCc/dt = k2Cb
これをオイラー法で解くJavaScriptを書く。
このプログラムは2008年2月にDashCodeを使って書いたものだ。
この時のDashCodeはマックのダッシュボードというウイジットとしてしか動かなかったが、ウイジットの中身はHTML5+CSS+JavaScriptなので、簡単に取り出せる。
そして作り直したのがこのページだ。
赤い線はA成分が時間と共に減少していく様子を示している。
A成分が減少した分、B成分(緑の線)ができるが、BはさらにC成分(青い線)に変わるので、途中から減少する。
もし、欲しい成分がCならどんどん反応させればいいのだが、B成分が欲しいなら、緑色の山の頂上で止めなくてはならない。
さもなければ、反応速度定数に差が出るような、実験条件を探さなくてはならない。
例えば、温度を変える、圧力を変える、pHを変えるなどして、B->Cの反応速度定数を小さく出来れば2つ目の図のようにBの収率を上げることができる。
K1、K2の値をいろいろ変えて試してみていただきたい。
K1=K2=0.05

K1=0.05, k2=0.005

K1=0.05, K2=0.5

こんなことができてしまうなら、何故2008年の段階で、全面的にJAVAScriptに移行しなかったのか?といわれれば、その時にはMacのウイジットでしか動かなかったのだ。
Pirikaはマックユーザーだけを相手にしているわけではないので、採用はしなかった。
しかし、今はこの技術がHTML5という形で標準化され、今後ほとんどのブラウザーでサポートされるだろう。
こんなことがプラグインなしにできてしまうとは、すごい時代になったものだ。
2023.4.27
Office ScriptによるExcel on the web開発入門を紐解きながら、この逐次反応をExcel上で動くようにしてみた。初めてのJavaScriptを勉強したプログラムなのでTypeScript初めてのプログラムとしては丁度良い。

セルの値を取り出す方法が解れば1時間ほどで完成する。
よくわからないのが、セルのところにはどんなタイプ(文字、数字、真偽値)が入っているかわからない。そこでScript的には赤波線が置かれエラー表示なる。
Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください)
メールの件名は[pirika]で始めてください。