No.06638 セルマイヤーの式の解法  【dog】 2008/05/29(Thu) 09:53

屈折率と波長の関係を記述したセルマイヤーの式の解法をプログラミングする作業を行っています。
どなたか,この式の解法についてアドバイスをいただけましたら幸いです。

No.06639 Re: セルマイヤーの式の解法  【青木繁伸】 2008/05/29(Thu) 10:26

このままでは,回答を得られる可能性はそう高くはないと思いますよ。以下を追加すると良いでしょう。

セルマイヤーの式とはなんぞや
解法といっても,なにが問題点なのか
プログラミングといっても,どういう言語を使っているのか
プラットフォームは?

No.06643 Re: セルマイヤーの式の解法  【dog】 2008/05/29(Thu) 11:12

大変失礼しました。

実は式を記入したかったのですがΣが有るのでうまく表せませんでした。
http://www.calctool.org/CALC/phys/optics/sellmeier
このサイトにセルマイヤーの式が表記されております。
大変失礼ながら確認願えればと思います。

また,この式は1871年にW.Sellmeierによって提案された経験式です。
ガラス中の屈折率と波長の関係を表記した式です。
また,私がこの解法として作成しているのはBASIC言語です。
機械語変換して使用すれば使えると考えています。
Kramers-Kronigによる解法が一般的のようですが非線形最小自乗法には私の力では手が出せなくて困っております。

文献でもサイトでも何かヒントをいただければ幸いです。
ぶしつけで大変失礼しました。

No.06644 Re: セルマイヤーの式の解法  【dog】 2008/05/29(Thu) 11:19

追記です。

nは屈折率
λは波長でミクロン単位で与えられます。
他の項が未知数となります。
この場合,展開はn2-1={A1λ2/(λ2-B1)}+{A2λ2/(λ2-B2)}+{A3λ2/(λ2-B3)}
まで進めましたがここで私の力が尽きてしまいました。
A1,A2,A3,B1,B2,B3が未知数です。

No.06645 Re: セルマイヤーの式の解法  【dog】 2008/05/29(Thu) 11:22

又ごめんなさい

式中のnとλの「2」は乗数です。
うまく張れませんでした。

No.06646 Re: セルマイヤーの式の解法  【ひの】 2008/05/29(Thu) 11:57


式が1つで未知数が6つもあったら解けるわけがありませんね。

データとして何を入力し,解として何を求めたいのかをはっきりさせないと先に進めません。プログラミング以前の問題です。

No.06648 Re: セルマイヤーの式の解法  【dog】 2008/05/29(Thu) 13:00

またまたすみません,説明が不足しておりました。
屈折率と波長については実測しますので既知のデーターが揃います。
問題は6つの未知数をどの様に解いていくのかです。

No.06649 Re: セルマイヤーの式の解法  【青木繁伸】 2008/05/29(Thu) 13:11

数式をキーボード上の記号だけを使って正確に書くのも,プログラマーというかコンピュータを使う人の能力として基礎的なものとは思いますが。それはさておき。

要するに,非線形最小二乗法をやりたいということですか。Rだとnls関数を呼び出すだけだし,Excelならソルバーを使えばよいし。
http://aoki2.si.gunma-u.ac.jp/Hanasi/StatTalk/nls.html
http://aoki2.si.gunma-u.ac.jp/Hanasi/StatTalk/solver.html

なぜそれをBASICで組まないといけないのかがわかりませんが,BASICでやろうとするとたいへんでしょうね。

# 二変数関数の最小値をニュートン・ラフソン法で求めるには
   http://aoki2.si.gunma-u.ac.jp/LaTeX/nonlinear.pdf
# 二変数関数の最小値をシンプレックス法で求めるには
   http://aoki2.si.gunma-u.ac.jp/LaTeX/simplex.pdf
あたりをちょいと覗いてみるとか。非線形最小二乗法について書いてある教科書って,少なくはないですよ。

No.06650 Re: セルマイヤーの式の解法  【dog】 2008/05/29(Thu) 13:18

ありがとうございます。

感謝申し上げます。
それにBASICに固執はしておりません。

No.06654 Re: セルマイヤーの式の解法  【ひの】 2008/05/29(Thu) 23:40


非線形最小二乗法を解くアルゴリズムならMarquardt法が定番ですが,
「Marquardt BASIC」で検索すると,

http://rms1.agsearch.agropedia.affrc.go.jp/contents/JASI/pdf/JASI/34-1337.pdf

  がヒットしました。扱っている式は違いますけれど,非線形最小二乗法による解き方自体は式の種類に関わらず同じはず。BASICのソースも載っています が,論文の中には非線形最小二乗法やMarquardt法に関する解説は全くない(つまり論文の読者はそのようなことは知っているものとして書かれてい る)。

 プログラミングで飯を食う予定があるのでなければこういうのにあまり深入りしないほうがよいでしょう。出来合いの解析ソフトを使うか,プログラムを自分で書くにしても,中核部分は信頼の置ける数値演算ライブラリを使用したほうがよいでしょう。

● 「統計学関連なんでもあり」の過去ログ--- 041 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る