一般向け/高校生向け楽しい化け学


先週唐突に思いつきで作り始めた分子量計算プログラムがなんとカタチになりました。



分子量計算ソフト「もるきゅれーたー」:実行画面


我ながらなかなか良いものができました。


タスクはいたって単純。

要するに「化学式→分子量(式量)」。

上のテキストボックスに化学式を入力して「計算」(もしくはEnterキー)を押すと、分子量が計算されて、下のテキストボックスに分子量が表示されるというもの。

一番下にある「保存」をクリックすると、途中計算も含め計算結果のレポートが保存できます。
(だから必要あらば有効数字とか吟味できます。)


◎ 規格/セールスポイント

なんと全元素対応!!

 重金属でも希ガスでもなんでも原子量のデータ入ってます。
 (ただし安定同位体のない元素は、代表的な同位体の相対原子質量か「unknown」に設定されています。)

「( )」が使える。

 だから「(CH3)2CHCOONa」とか打ち込んでもちゃんと計算してくれます。

 できるだけ「いつもの化学式」のまま変換できることを目指しました。


「Ph」や「Et」等の官能基の略記、「En」や「Acac」等の配位子にも対応!

 筆者も(二つの意味で)大好きな「EtOH」とかの表記ができます。

 「Cp2TiCl2」等、分子量計算がめんどくさい有機金属錯体でもストレスフリー!!


ポリペプチドにも対応!

 「H-Asp-His-Glu-OH」等、ポリペプチドもそのまま分子量を計算してくれます!

 汎用性が高く、「H-Asp-His-Glu-OCH3」等、誘導体でもそのまま計算できます。
 (※ 「-」は省略可能です。また、ポリペプチドの時以外でも「-」を入れて見やすく表記することもできます。)


原子量は高精度!

 「炭素の原子量は12.01」だとか妥協しません。「Cは12.01078」と、どの元素でもできるだけ細かい値をデータベースにインプットしています。

 今話題のセシウムCsに至っては「132.90545192」と無駄に11桁の精度です。(意味無いとか言わないで!!)
 ※ 出典は『Visual Chemistry Pro HD』voi nguyen。


信頼のレポート出力

 やはり気になるのは有効桁数。

 計算結果は計算過程を含めて出力することができます。


以上。

自分で作ると自分が一番求めるものを目指せますね。

特にこのソフトは非常にシンプルであるためいくらでも汎用性があります。

「希ガスの原子量あってもなぁ・・・」とか思うかもしれませんが、世の中には「Xe[PtF6]」(ヘキサフルオロ白金酸キセノン)等もあります。

このソフトはただ単純に与えられた化学組成で分子量を計算するので、このような普通価数が合わないような分子(塩)やラジカル、官能基でも分子量(式量)を計算できます。


という感じなのですが、まだデバッグ中です。

動作環境は;

・ Windows7:たぶん動く(と思う)。

・ Windows Vista:動くような気がする。

・ Windows XP:動かないような気がする。

・ XP以前:絶望的。

・ MacOS:絶対動かない(はず)。

と、全然動作確認できてません・・・・

もし「デバッグに協力してやってもいいぜ」って方はトップページのwebフォーム(もしくはTwitter:@Chemis_twit)で連絡ください。


デバッグ協力者大募集中!

そんな物好きいるのだろうか・・・とりあえずJerry(『梅酒の化学』の著者)には協力してもらおう。

拍手



結晶のX線回折の結果を解析するプログラム(言語;C++)を作ってみました。



筆者手製のXRD解析プログラムの実行イメージ


ピーク角度2θの値を入力すると、格子定数と各ピークに対するミラー指数と面間隔を算出してくれます。

ただし立方晶にのみ対応。(←ここがしょぼい。)

プログラミングは趣味で、たまにちょこちょこ作ってます。
(ただし趣味の域は超えないので難しいのは作れない。)


◎ X線回折(X-ray diffraction;XRD)とは

結晶試料にX線を当てると、いくつかの特定の入射角度で強く反射(散乱)する。

そのピーク角度を測定し結晶情報を得る分析手法。

これはX線が結晶中のある原子面で反射したとき、次の深さの面での反射光と干渉して強めあったときに現れる。

高校物理の波動で習ういわゆる「光路差が半波長の整数倍のとき~~」というヤツで、入射角θで強めあっているときは

2dsinθ = nλ  (d・・・原子面間隔、n・・・整数、λ・・・X線の波長)

という「ブラッグの反射条件」(高校物理の教科書に載っている)が成り立つ。

よって測定されたピーク角度から面間隔がわかり、いくつかのピークを総合することでその結晶の格子定数aが求まる。

逆に使えば種類不明の結晶が何の化合物であるかという同定もできる。


試料が立方晶(面心立方格子・体心立方格子・ダイヤモンド格子etc)のとき、

A = n2λ2/(4a2) ・・・(A)

とおくと、測定されたどのピーク角度θでも

sin2θ/A ・・・(B)

は整数になるという性質がある。

したがって測定された全てのθの値に対して(B)式の値が整数になるAを見つければ(A)式より格子定数aが求まるということである。


本プログラムでは次のような手順でAを決定している。

測定されたθがθ1、θ2・・・・θnのとき

(1) sin2θ1/A = 1となるAを求める。

(2) (1)のAが全てのθで(B)式が整数に近くなるか(±0.2くらい許容)を調べる。

(3) (2)がダメだったら sin2θ1/A = 2、3、4・・・ となるAを求め(1)、(2)を繰り返し、Aを決定する。


ここまでで求めたAは、sin2θ1/Aが整数であると仮定したときで、それ以外のθではいくらかずれているため不完全である。

全ての sin2θ1/A が整数に最も近くなるAを解とすべきである。

具体的に言うと、全てのθの

{(sin2θ/A)-(sin2θ/A に最も近い整数)}2 ・・・(C)

の和が最小になるAがよい。
(二乗しているのは値を正にするため。)

(C)式を数学的に表記すると

    ・・・・(C')

になる。(「round(x)」は「xの四捨五入」を表す。)

したがって(3)で求めたA(粗解A'とする)を基準としてA'近傍でAを変化させ、(C')を最小化するAを求め、それを解として返す。


・・・・という手順である。

実際に実行するとこんな感じです↓

クリックで拡大



筆者手製のXRD解析プログラムの実行画面(試料は酸化マグネシウム)


※ XRDのピーク角度は「2θ」が測定されるので、それを入力します。

格子定数a、面間隔d、ミラー指数(h k l)が算出されます。
(ミラー指数;面を表す番号;反射された面が具体的にどこであったかということ)


という休日の過ごし方(笑)

拍手

ブログ内検索
PR
Twitter-bot

Twitter @Chemis_twit (管理人)
Copyright 放課後化学講義室 All rights reserved



< カウンター since 2010/9/24 >