|
|
(同じ利用者による、間の80版が非表示) |
2行目: |
2行目: |
|
| |
|
| == 概要 == | | == 概要 == |
| 本ComplexRIは全反射実験から得られた反射率あるいは吸光度のデータをもとにして媒質の複素屈折率の分散を出力するWebアプリケーションである。
| | 本ComplexRIは、全反射実験から得たデータを用いて、複素屈折率の分散を調べるためのWebアプリケーションである。複素屈折率の分散を調べることは和周波分光の解析に役立つ。界面SFG分光とは可視光と赤外光の2つの光を照射したときに、界面で選択的に発生する和周波光を検出するもので、2次の非線形効果を応用した分光法であり、近年液体界面や高分子界面などを含めた幅広い界面分析に応用されるようになった。この和周波発生はフレネル係数に大きく影響されており、また、フレネル係数は屈折率に依存した量である。そこで和周波分光を解析するには複素屈折率の分散を調べることが必要であり、本Complexそれを手軽に行えることを目的に開発された。 |
| <span style="font-size: 100%; color:red;">1⃣実験の結果、</span> | | |
| <span style="font-size: 100%; color:red;">2⃣ファイル形式に関する入力、</span> | | ==主な特徴== |
| <span style="font-size: 100%; color:red;">3⃣実験の条件、</span> | | *全反射実験の実験データさえあれば、複素屈折率の分散を出すことが可能。 |
| <span style="font-size: 100%; color:red;">4⃣解析に関する条件</span> | | *適用範囲は赤外領域。これは、和周波分光では官能基を調べることを目的としており、これに一致する光の周波数帯が赤外領域だからである。 |
| という四つの情報を入力として与えると、解析が行える。
| | |
| | ==作成の経緯== |
| | 和周波分光の結果をより正確に解析するための情報として様々な官能基に関する複素屈折率の分散を調べた論文<ref name = "ref1" /><ref name = "ref2" /><ref name = "ref3" />がある。これは全反射実験のデータに基づいて屈折率の分散をまとめたものになっている。本ComplexRIはこれに基づいて、全反射実験のデータさえ与えれば、同じようなフィッティングが簡単に行えるように開発された。<br /> |
| | フィッティング計算には論文<ref name = "ref2" /><ref name = "ref3" />で用いられたものを主として用いている。これは、本研究室の王助教と以前森田グループに所属していた村田によって作成されたものである。本ComplexRIでは初期値を設定しなくてもフィッティングが行えるように、少しアルゴリズムを改良している。これは本研究室の森田教授、王助教の指導の下で上村が実装した。<br /> |
| | また、WebアプリケーションとしてのUIも上村が実装した。 |
|
| |
|
| == チュートリアル == | | == チュートリアル == |
| :チュートリアルでは4種類全10個の入力について、実際に解析を行い、その結果をもとに説明する。 | | :チュートリアルでは4種類全10個の入力について、実際に解析を行い、その結果をもとに説明する。 |
| {|class="wikitable" | | {|class="wikitable" |
| ! 目次 | | ! 目次(チュートリアル) |
| |- | | |- |
| |[[#チュートリアル01|チュートリアル01]]:ファイルを入れて解析する(入力1⃣を与える練習) | | |[[チュートリアル01|チュートリアル01]]:ファイルを入れて解析する(入力1⃣を与える練習) |
| |- | | |- |
| |[[#チュートリアル02|チュートリアル02]]:解析に関する条件を指定する(入力4⃣を与える練習) | | |[[チュートリアル02|チュートリアル02]]:解析に関する条件を指定する(入力4⃣を与える練習) |
| |- | | |- |
| |[[#チュートリアル03|チュートリアル03]]:ファイルの形式を変える(入力2⃣を与える練習) | | |[[チュートリアル03|チュートリアル03]]:ファイルの形式を変える(入力2⃣を与える練習) |
| |- | | |- |
| |[[#チュートリアル04|チュートリアル04]]:実験条件を正しく与える(入力3⃣を与える練習) | | |[[チュートリアル04|チュートリアル04]]:実験条件を正しく与える(入力3⃣を与える練習) |
| |} | | |} |
|
| |
|
| ---- | | ---- |
| <div><span id="チュートリアル01" style="font-size: 150%; color:Aqua;">チュートリアル01:ファイルを入れて解析してみよう</span>➡[[#チュートリアル01の解説|チュートリアル01の解説へ]]</div>
| |
| : ここでは<span style="font-size: 100%; color:red;">1⃣実験の結果</span>を入力として与えて解析結果を出力させてみよう。
| |
| : 実験結果のファイルはComplexRIの<span style="font-size: 100%; color:red;">MANUALページ</span>の<span style="font-size: 100%; color:red;">File List</span>からダウンロードできる。
| |
| [[File:MANUAL.png|1000px]]
| |
| : 今回は<span style="font-size: 100%; color:red;">Download the File01</span>のボタンを押してダウンロードしてこれを使用してほしい。
| |
| [[File:FILE_DL1.png|500px]]
| |
| : ダウンロードが出来たら<span style="font-size: 100%; color:red;">LSRページ</span>に行きファイルを入れてみよう。
| |
| [[File:LSR.png|1000px]]
| |
| : 入力は①から⑩の10個だ。今回は<span style="font-size: 100%; color:red;">②File</span>にダウンロードしたファイルを与えるだけでよい。
| |
| : それでは<span style="font-size: 100%; color:red;">execute LSR</span>ボタンをクリックして解析してみよう。
| |
| <div id="チュートリアル01の解説" style="font-size: 150%; color:aqua;">チュートリアル01の解説</div>
| |
| : 解析結果は以下の画像のようなったはずである。
| |
| <div id = "image1-1" style="font-size: 120%;">[図1-1]</div>
| |
| [[File:01結果.png|caption]]
| |
| : ここまでComplexRIの基本的な流れを体験してもらった。
| |
| : ここで入れたファイルについて簡単に説明する。
| |
| : この様になっているはずである。
| |
| [[File:FILE01.png|caption]]
| |
| : 一列目には波数、二列目に一列目の波数の光が入射した時の反射率が(%)単位が並んだ構成になっている。
| |
| : この様に解析に必要な実験結果は波数とそれに対応する反射率の二種類だけであり、これだけの実験結果から解析が行えるということである。
| |
| : 結果については次のチュートリアルで説明する。
| |
| ----
| |
| <div><span id="チュートリアル02" style="font-size: 150%; color:Aqua;">チュートリアル02:解析に関する条件を指定しよう</span>➡[[#チュートリアル02の解説|チュートリアル02の解説へ]]</div>
| |
| : ここでは<span style="font-size: 100%; color:red;">4⃣解析に関する条件</span>を入力として与えてみよう。
| |
| : まず、先程と同様にLSRページ</span>に行き<span style="font-size: 100%; color:red;">②File</span>にファイルを与える。これは前回と同じものを使用してほしい。
| |
| : 先程はこれで実行していたが、以下のように④と⑩に追加の設定をしてみよう。
| |
| [[File:02入力ー4.png|frameless|500px]][[File:02入力ー10.png|frameless|500px]]
| |
| : それでは<span style="font-size: 100%; color:red;">execute LSR</span>ボタンをクリックして解析してみよう。
| |
| <div id="チュートリアル02の解説" style="font-size: 150%; color:aqua;">チュートリアル02の解説</div>
| |
| : 解析結果は以下のようなったはずである。
| |
| <div id = "image2-1" style="font-size: 120%;">[図2-1]</div>
| |
| [[File:02結果.png|caption]]
| |
| : ④と⑩の入力の意味を説明する前に、結果の見方について簡単に説明する。
| |
| : <u>(1)数字、(2)表、(3)グラフ</u>が並んでいる。
| |
| : <u>(2)表</u>の数値はフィッティング関数のパラメータである。このフィッティング関数を足し合わせることで、左側の<u>(3)グラフ</u>を描いている。また、このグラフの各点の値から反射率を計算してプロットしたのが右側の<u>(3)グラフ</u>の<span style="color:green;">calculate</span>である。実際の回帰ではこの表の数値をいろいろ試して、右側の<u>(3)グラフ</u>の<span style="color:green;">calculate</span>と<span style="color:red;">experiment</span>と比較するということを行っている。ここで、<span style="color:red;">experiment</span>は入力ファイルとして与えられた反射率の値である。<u>(1)数字</u>は解析が終了した時点で、この比較の差がどれくらい小さくなったかを示している。具体的なフィッティング関数の形や方法については<u>[[#内部処理の説明など|内部処理の説明など]]</u>の<u>[[#説明01|説明01:フィッティング方法]]</u>を参考にしてほしい。
| |
| : これを踏まえて、④と⑩の入力の意味を説明していこう。
| |
| : 説明は今回の結果をチュートリアル01の時と比較しながら行っていく。
| |
| : 図の比較は以下のようになる。
| |
| : 左がチュートリアル01の結果。右がチュートリアル02➡<u>[[#image1-1|チュートリアル01の結果を直接見る。]]</u>の結果。
| |
| [[File:01結果.png|frameless|500px]][[File:02結果.png|frameless|500px]]
| |
| : ④の入力をしたことは、グラフの横軸の幅を設定することなっている。確かに、[入力4の図]と同じ範囲になっている。デフォルトの値で行われたチュートリアル01の時と比べると変化がわかりやすいと思う。
| |
| :このグラフの幅の設定は、言い換えると、解析する波数の範囲設定したことになっている。これは直前に説明した解析の原理から考えればわかる。<u>(3)グラフ</u>の<span style="color:green;">calculate</span>と<span style="color:red;">experiment</span>を比較するのであった。このときグラフの横幅を変えれば、比べる範囲つまり解析の範囲を変えることに相当するということだ。
| |
| : 次に⑩について説明する。今回は[入力10の図]のように0.01した。解析は<u>(1)数字</u>がこの値より小さくなったら終了するようになっている。つまり解析の正確さもしくは厳しさを設定することになっている。これは小さくしすぎないように注意してほしい。なぜなら、比較の差分がこれよりも小さくならず、解析がとても長くなることがあるからだ。目安としてはデフォルトの0.02から0.01がよい。これは適宜試してみてほしい。
| |
| ----
| |
| <div><span id="チュートリアル03" style="font-size: 150%; color:Aqua;">チュートリアル03:ファイルの形式を変えてみよう</span>➡[[#チュートリアル03の解説|チュートリアル03の解説へ]]</div>
| |
| : ここでは<span style="font-size: 100%; color:red;">2⃣ファイル形式に関する条件</span>を入力として与えてみよう。
| |
| : チュートリアル01の時と同様に<span style="font-size: 100%; color:red;">MANUALページ</span>の<span style="font-size: 100%; color:red;">File List</span>からファイルをダウンロードしてほしい。
| |
| : 今回は<span style="font-size: 100%; color:red;">File02</span>を使う。
| |
| [[File:FILE_DL2.png|500px]]
| |
| : ダウンロード出来たら、LSRページ</span>に行き<span style="font-size: 100%; color:red;">②File</span>にファイルを与える。
| |
| : 今回は③,⑤,⑥の入力を以下のように変更してみよう。
| |
| [[File:03入力ー3.png|frameless|500px]][[File:03入力ー5.png|frameless|500px]][[File:03入力ー6.png|frameless|500px]]
| |
| : それでは<span style="font-size: 100%; color:red;">execute LSR</span>ボタンをクリックして解析してみよう。
| |
| <div id="チュートリアル03の解説" style="font-size: 150%; color:aqua;">チュートリアル03の解説</div>
| |
| : 解析結果は以下のようなったはずである。
| |
| [[File:03結果.png|caption]]
| |
| : じつはこれはチュートリアル01と同じ結果になっている。
| |
| : 左がチュートリアル01の結果。右がチュートリアル03の結果。➡<u>[[#image1-1|チュートリアル01の結果を直接見る。]]</u>
| |
| [[File:01結果.png|frameless|500px]][[File:03結果.png|frameless|500px]]
| |
| : これは全く同じになっている。
| |
| : これは同じ実験結果を入力したことを意味している。しかし、チュートリアル01と02で使用した入力ファイルと今回使用した入力ファイルを比較すると、以下のように一見同じには見えない。これが同じであることを説明する。(一部分のみ示す。)
| |
| : 左がチュートリアル01の入力ファイル。右がチュートリアル02の入力ファイル。
| |
| [[File:FILE01.png|caption]][[File:FILE02.png|caption]]
| |
| : 異なる点は2つある。
| |
| : 1つは行が3行になっていることである。これは波数、反射率、吸光度の順に並んでいる。ここで新しく出てきた吸光度というのは反射率と等価な情報を表している。なぜなら、<math>A=-\log_{10}R</math>[[#証明01|(証明)]]という関係式が成り立っており、これによって吸光度を反射率に変換することができるからだ。
| |
| : もう1つは波数と反射率の並びが昇順から降順になっていることだ。ここで、吸光度はこの様に並び替えた後で反射率から計算したので波数に対応している。
| |
| : このように形は異なるが等価な実験結果を与えた。だから結果が同じだったのだ。
| |
| : ③,⑤,⑥の入力はこのファイルの形の違いをアプリ側に考慮させるために入力した。
| |
| : ⑤では読み込む列の番号を与えたことになっている。今回は入力として1行目の波数と3行目の吸光度を使うのでこのように設定した。
| |
| : 吸光度を使うときは、忘れずに③をabsorptanceに設定してほしい。すると、解析時に反射率に変換して解析する。
| |
| : この設定はデフォルトではreflectanceになっているのでこれまでは変更する必要がなかった。
| |
| : 最後に⑥はデータの波数のの並び方昇順か降順かを入力している。今回は降順なのでこのように設定した。デフォルトは昇順なので今までは設定する必要がなかった。
| |
| ----
| |
| <div><span id="チュートリアル04" style="font-size: 150%; color:Aqua;">チュートリアル04:実験条件を変えてみよう</span>➡[[#チュートリアル04の解説|チュートリアル04の解説へ]]</div>
| |
| : ここでは<span style="font-size: 100%; color:red;">3⃣実験の条件</span>を入力として与えてみよう。
| |
| : <span>LSRページ</span>に行き<span style="font-size: 100%; color:red;">②File</span>にファイルを与える。これはチュートリアル01と02で使ったものと同じものを使ってほしい。
| |
| : 今回は⑦,⑧,⑨の入力を以下のように変更してみよう。
| |
| [[File:04入力ー789.png|frameless|caption]]
| |
| : それでは<span style="font-size: 100%; color:red;">execute LSR</span>ボタンをクリックして解析してみよう。
| |
| <div><span id="チュートリアル04の解説" style="font-size: 150%; color:Aqua;">チュートリアル04の解説</div>
| |
| : 解析結果は以下のようなったはずである。
| |
| [[File:04結果.png|caption]]
| |
| : チュートリアル01とグラフを比較してみると以下のようになる。
| |
| : 左がチュートリアル04の結果。右がチュートリアル01の結果。➡<u>[[#image1-1|チュートリアル01の結果を直接見る。]]</u>
| |
| [[File:04結果.png|frameless|500px]][[File:01結果.png|frameless|500px]]
| |
| : 同じファイル、つまり同じ実験結果を与えているが、実験条件が違えば、出力も異なることがわかる。正しい分散を求めるには自身の行った実験の条件を正しく与える必要があるということだ。
| |
| : 各入力を説明しよう。
| |
| : ⑦では全反射実験のときに使った基質の種類を指定している。
| |
| : ⑧では全反射実験のときの入射光の角度を指定している。
| |
| : ⑨では分散のバックグラウンドを与えている。これは測定する基質の赤外領域での屈折率を与える必要がある。
| |
| : これは可視光領域の光に対する屈折率からコーシの方程式のパラメータを求め、これを外挿することによって求めることができる。
| |
| : 詳しい求め方は[[#内部処理の説明など|内部処理の説明など]]</u>の<u>[[#説明02|説明02:屈折率のバックグラウンド]]</u>を参考にしてほしい。
| |
|
| |
|
| [[#チュートリアル|チュートリアルtopへ]]
| | ==マニュアル== |
| | |
| ==内部処理の説明など== | |
|
| |
|
| {|class="wikitable" | | {|class="wikitable" |
| ! 目次 | | ! 目次(入力) |
| | |- |
| | |[[入力#入力01|入力01]]:タイトル |
| | |- |
| | |[[入力#入力02|入力02]]:ファイル |
| | |- |
| | |[[入力#入力03|入力03]]:反射率か吸光度か? |
| | |- |
| | |[[入力#入力04|入力04]]:波数範囲 |
| | |- |
| | |[[入力#入力05|入力05]]:データの列の指定 |
| | |- |
| | |[[入力#入力06|入力06]]:昇順か降順か? |
| | |- |
| | |[[入力#入力07|入力07]]:実験で用いた基質の種類 |
| | |- |
| | |[[入力#入力08|入力08]]:入射角 |
| | |- |
| | |[[入力#入力09|入力09]]:吸収がないときの屈折率 |
| | |- |
| | |[[入力#入力10|入力10]]:残差の指定 |
| | |- |
| | |[[入力#入力11|入力11]]:フィッティング関数のパラメータの設定の有無 |
| | |} |
| | {|class="wikitable" |
| | ! 目次(出力) |
| |- | | |- |
| |[[#説明01|説明01]]:フィッティング方法 | | |[[出力#出力01|出力01]]:数値 |
| |- | | |- |
| |[[#説明02|説明02]]:屈折率のバックグラウンド | | |[[出力#出力02|出力02]]:表 |
| |- | | |- |
| |[[#説明03|説明03]] | | |[[出力#出力03|出力03]]:グラフ |
| |- | | |- |
| |[[#説明04|説明04]] | | |[[出力#出力04|出力04]]:アウトプットファイル |
| |} | | |} |
|
| |
|
| ---- | | ---- |
| <span id="説明01" style="font-size: 150%; color:Aqua;">説明01:フィッティング方法</span>
| |
| : フィッティングの方法を説明する。
| |
| : このアプリケーションでは複素屈折率<math>n_j</math>がローレンツ関数<math>\frac{A}{\nu_l-\nu-i\gamma}</math>の重ね合わせによって<math>n_j=n_j^0+\sum_{l=1}^{lmax} \frac{A}{\nu_l-\nu-i\gamma}</math>のように表せると考えている。そこで、<math>A, \nu, \gamma</math>の3つのパラメータを各ローレンツ関数に対して決定する。このアプリケーションではこれらの決定を最小二乗法を用いて行っている。
| |
| : 最小二乗法は
| |
| : {{NumBlk|::|<math>[\left | r \right \vert_{calc}^2 - \left | r \right \vert_{exp}^2]^2</math>|{{EquationRef|1}}}}
| |
| : に対して行っている。
| |
| : これは実験から得られた反射率とフィッティング関数を用いて計算される反射率の差を最小にすることを意味する。
| |
| : ここで<math>\left | r \right \vert_{exp}</math>は入力で与えられた反射率(%)を100で割った値を用いている。
| |
| : <math>\left | r \right \vert_{calc}^2</math>は
| |
| : フレネルの公式<math>r_s=\frac{n_1\cos{\theta}_i -n_2\cos{\theta}_t}{n_1\cos{\theta}_i +n_2\cos{\theta}_t}</math>
| |
| : <math>r_p=\frac{n_2\cos{\theta}_i -n_1\cos{\theta}_t}{n_2\cos{\theta}_i +n_1\cos{\theta}_t}</math>
| |
| : から求める。このときの<math>n_2</math>の部分に<math>n_j=n_j^0+\sum_{l=1}^{lmax} \frac{A}{\nu_l-\nu-i\gamma}</math>を用いている。
| |
| : <math>n_1, {\theta}_i</math>は解析を行う上では定数となる。
| |
| : なぜなら、<math>n_1</math>は入力⑦つまり基質の屈折率を入れ、<math>{\theta}_i</math>は入力⑧の入射角を常に用いるからである。
| |
| : {\theta}_t</math>はスネルの法則<math>n_1{\theta}_i = n_2{\theta}_t</math>から計算されるためこれは<math>A, \nu, \gamma</math>の関数である。
| |
| : よって、<math>\left | r \right \vert_{calc}^2</math>は<math>A, \nu, \gamma</math>の関数になっている。
| |
| : ゆえに、式(1)<math>[\left | r \right \vert_{calc}^2 - \left | r \right \vert_{exp}^2]^2</math>も<math>A, \nu, \gamma</math>
| |
|
| |
|
| : つまり、上の式は<math>[\left | r \right \vert_{calc}^2 - \left | r \right \vert_{exp}^2]^2</math>は<math>A, \nu, \gamma</math>の関数になっていてこれの最小値を
| | ==内部処理== |
| : ここで、<math>A, \nu, \gamma</math>は初期値が与えられただけで<math>n_j</math>を正確に表せていないことに注意してほしい。 | | |
| : <math>A, \nu, \gamma</math>の値はこの後 | | {|class="wikitable" |
| | ! 目次(内部処理) |
| | |- |
| | |[[説明01|説明01]]:フィッティング方法 |
| | |} |
| | <span style="font-size: 100%; color:red;">※このページを見るにはブラウザとしてchromeを使用されることを推奨しています。ブラウザによっては読み込みにかなり時間がかかることがあります。</span> |
|
| |
|
|
| |
|
| ---- | | ---- |
| <span id="説明02" style="font-size: 150%; color:Aqua;">説明02:屈折率のバックグラウンド</span>
| |
|
| |
| [[#内部処理の説明など|内部処理の説明などtopへ]]
| |
|
| |
|
| |
|
| ==証明== | | ==詳細== |
|
| |
|
| {|class="wikitable" | | {|class="wikitable" |
| ! 目次 | | ! 目次(詳細) |
| |- | | |- |
| |[[#証明01|証明01]]:フィッティング方法 | | |[[詳細01|詳細01]]:ローレンツ関数を使う理由 |
| |- | | |- |
| |[[#証明02|証明02]]:屈折率のバックグラウンド | | |[[詳細02|詳細02]]:p波とs波の平均値で与えられる理由 |
| | |- |
| | |[[詳細03|詳細03]]:屈折率の虚部が吸収を表す理由 |
| |} | | |} |
|
| |
|
| <div id="証明01" style="font-size: 150%; color:Aqua;">証明01:屈折率のバックグラウンド</div>
| | ---- |
| <div id="証明02" style="font-size: 150%; color:Aqua;">証明02:屈折率のバックグラウンド</div>
| |
|
| |
|
| | [http://comp.chem.tohoku.ac.jp/mediawiki/index.php/ComplexRI ComplexRIページtopへ]] |
|
| |
|
| [http://comp.chem.tohoku.ac.jp/mediawiki/index.php/ComplexRI ComplexRIページtopへ]]
| | ==参考文献== |
| | <references> |
| | <ref name = "ref1">"Effect of Frequency-Dependent Fresnel Factor on the Vibrational Sum Frequency Generation Spectra for Liquid/Solid Interfaces" |
| | Lin Wang, Satoshi Nihonyanagi, Ken-ichi Inoue, Kei Nishikawa, Akihiro Morita, Shen Ye, Tahei Tahara, J. Phys. Chem. C, 123(25) 15665-15673 (2019).</ref> |
| | <ref name = "ref2">"Dispersion of Complex Refractive Indices for Intense Vibrational Bands. II Implication to Sum Frequency Generation Spectroscopy" |
| | Lin Wang, Ryo Murata, Ken-ichi Inoue, Shen Ye, and Akihiro Morita, J. Phys. Chem. B, 125(34), 9804-9810 (2021).</ref> |
| | <ref name = "ref3">"Dispersion of Complex Refractive Indices for Intense Vibrational Bands. I Quantitative Spectra" |
| | Ryo Murata, Ken-ichi Inoue, Lin Wang, Shen Ye, and Akihiro Morita, J. Phys. Chem. B, 125(34), 9794-9803 (2021).</ref> |
| | </references> |