「ComplexRI」の版間の差分

提供: ComplexRI: Manual
ナビゲーションに移動 検索に移動
58行目: 58行目:
: ④と⑩の入力の意味を説明する前に、結果の見方について簡単に説明する。
: ④と⑩の入力の意味を説明する前に、結果の見方について簡単に説明する。
: <u>(1)数字、(2)表、(3)グラフ</u>が並んでいる。  
: <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>を参考にしてほしい。
: <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の時と比較しながら行っていく。
115行目: 115行目:
: ⑨では分散のバックグラウンドを与えている。これは測定する基質の赤外領域での屈折率を与える必要がある。
: ⑨では分散のバックグラウンドを与えている。これは測定する基質の赤外領域での屈折率を与える必要がある。
: これは可視光領域の光に対する屈折率からコーシの方程式のパラメータを求め、これを外挿することによって求めることができる。
: これは可視光領域の光に対する屈折率からコーシの方程式のパラメータを求め、これを外挿することによって求めることができる。
: 詳しい求め方は[[#内部処理の説明など|内部処理の説明など]]</u>の<u>[[#説明02|説明02:屈折率のバックグラウンド]]</u>を参考にしてほしい。
: 詳しい求め方は[[#内部処理|内部処理]]</u>の<u>[[#説明02|説明02:屈折率のバックグラウンド]]</u>を参考にしてほしい。


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


==内部処理の説明など==
==内部処理==


{|class="wikitable"
{|class="wikitable"
135行目: 135行目:
----
----
<span id="説明01" style="font-size: 150%; color:Aqua;">説明01:フィッティング方法</span>
<span id="説明01" style="font-size: 150%; color:Aqua;">説明01:フィッティング方法</span>
: 屈折率の分散をパラメータを使って表したい。<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>のように表せると考えている。理由は[数式1]参照。
: 屈折率の分散をパラメータを使って表したい。ローレンツ関数<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>のように表せると考えている。理由は<u>[[#詳細01|詳細01]]</u>参照。
: 光の強度反射率について最小二乗法を行ってパラメータを決める。
: 光の強度反射率について最小二乗法を行ってパラメータを決める。つまり、<math>[\left | r \right \vert_{calc}^2 - \left | r \right \vert_{exp}^2]^2</math>という式について最小二乗法を行っている。
: つまり、<math>[\left | r \right \vert_{calc}^2 - \left | r \right \vert_{exp}^2]^2</math>という式について最小二乗法を行っている。
: ここでrは両方とも電場の反射率である。光の強度反射率が電場の反射率の2乗になる理由は<u>[[#詳細02|詳細02]]</u>参照
: ここでrは両方とも電場の反射率である。光の強度反射率が電場の反射率の2乗になる理由は[数式1.5]参照
: <math>\left | r \right \vert_{exp}</math>については入力ファイルの値(単位が%)を100で割って用いる。
: <math>\left | r \right \vert_{exp}</math>については入力ファイルの値(単位が%)を100で割って用いる。
: <math>\left | r \right \vert_{calc}^2</math>は
: <math>\left | r \right \vert_{calc}^2</math>は<math>\frac{\left | r^s \right \vert_{calc}^2 + \left | r^p \right \vert_{calc}^2}{2}</math>
: <math>\frac{\left | r^s \right \vert_{calc}^2 + \left | r^p \right \vert_{calc}^2}{2}</math>
: のようにp波とs波の平均値で与えられる。詳細は<u>[[#詳細03|詳細03]]</u>
のようにp波とs波の平均値で与えられる。詳細は[数式2.5]
: また、各<math>r</math>はフレネルの公式
: また、各<math>r</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_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>r_p=\frac{n_2\cos{\theta}_i -n_1\cos{\theta}_t}{n_2\cos{\theta}_i +n_1\cos{\theta}_t}</math>
によって求まる。公式の詳細は<u>[[#詳細04|詳細04]]</u>を参照。
によって求まる。公式の詳細は[数式3]を参照。
: ここで、<math>{\theta}_t</math>はスネルの法則<math>n_1\sin{\theta}_i = n_2\sin{\theta}_t</math>によって計算される。公式の詳細は<u>[[#詳細05|詳細05]]</u>を参照。
: 初期値の与え方について詳しく述べる。
: また、<math>{\theta}_i, n_1</math>は入寮として与えられる定数である。
: 入力の11がNOの場合、つまりパラメータを自動で与えるとした場合をまず説明する。
: したがって、<math>\left | r \right \vert_{calc}^2</math>は<math>n_2</math>の関数になっている。
: 最初、<math>n_j=n_j^0+\sum_{l=1}^{lmax} \frac{A}{\nu_l-\nu-i\gamma}</math>の<math>lmax = 1</math>つまりローレンツ関数一つで表せるとしてフィッティングを行う。
: それでは、<math>n_2</math>は最初どのように与えられるのかについて詳しく述べる。
: <math>A, \nu_l, \gamma</math>について初期をそれぞれ与える。
: 入力の⑪がNOの場合、つまりパラメータを自動で与えるとした場合をまず説明する。
: 最初、<math>n_j=n_j^0+\sum_{l=1}^{lmax} \frac{A}{\nu_l-\nu-i\gamma}</math>の<math>lmax = 1</math>つまりローレンツ関数1つで表せるとしてフィッティングを行う。
: <math>n_j^0, A, \nu_l, \gamma</math>について初期をそれぞれ与える。
: <math>n_j^0</math>は分散がない場合の屈折率の値である。コーシの方程式<math>n = A + \frac{B}{{\lambda}^2} + \frac{C}{{\lambda}^4}</math>によって近似的に求めることができるので、物質及び解析範囲に合わせてパラメータと<math>\lambda</math>を用いて適切な値を各自計算して、入力⑨として与えてほしい。
: <math>\gamma</math>は15とする。これは参考文献[1]<ref name = "ref1">から、<math>\gamma</math>は15付近であるという傾向がわかっているからだ。
: <math>\gamma</math>は15とする。これは参考文献[1]<ref name = "ref1">から、<math>\gamma</math>は15付近であるという傾向がわかっているからだ。
: <math>A</math>は7.5とする。これは参考文献[1]<ref name = "ref1">から、<math>A</math>と<math>\gamma</math>の間に<math>\frac{A}{\gamma} = {\kappa}_max</math>という関係があり、さらに<math>{\kappa}_max</math>が0.5付近の値を多くとるということがわかっているからだ。
: <math>A</math>は7.5とする。これは参考文献[1]<ref name = "ref1">から、<math>A</math>と<math>\gamma</math>の間に<math>\frac{A}{\gamma} = {\kappa}_{max}</math>という関係があり、さらに<math>{\kappa}_{max}</math>が0.5付近の値を多くとるということがわかっているからだ。
: 最後に<math>\nu_l</math>についてこれは入力④で与えられた解析範囲において入力⑤で読み込みを指定した列の反射率が最小になるところとしている。これは[数式1]でも説明しているようにローレンツ関数<math>\frac{A}{\nu_l-\nu-i\gamma}</math>を実部と虚部に分けたとき、○○となり、虚部が吸収を表すことが関係している。虚部において最大になるところこそが<math>\nu_l</math>であり、この時吸収は最大である。これは反射が最小に対応する。ゆえにこのように与えている。
: 最後に<math>\nu_l</math>についてこれは入力④で与えられた解析範囲において入力⑤で読み込みを指定した列の反射率が最小になるところとしている。これは<u>[[#詳細01|詳細01]]</u>でも説明しているようにローレンツ関数<math>\frac{A}{\nu_l-\nu-i\gamma}</math>を実部と虚部に分けたとき、<math>\frac{A\gamma}{{\nu_l-\nu}^2 + {\gamma}^2} + i\frac{{\nu_l-\nu}^2}{{\nu_l-\nu}^2 + {\gamma}^2}</math>となり、虚部が吸収を表すことが関係している。虚部において最大になるところこそが<math>\nu_l</math>であり、この時吸収は最大である。これは反射が最小に対応する。ゆえにこのように与えている。
1つずつ与える。
1つずつ与える。
: 最小二乗法を行う際、パラメータの範囲はそれぞれ<math>A</math>は-200から200。<math>\nu_l</math>入力④で与えられた範囲。<math>\gamma</math>は0から500で行っている。
: 最小二乗法を行う際、パラメータの範囲はそれぞれ<math>A</math>は-200から200。<math>\nu_l</math>入力④で与えられた範囲。<math>\gamma</math>は0から500で行っている。
: 終了すると、残差が求まる。これは、求まったパラメータを<math>[\left | r \right \vert_{calc}^2 - \left | r \right \vert_{exp}^2]^2</math>に代入する。
: 最小二乗法が終了すると、残差が求まる。これは、求まったパラメータを<math>[\left | r \right \vert_{calc}^2 - \left | r \right \vert_{exp}^2]^2</math>に代入する。
: その後、この残差を入力④で与えられた解析範囲の波数の個数で割り、それに対する正の平方根を計算する。これは今後、解析を続けるか結果を返すかの指標になっている。
: その後、この残差を入力④で与えられた解析範囲の波数の個数で割り、それに対する正の平方根を計算する。これは今後、解析を続けるか結果を返すかの指標になっている。
: これが入力の⑩で与えられた値より小さければ結果を返す。
: これが入力の⑩で与えられた値より小さければ結果を返す。
: 大きければ、ローレンツ関数を1つ増やす。
: 大きければ、ローレンツ関数を1つ増やす。この時、1つ目の初期値は今回の最小二乗法で求まった値を用いる。
: この時、1つ目の初期値は今回のLSRで求まった値を用いる。
: 2つ目の初期値の作り方を説明する。これは、1つ目のローレンツ関数を用いて計算される <math>\left | r \right \vert_{calc}^2</math>を<math>\left | r \right \vert_{exp}</math>から引いた値計算する。このうち絶対値が最も大きい値に対応する波数を2つ目の<math>\nu_l</math>の初期値として与える。<math>A</math>の大きさは1つ目で求まったAの半分としている。これは屈折率の分散の概形が一つ目で与えられていると考え、足りない部分を補うという考えから、一つ目のAより小さいと考えたためである。今回はAの符号も検討する必要がある。これは、差の値が入力ファイルのように反射率が下に凸とは限らないからだ。よってνに対応する値が最小値なら正、最大値なら負というように与えている。最小値の場合、正として与えるのは1つ目の時と同じで反射率が最小の時吸収が最大になると考えるからである。逆の場合は、物理的な意味は考えづらいが数学的に符号を反対にすることが妥当だと考えたからである。
: 2つ目の初期値の作り方を説明する。これは、1つ目のローレンツ関数を用いて計算される <math>\left | r \right \vert_{calc}^2</math>を<math>\left | r \right \vert_{exp}</math>から引いた値計算する。このうち絶対値が最も大きい値に対応する波数を2つ目の<math>\nu_l</math>の初期値として与える。<math>A</math>の大きさは1つ目で求まったAの半分としている。これは屈折率の分散の概形が一つ目で与えられていると考え、足りない部分を補うという考えから、一つ目のAより小さいと考えたためである。今回はAの符号も検討する必要がある。これは、差の値が入力ファイルのように反射率が下に凸とは限らないからだ。よってνに対応する値が最小値なら正、最大値なら負というように与えている。最小値の場合、正として与えるのは1つ目の時と同じで反射率が最小の時吸収が最大になると考えるからである。逆の場合は、物理的な意味は考えづらいが数学的に符号を反対にすることが妥当だと考えたからである。
: 2回目以降も同じように残差が入力値より小さいかを判定して、小さければ結果を返し、大きければ1つ増やして、初期値を与えて、最小二乗法行う。これを結果が出るまで繰り返す。2回目以降の残差が大きかった場合の初期値の与え方は1回目と同じである。求まったパ:ラメータから計算される <math>\left | r \right \vert_{calc}^2</math>を<math>\left | r \right \vert_{exp}</math>から引いた値計算する。このうち絶対値が最も大きい値に対応する波数を2つ目の<math>\nu_l</math>の初期値として与える。<math>A</math>の大きさは1つ目で求まった<math>A</math>の半分としている。これは屈折率の分散の概形が一つ目で与えられていると考え、足りない部分を補うという考えから、一つ目のAより小さいと考えたためである。<math>A</math>の符号は<math>\nu_l</math>に対応する値が最小値なら正、最大値なら負というように与えている。
: 2回目以降も同じように残差が入力値より小さいかを判定して、小さければ結果を返し、大きければ1つ増やして、初期値を与えて、最小二乗法行う。これを結果が出るまで繰り返す。2回目以降の残差が大きかった場合の初期値の与え方は1回目と同じである。求まったパ:ラメータから計算される <math>\left | r \right \vert_{calc}^2</math>を<math>\left | r \right \vert_{exp}</math>から引いた値計算する。このうち絶対値が最も大きい値に対応する波数を2つ目の<math>\nu_l</math>の初期値として与える。<math>A</math>の大きさは1つ目で求まった<math>A</math>の半分としている。これは屈折率の分散の概形が一つ目で与えられていると考え、足りない部分を補うという考えから、一つ目のAより小さいと考えたためである。<math>A</math>の符号は<math>\nu_l</math>に対応する値が最小値なら正、最大値なら負というように与えている。
: ここまで、入力の⑪がNOの場合の説明をしてきた。次に、入力の⑪がYESの場合の説明をしよう。
: これは、NOの場合とほとんど変わらない。変わるのは、最初の初期値が入力値を採用するということだけである。そのほかの、残差を求めて、それが十分小さくなるまでローレンツ関数を増やしながら、最小二乗法を繰り返すのは同じである。


: フィッティングの方法を説明する。
: フィッティングの方法を説明する。
189行目: 191行目:
<span id="説明02" style="font-size: 150%; color:Aqua;">説明02:屈折率のバックグラウンド</span>
<span id="説明02" style="font-size: 150%; color:Aqua;">説明02:屈折率のバックグラウンド</span>


  [[#内部処理の説明など|内部処理の説明などtopへ]]
  [[#内部処理|内部処理topへ]]




==証明==
==詳細==


{|class="wikitable"
{|class="wikitable"
! 目次
! 目次
|-
|-
|[[#証明01|証明01]]:フィッティング方法
|[[#詳細01|詳細01]]:フィッティング方法
|-
|[[#詳細02|詳細02]]:屈折率のバックグラウンド
|-
|[[#詳細03|詳細03]]:屈折率のバックグラウンド
|-
|-
|[[#証明02|証明02]]:屈折率のバックグラウンド
|[[#詳細04|詳細04]]:屈折率のバックグラウンド
|-
|[[#詳細05|詳細05]]:屈折率のバックグラウンド
 
|}
|}



2021年11月28日 (日) 08:02時点における版


概要

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

チュートリアル

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

チュートリアル01:ファイルを入れて解析してみようチュートリアル01の解説へ
ここでは1⃣実験の結果を入力として与えて解析結果を出力させてみよう。
実験結果のファイルはComplexRIのMANUALページFile Listからダウンロードできる。

MANUAL.png

今回はDownload the File01のボタンを押してダウンロードしてこれを使用してほしい。

FILE DL1.png

ダウンロードが出来たらLSRページに行きファイルを入れてみよう。

LSR.png

入力は①から⑩の10個だ。今回は②Fileにダウンロードしたファイルを与えるだけでFよい。
それではexecute LSRボタンをクリックして解析してみよう。
チュートリアル01の解説
解析結果は以下の画像のようなったはずである。
[図1-1]

caption

ここまでComplexRIの基本的な流れを体験してもらった。
ここで入れたファイルについて簡単に説明する。
この様になっているはずである。

caption

一列目には波数、二列目に一列目の波数の光が入射した時の反射率が(%)単位が並んだ構成になっている。
この様に解析に必要な実験結果は波数とそれに対応する反射率の二種類だけであり、これだけの実験結果から解析が行えるということである。
結果については次のチュートリアルで説明する。

チュートリアル02:解析に関する条件を指定しようチュートリアル02の解説へ
ここでは4⃣解析に関する条件を入力として与えてみよう。
まず、先程と同様にLSRページに行き②Fileにファイルを与える。これは前回と同じものを使用してほしい。
先程はこれで実行していたが、以下のように④と⑩に追加の設定をしてみよう。

02入力ー4.png02入力ー10.png

それではexecute LSRボタンをクリックして解析してみよう。
チュートリアル02の解説
解析結果は以下のようなったはずである。
[図2-1]

caption

④と⑩の入力の意味を説明する前に、結果の見方について簡単に説明する。
(1)数字、(2)表、(3)グラフが並んでいる。
(2)表の数値はフィッティング関数のパラメータである。このフィッティング関数を足し合わせることで、左側の(3)グラフを描いている。また、このグラフの各点の値から反射率を計算してプロットしたのが右側の(3)グラフcalculateである。実際の回帰ではこの表の数値をいろいろ試して、右側の(3)グラフcalculateexperimentと比較するということを行っている。ここで、experimentは入力ファイルとして与えられた反射率の値である。(1)数字は解析が終了した時点で、この比較の差がどれくらい小さくなったかを示している。具体的なフィッティング関数の形や方法については内部処理説明01:フィッティング方法を参考にしてほしい。
これを踏まえて、④と⑩の入力の意味を説明していこう。
説明は今回の結果をチュートリアル01の時と比較しながら行っていく。
図の比較は以下のようになる。
左がチュートリアル01の結果。右がチュートリアル02➡チュートリアル01の結果を直接見る。の結果。

01結果.png02結果.png

④の入力をしたことは、グラフの横軸の幅を設定することなっている。確かに、[入力4の図]と同じ範囲になっている。デフォルトの値で行われたチュートリアル01の時と比べると変化がわかりやすいと思う。
このグラフの幅の設定は、言い換えると、解析する波数の範囲設定したことになっている。これは直前に説明した解析の原理から考えればわかる。(3)グラフcalculateexperimentを比較するのであった。このときグラフの横幅を変えれば、比べる範囲つまり解析の範囲を変えることに相当するということだ。
次に⑩について説明する。今回は[入力10の図]のように0.01した。解析は(1)数字がこの値より小さくなったら終了するようになっている。つまり解析の正確さもしくは厳しさを設定することになっている。これは小さくしすぎないように注意してほしい。なぜなら、比較の差分がこれよりも小さくならず、解析がとても長くなることがあるからだ。目安としてはデフォルトの0.02から0.01がよい。これは適宜試してみてほしい。

チュートリアル03:ファイルの形式を変えてみようチュートリアル03の解説へ
ここでは2⃣ファイル形式に関する条件を入力として与えてみよう。
チュートリアル01の時と同様にMANUALページFile Listからファイルをダウンロードしてほしい。
今回はFile02を使う。

FILE DL2.png

ダウンロード出来たら、LSRページに行き②Fileにファイルを与える。
今回は③,⑤,⑥の入力を以下のように変更してみよう。

03入力ー3.png03入力ー5.png03入力ー6.png

それではexecute LSRボタンをクリックして解析してみよう。
チュートリアル03の解説
解析結果は以下のようなったはずである。

caption

じつはこれはチュートリアル01と同じ結果になっている。
左がチュートリアル01の結果。右がチュートリアル03の結果。➡チュートリアル01の結果を直接見る。

01結果.png03結果.png

これは全く同じになっている。
これは同じ実験結果を入力したことを意味している。しかし、チュートリアル01と02で使用した入力ファイルと今回使用した入力ファイルを比較すると、以下のように一見同じには見えない。これが同じであることを説明する。(一部分のみ示す。)
左がチュートリアル01の入力ファイル。右がチュートリアル02の入力ファイル。

captioncaption

異なる点は2つある。
1つは行が3行になっていることである。これは波数、反射率、吸光度の順に並んでいる。ここで新しく出てきた吸光度というのは反射率と等価な情報を表している。なぜなら、(証明)という関係式が成り立っており、これによって吸光度を反射率に変換することができるからだ。
もう1つは波数と反射率の並びが昇順から降順になっていることだ。ここで、吸光度はこの様に並び替えた後で反射率から計算したので波数に対応している。
このように形は異なるが等価な実験結果を与えた。だから結果が同じだったのだ。
③,⑤,⑥の入力はこのファイルの形の違いをアプリ側に考慮させるために入力した。
⑤では読み込む列の番号を与えたことになっている。今回は入力として1行目の波数と3行目の吸光度を使うのでこのように設定した。
吸光度を使うときは、忘れずに③をabsorptanceに設定してほしい。すると、解析時に反射率に変換して解析する。
この設定はデフォルトではreflectanceになっているのでこれまでは変更する必要がなかった。
最後に⑥はデータの波数のの並び方昇順か降順かを入力している。今回は降順なのでこのように設定した。デフォルトは昇順なので今までは設定する必要がなかった。

チュートリアル04:実験条件を変えてみようチュートリアル04の解説へ
ここでは3⃣実験の条件を入力として与えてみよう。
LSRページに行き②Fileにファイルを与える。これはチュートリアル01と02で使ったものと同じものを使ってほしい。
今回は⑦,⑧,⑨の入力を以下のように変更してみよう。

caption

それではexecute LSRボタンをクリックして解析してみよう。
チュートリアル04の解説
解析結果は以下のようなったはずである。

caption

チュートリアル01とグラフを比較してみると以下のようになる。
左がチュートリアル04の結果。右がチュートリアル01の結果。➡チュートリアル01の結果を直接見る。

04結果.png01結果.png

同じファイル、つまり同じ実験結果を与えているが、実験条件が違えば、出力も異なることがわかる。正しい分散を求めるには自身の行った実験の条件を正しく与える必要があるということだ。
各入力を説明しよう。
⑦では全反射実験のときに使った基質の種類を指定している。
⑧では全反射実験のときの入射光の角度を指定している。
⑨では分散のバックグラウンドを与えている。これは測定する基質の赤外領域での屈折率を与える必要がある。
これは可視光領域の光に対する屈折率からコーシの方程式のパラメータを求め、これを外挿することによって求めることができる。
詳しい求め方は内部処理説明02:屈折率のバックグラウンドを参考にしてほしい。
チュートリアルtopへ

内部処理

目次
説明01:フィッティング方法
説明02:屈折率のバックグラウンド
説明03
説明04

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

屈折率の分散をパラメータを使って表したい。ローレンツ関数の重ね合わせによってのように表せると考えている。理由は詳細01参照。
光の強度反射率について最小二乗法を行ってパラメータを決める。つまり、という式について最小二乗法を行っている。
ここでrは両方とも電場の反射率である。光の強度反射率が電場の反射率の2乗になる理由は詳細02参照
については入力ファイルの値(単位が%)を100で割って用いる。
のようにp波とs波の平均値で与えられる。詳細は詳細03
また、各はフレネルの公式
,

によって求まる。公式の詳細は詳細04を参照。

ここで、はスネルの法則によって計算される。公式の詳細は詳細05を参照。
また、は入寮として与えられる定数である。
したがって、の関数になっている。
それでは、は最初どのように与えられるのかについて詳しく述べる。
入力の⑪がNOの場合、つまりパラメータを自動で与えるとした場合をまず説明する。
最初、つまりローレンツ関数1つで表せるとしてフィッティングを行う。
について初期をそれぞれ与える。
は分散がない場合の屈折率の値である。コーシの方程式によって近似的に求めることができるので、物質及び解析範囲に合わせてパラメータとを用いて適切な値を各自計算して、入力⑨として与えてほしい。
は15とする。これは参考文献[1]引用エラー: <ref> タグに対応する </ref> タグが不足しています



ComplexRIページtopへ]