「ComplexRI」の版間の差分

提供: ComplexRI: Manual
ナビゲーションに移動 検索に移動
24行目: 24行目:


----
----
<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>にダウンロードしたファイルを与えるだけでFよい。
: それでは<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|500px]]
: ここまでComplexRIの基本的な流れを体験してもらった。
: ここで入れたファイルについて簡単に説明する。
: この様になっているはずである。
[[File:FILE01.png|500px]]
: 一列目には波数、二列目に一列目の波数の光が入射した時の反射率が(%)単位が並んだ構成になっている。
: この様に解析に必要な実験結果は波数とそれに対応する反射率の二種類だけであり、これだけの実験結果から解析が行えるということである。
: 結果については次のチュートリアルで説明する。
----
<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|500px]]
: ④と⑩の入力の意味を説明する前に、結果の見方について簡単に説明する。
: <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|500px]]
: じつはこれはチュートリアル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|500px]][[File:FILE02.png|500px]]
: 異なる点は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|500px]]
: それでは<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|500px]]
: チュートリアル01とグラフを比較してみると以下のようになる。
: 左がチュートリアル04の結果。右がチュートリアル01の結果。➡<u>[[#image1-1|チュートリアル01の結果を直接見る。]]</u>
[[File:04結果.png|frameless|500px]][[File:01結果.png|frameless|500px]]
: 同じファイル、つまり同じ実験結果を与えているが、実験条件が違えば、出力も異なることがわかる。正しい分散を求めるには自身の行った実験の条件を正しく与える必要があるということだ。
: 各入力を説明しよう。
: ⑦では全反射実験のときに使った基質の種類を指定している。
: ⑧では全反射実験のときの入射光の角度を指定している。
: ⑨では分散のバックグラウンドを与えている。これは測定する基質の赤外領域での屈折率を与える必要がある。
: これは可視光領域の光に対する屈折率からコーシの方程式のパラメータを求め、これを外挿することによって求めることができる。
: 詳しい求め方は[[#内部処理|内部処理]]</u>の<u>[[#説明02|説明02:屈折率のバックグラウンド]]</u>を参考にしてほしい。


  [[#チュートリアル|チュートリアルtopへ]]
  [[#チュートリアル|チュートリアルtopへ]]

2021年11月29日 (月) 16:54時点における版


概要

本ComplexRIは全反射実験から得られた反射率あるいは吸光度のデータをもとにして媒質の複素屈折率の分散を出力するWebアプリケーションである。 1⃣実験の結果、 2⃣ファイル形式に関する入力、 3⃣実験の条件、 4⃣解析に関する条件 という四つの情報を入力として与えると、解析が行える。

チュートリアル

チュートリアルでは4種類全10個の入力について、実際に解析を行い、その結果をもとに説明する。
目次
チュートリアル01:ファイルを入れて解析する(入力1⃣を与える練習)
チュートリアル02:解析に関する条件を指定する(入力4⃣を与える練習)
チュートリアル03:ファイルの形式を変える(入力2⃣を与える練習)
チュートリアル04:実験条件を正しく与える(入力3⃣を与える練習)

チュートリアルtopへ

マニュアル

目次
入力01:タイトル
入力02:ファイル
入力03:反射率か吸光度か?
入力04:波数範囲
入力05:データの列の指定
入力06:昇順か降順か?
入力07:実験で用いた基質の種類
入力08:入射角
入力09:吸収がないときの屈折率
入力10:残差の指定
入力11:フィッティング関数のパラメータの設定の有無
チュートリアル01:タイトル
これはアウトプットファイルの名前になる。自分のわかりやすいようにつけてほしい。デフォルトはno-titleである。
チュートリアル02:ファイル
ここでは実験結果のファイルを入力してほしい。以下に例を示す。(ファイル全体が大きすぎるので一部を示している。)
FILE01.png
形式の指定は以下の3つです。
(1)Txtファイルである。
(2)波数とそれに対応する反射率もしくは吸光度が列ごとに並んでいる。
(3)列と列の間は空白で区切られている。
チュートリアル03:反射率か吸光度か?
結果のファイルで吸光度と反射率のどちらを読み込ませようとしているかを指定してほしい。
選択肢は次の3つである。
(1)反射率で単位が(%)である。
(2)反射率で単位が(%)ではない。
(3)吸光度
デフォルトは(1)です。
チュートリアル04:波数範囲
屈折率の分散を解析する波数範囲を指定してほしい。
チュートリアル05:データの列の指定
入力ファイルのうち解析に用いる列を指定してほしい。
波数、反射率(あるいは吸光度)についてそれぞれ指定してほしい。
デフォルトは波数が1行目、反射率(あるいは吸光度)が2行目になっている。
チュートリアル06:昇順か降順か?
データの並び方を指定してほしい。これは波数の並び方が昇順か降順かを与えてほしい。
デフォルトは降順になっている。
チュートリアル07:実験で用いた基質の種類
全反射実験で用いた基質の種類を入力してほしい。これはn1の屈折率を指定することになっている。

全反射実験.png

選択肢は次の4つである。
(1)diamond。屈折率は2.38と設定される。
(2)zinc selenide。屈折率は2.40と設定される。
(3)germanium。屈折率は4.0と設定される。
(4)上記以外。これは屈折率を自由に設定できる。実際の実験で上記3つの基質以外を使った場合を想定している。しかし上記3つの基質のいずれかを使った場合でも、より厳密に屈折率を指定したい場合はこれを用いることも可能である。。
デフォルトは(1)になっている。
チュートリアル08:入射角
全反射実験の光の入射角を指定してほしい。

全反射実験.png

上の図でいうところのである。
デフォルトは45°になっている。
チュートリアル09:吸収がないときの屈折率
吸収がないときの屈折率を入力してください。
これはコーシーの方程式から計算できる。解析したい物質及び波数範囲に合わせて適切なパラメータ及び波長を与え、求めた値を入力してほしい。

「参考サイト」

チュートリアル10:残差の指定
ここでの解析を終了するための指標になる。内部処理説明01:フィッティング方法で述べるように最小二乗法を繰り返し行い、残差がここでの入力値より小さいかどうかで解析の終了、続行を判定している。
注意!!小さすぎると終わらないことがある。
チュートリアル11:フィッティング関数のパラメータの設定の有無
フィッティング関数の初期の本数およびパラメータの初期値を手動で与えるか自動で設定するかを選択できる。
自動の場合は内部処理説明01:フィッティング方法で述べたように決定している。
手動で決定する場合は、まず、Lor_numにローレンツ関数の本数を入力してほしい。最大は5となっている。
次に、Lor_numの値に応じて、INIT_A1, INIT_N1, INIT_G1と出てくる。これはローレンツ関数のパラメータに相当している。
最後の数字が同じINIT_A, INIT_N, INIT_G3つが一組となって一つのローレンツ関数のパラメータの初期を与えることになる。それぞれ、INIT_Aは, INIT_Nは, INIT_Gはに対応している。


マニュアルtopへ

内部処理

目次
説明01:フィッティング方法

説明01:フィッティング方法

屈折率の分散をパラメータを使って表したい。ローレンツ関数の重ね合わせによってのように表せると考えている。理由は詳細01参照。
光の強度反射率について最小二乗法を行ってパラメータを決める。つまり、という式について最小二乗法を行っている。
ここでは両方とも電場の反射率である。光の強度反射率が電場の反射率の2乗になる理由は引用エラー: <ref> タグに対応する </ref> タグが不足しています

[1] [2]

  1. 遠藤雅守:電磁場の物理学ーその発生・伝搬・吸収・増幅・共振を電磁気学で理解するー
  2. 小林浩一:光物性入門
ComplexRIページtopへ]