自分のお店を開く時の心構えとは? >>

例えば正規分布のようなデータをエクセルで作成しました(ピークがあるグラフになります。)
そのグラフから半値幅をエクセル上で求めたいです。
内挿法も考えましたが扱うデータのサンプルポイント数が少なくて誤差が大きすぎるのです。
今はグラフをプリントアウトして定規と日比例計算から半値幅を求めています。
何か方法をご存じのかた教えていただけますか。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

多分そこまで都合の良い方法は無いのではないかという気がします。


私が思いつく方法は2つです。
一つは、そのデータを関数で近似して(GaussianならGaussianで)、近似した関数から半値幅を計算する方法です。
これは近似が信頼できるのなら十分妥当な値が出ますし、もう一つの方法と比べて望ましい手法(理由は後述)です。
もう一つは、離散点の最大値の1/2になる値の幅を数値的に求める方法です。例えば、最大値をy0として、y=y0/2のx軸と平行な直線とデータとの交点を求め、その交点のx座標を半値半幅とします。
ただし、y0/2のラインとちょうど同じy値をデータが持つとは限らないので、少なくとも、近傍のデータ2点から直線を求め、その直線との交点を求める必要があります(できれば3点で2次曲線との交点にする等の方が精度が高くなる)。
こういうことをエクセルで行おうとすると、ワークシートでは無理で、Visual Basicでプログラムを組む必要があるでしょう。
そして何よりも、データに誤差が含まれている(バラつきがある)場合、最大値にも誤差が含まれることになりますから、y0/2にも誤差があり、そして交点を求めるために使用するデータにも誤差があり、ということで求める半値幅がどれくらい信頼できるかは分かりません。
その点、初めの方の関数で近似する方は、誤差が多少あっても近似が妥当であれば、そこそこ信頼できる値が求まるでしょう。
ただし近似(フィッティング)も、エクセルのワークシートだけだと難しいものもあるかもしれません(例えばGaussianのフィッティングはワークシートの関数では無理ではないかと思います)。
その場合はやはりプログラムを組む必要がありますし、その際、最小二乗法の勉強等も必要になるかもしれませんが、測定データ等を既知の関数でフィッティングするのはごくありふれた(ということは信頼できる)手法ですので、お勧めしておきます。
ただ、いずれの方法でも、あるいはいかなる方法でも、データ点数が少なすぎると、当然信頼度は下がります。
それは半値幅を求める手法に関する検討とは別の問題です。
    • good
    • 1
この回答へのお礼

sat000様
とても詳しく教えて頂き感謝いたします。
一番測定精度が良さそうなのは手間がかかりますが従来の手法かなと、
感じました。

真にありがとうございました。

お礼日時:2011/07/26 09:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q半値幅の測り方

半値幅の測り方は知っているのですが、少しわからないところがありますので、教えていただきたいです!!
今、あるデータをExcelに取り込んでグラフを表示しています。ここで、いくつかのピーク値があるので、そのピークごとの半値幅を測って、ピークの高さ×半値幅で積分強度を出さなければいけません。

で、横軸が角度2θ、縦軸がピークの高さです。ピークの高さはそのままの値を取り出せばよいのですが、半値幅の単位って何でしょうか??半値幅をはかりやすいようにグラフを大きくして測ったりすると、半値幅をものさしなどで測ると半値幅の長さ変わってきてしまいます。
この半値幅の単位というのは、角度なんでしょうか??

質問の仕方が下手ですいませんがよろしくお願いします。。。

Aベストアンサー

半値幅であれ10分の1幅であれ、何であれ、分布の広がりの幅。分布の広がりをいうとき、それは重さだったり長さだったり、千差万別だけどそれを知らずにデータ整理なんてできませんよね。ヒストグラムを描くとき、横軸にふる値でその単位は決まるでしょ?
あなたの場合は角度。
だから、あなたのグラフの横軸は角度でなくてはなりません。
エクセルにグラフを描かせるとき、縦軸の値だけしか入れてないのではないですか?そしたら横軸は単にデータの番号になります。ちゃんと横軸の値も入れてグラフを描かせればすむ話かと思いますが。

QX線回折(XRD)分析の半値幅について

現在粉末用のXRD装置を使用しているのですが、半値幅に含まれる情報に関して教えてください!
参考書などを呼んでいると、結晶性のピークに着目した場合、ピークの半値幅が大きくなるほど結晶子サイズは小さいことを意味すると書いてあり、これはなんとなくわかりました。
しかし、非結晶性のものを測定すると一般的にはブロードピークとなるものが多いかと思うのですが、相互関係がわかりません・・・。非結晶性のものは結晶子サイズが小さいということではないですよね?

段々結晶子サイズが小さくなっていった時に、少しづつピークはブロードに近づくとは思うのですが、
・結晶子サイズが小さくなっている
というのと、
・非結晶性のものである
というものの区別はどうやって判断したらよいのですか?ある程度は半値幅を超えたら非結晶性のものとかいう基準があるのでしょうか?

Aベストアンサー

半値幅から微結晶サイズを求めるシェラーの式は、固体中にある
微結晶のサイズを求めるための式です。適用できる微結晶サイズは
nmオーダから0.1μmまでの範囲です。この点に注意してください。

さて微結晶サイズが小さくなると半値幅はサイズに反比例して拡がり、
ピークはだんだん鈍くなります。さらに小さくなるとブロードで
ガラス等による散乱パターンに似たものになることも有ります。

ピークの拡がりは、1)結晶が十分な大きさで無いこと、2)結晶に
欠陥があるか、または空間的な規則性が低いか、3)装置による制約
から来ます。
原因3)は基準物質を使い補正計算をしてある程度除去することが
できます。
原因1)の影響を考慮したのがシェラーの式ですが、常に原因2)の寄与
も含まれています。
原因2)は小さくても結晶で有れば散乱強度を決める構造因子は定まります。
ここで構造因子に欠陥や小さくなることで発生した構造の乱れを組込めば
非晶性の広がったハローを再現できるかも知れません。
しかし、非晶性物質では構造の乱れは大きすぎ、結晶学的な構造因子は
もう決められません。
その代わりに、原子の相互配置を確率的に表した動径分布関数が散乱強度
の計算に導入されます。
一つの物質からの散乱強度の計算に、ここまでは構造因子方式、ここからは
動径分布関数方式という使い分けはされていません。

したがって、結晶子サイズが小さくなっているというのと、非結晶性の
ものであるということの明確な境界は無いように見えます。
当然、ある半値幅を超えたら非結晶性のものとかいう基準は有りません。

溶融体を急冷して結晶化させようとした場合、できたモノを欠陥だらけの
極微細結晶からなるとするか、非晶質になったと解釈するかは半値幅だけ
からはできないと思います。

半値幅から微結晶サイズを求めるシェラーの式は、固体中にある
微結晶のサイズを求めるための式です。適用できる微結晶サイズは
nmオーダから0.1μmまでの範囲です。この点に注意してください。

さて微結晶サイズが小さくなると半値幅はサイズに反比例して拡がり、
ピークはだんだん鈍くなります。さらに小さくなるとブロードで
ガラス等による散乱パターンに似たものになることも有ります。

ピークの拡がりは、1)結晶が十分な大きさで無いこと、2)結晶に
欠陥があるか、または空間的な規則性が低...続きを読む

Qガウシアン関数へのフィッティングについて

現在、ガウシアン関数y=a+b*exp(-(x-c)^2/d^2)に下記のようなデータを使用しフィッティングを行いたいのですが、
手法やパラメータa,b,c,dの求め方がわかりません。
どなたか教えていただけませんか。
よろしくお願いいたします。
(x,y)={
48.8006092
48.8056105
48.8105942
48.8156000
48.8206021
48.8256127
48.8306131
48.8356169
48.8406146
48.8456077
48.8506141
48.8556236
48.8606115
48.8656179
48.8706296
48.8756176
48.8806272
48.8856294
.....}

Aベストアンサー

Excelしか使えないのであれば、ソルバーを使って、以下の手順で「残差2乗和」を最小とするパラメータ a, b, c, d を探すと良いでしょう。ただし、パラメータの初期値があまりかけ離れていると変な値に収束するか解が見つかりません。a, b, c は元のデータのグラフから見当をつけられると思います( a はベースライン高さ、b はピーク高さ、 c はピーク位置x)。d は直感では見当をつけられないので、(ピークの半値全幅)/1.67 で計算してそれを初期値としてください。

【ソルバーを使った最小自乗法】
(1) Excelのメニューの [ツール] → [アドイン] で [ソルバーアドイン] の左側の□をチェックして OK
(2) A列に x データ、B列に y データを書き込む( x は A1 から、y は B1 から下方向に書き込む)
(3) D1からD4にフィッティングパラメータの初期値を書き込む(a → D1、b → D2、c → D3、d → D4)
(4) セル C1 に以下の式を貼り付ける(これをCopy&Paste)
   =($D$1+$D$2*EXP(-1*(A1-$D$3)^2/($D$4)^2)-B1)^2
(5) セルC1をコピーして、C2以下の全データ分のC列にペースト(これでC列=「残差2乗」となる)
(6) セルD5 に =sum(C1:C??)と書く(??はC列最後の行番号)
(7) Excelのメニューの [ツール] → [ソルバー] で [目的セル」を $D$5、[目標値] を 最小、[変化させるセル]を $D$1:$D$4 とする。この意味は、「セルD1~D4に書かれている数値を変化させて、 D5セルを最小となるようにする」ということです。
(8) ソルバーウィンドウのオプションボタンをクリック → 制限時間を 1000、反復回数を 1000、精度・公差・収束をすべて 1e-10 とし、OKをクリック
(9) ソルバーウィンドウの実行ボタンをクリック
(10) フィッティングパラメータが見つかったら、「最適解が見つかりました・・」と出るので、OKをクリック
(11) ExcelのセルD1~D4にフィッティングパラメータが書き込まれている

なお、精度・公差・収束の値をあまり小さくすると収束しないので、もしデータのばらつきが大きくて収束しないときは、これらの値を適宜、大きくしていってみてください。ご質問のデータはGaussianのほんの1部でしたのでこちらで実験することはできませんでした。ちなみに私は通常、カレイダグラフというグラフソフトで任意関数のフィッティングをやっています。

Excelしか使えないのであれば、ソルバーを使って、以下の手順で「残差2乗和」を最小とするパラメータ a, b, c, d を探すと良いでしょう。ただし、パラメータの初期値があまりかけ離れていると変な値に収束するか解が見つかりません。a, b, c は元のデータのグラフから見当をつけられると思います( a はベースライン高さ、b はピーク高さ、 c はピーク位置x)。d は直感では見当をつけられないので、(ピークの半値全幅)/1.67 で計算してそれを初期値としてください。

【ソルバーを使った最小自乗法】
(1...続きを読む

Q波長(nm)をエネルギー(ev)に変換する式は?

波長(nm)をエネルギー(ev)に変換する式を知っていたら是非とも教えて欲しいのですが。
どうぞよろしくお願いいたします。

Aベストアンサー

No1 の回答の式より
 E = hc/λ[J]
   = hc/eλ[eV]
となります。
波長が nm 単位なら E = hc×10^9/eλ です。
あとは、
 h = 6.626*10^-34[J・s]
 e = 1.602*10^-19[C]
 c = 2.998*10^8[m/s]
などの値より、
 E≒1240/λ[eV]
となります。

>例えば540nmでは2.33eVになると論文には書いてあるのですが
>合っているのでしょうか?
λに 540[nm] を代入すると
 E = 1240/540 = 2.30[eV]
でちょっとずれてます。
式はあっているはずです。

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

Qガウス形とローレンツ形

波形でよく出てくるガウス形とローレンツ形ですが、これら半値幅とピークの高さがわかれば形が決まりますよね。
そこで、半値幅とピーク高さの値が求まったとして、面積を求めたいと思っています。半値幅とピーク高さでガウス形とローレンツ形の面積を表わすことができるのでしょうか?面積の公式ってあるのでしょうか?

数学に詳しい方、よろしくお願いいたします。

Aベストアンサー

ガウス(Gauss)型曲線は
(1)  G(x) = A exp(-a^2 x^2)
です.中心は x=0 としています.
曲線と x 軸との間の面積 S はよく知られた公式で
(2)  S = ∫{-∞~∞} G(x) = (A/a)√π
です.
一方,ピーク値はもちろん A,
半値幅 w は,高さがピーク値の半分になる幅ですから,
x=±w/2 で G の値が A/2.
すなわち
(3)  exp(-a^2 w^2 / 4) = 1/2
で,これから
(4)  w = 2√(ln 2)/a  ⇔  a = w/2√(ln 2)
です.
(4)を(2)に代入して,ピーク値 A を考慮すればできあがり.

ローレンツ(Lorentz)型は
(5)  L(x) = B/(x^2 + Γ^2)
の形.前と同じく中心は x=0 としています.
ピーク値は x=0 とおいて B/Γ^2 ですね.
こちらも面積の積分は簡単で
(6)  S = ∫{-∞~∞} L(x) = Bπ/Γ
半値幅は
(7)  B/{(w/2)^2 + Γ^2} = (1/2) B/Γ^2
から
(8)  w = 2Γ  ⇔  Γ = w/2
(6)に(8)を代入して,ピーク値 B/Γ^2 を考慮すればできあがり.

ガウス(Gauss)型曲線は
(1)  G(x) = A exp(-a^2 x^2)
です.中心は x=0 としています.
曲線と x 軸との間の面積 S はよく知られた公式で
(2)  S = ∫{-∞~∞} G(x) = (A/a)√π
です.
一方,ピーク値はもちろん A,
半値幅 w は,高さがピーク値の半分になる幅ですから,
x=±w/2 で G の値が A/2.
すなわち
(3)  exp(-a^2 w^2 / 4) = 1/2
で,これから
(4)  w = 2√(ln 2)/a  ⇔  a = w/2√(ln 2)
です.
(4)を(2)に代入して,ピーク値 A を考慮すればできあがり.

ローレンツ(Lorentz)...続きを読む

Qガウス関数の半値全幅について

ガウス関数 f(x)=a*e^-x^2について、半値全幅(FWHM)について求めたいのですが、方法が良く分かりませんでした。もしよろしければ教えてください。よろしくお願いします。
ただし、
√log^2 = 0.832として計算する。分かりにくくて申し訳ありません。

Aベストアンサー

f(x)=a*e^(-x^2)
は、x=0で最大値aだから、半値は、a/2です。
このときのxは、

a/2=a*e^(-x^2)
で、
1/2=e^(-x^2)
だから、両辺の対数を取ると、
log(1/2)=log(e^(-x^2))=-x^2
で、
x^2=-log(1/2)=log(2)
だから、
x=±√(log(2)=±0.832
だから、半値幅は、

0.832-(-0.832)=1.664

だろうね。

式の変形なんか基本的なことだから、わからないなんて言わないように勉強する。

Q指定範囲から任意の近似値を探したい

画像のようなものを作ろうと思っています。
ですが、vlookupやindex・match関数では私の力ではうまい具合にはいきませんでした。

どのように数式を入れるとよろしいのでしょうか?

Aベストアンサー

こんにちは!

G12セルに
=MIN(IF(B3:E15>G8,B3:E15))
これは配列数式になりますので、Ctrl+Shift+Enterで確定!

G14セルに
=ADDRESS(SUMPRODUCT((B3:E15=G12)*ROW(B3:B15)),SUMPRODUCT((B3:E15=G12)*COLUMN(B3:E3)),4)

という数式を入れてみてください。m(_ _)m

QExcelでGaussian fittingをしたいのですが、どうすれば良いですか?

A1・・・A1001にx軸の値が
B1・・・B1001にy軸の値が入っているとします。
このデータをグラフ化したのちに、ガウシアン関数y=a+b*exp(-(x-c)^2/d^2)に対してフィッティングを行い、それぞれの定数を算出及び、その算出されたグラフを上に乗せるということをしたいのですが、
Excel VBAを使ってどのようにすれば良いのでしょうか?

また、ピークが1本ではなく2本ある場合Multipeak Gaussian fittingというものでそれぞれのピークに対してフィッティングすることもできるそうなのですが、できればその方法についても教えて頂けないでしょうか?

自分でひな形くらい作って質問したいところですが、全くどうやって作れば良いのか検討もつかないのでどなたかよろしくお願い致します。

Aベストアンサー

こんにちは、

http://nuclear.phys.tohoku.ac.jp/~ykoba/latex2html/gaussian-fitting/

これのことですか???

これのことなら、二次の最小二乗法を理解していれば
でるようですが、

これの事とは、違うのですか。
若干ガウシアンの式の形が違うようですが。


マルチは、ちょっと解りません。

Qミラー指数:面間隔bを求める公式について

隣接する2つの原子面の面間隔dは、ミラー指数hklと格子定数の関数である。立方晶の対称性をもつ結晶では

d=a/√(h^2 + k^2 + l^2) ・・・(1)

となる。

質問:「(1)式を証明せよ」と言われたのですが、どうすれば言いかわかりません。やり方を教えてもらえませんか_| ̄|○

Aベストアンサー

「格子定数」「ミラー指数」などと出てくると構えてしまいますが、この問題の本質は3次元空間での簡単な幾何であり、高校生の数学の範囲で解くことができます。

固体物理の本では大抵、ミラー指数を「ある面が結晶のx軸、y軸、z軸を切る点の座標を(a/h, b/k, c/l)とし、(h, k, l)の組をミラー指数という(*1)」といった具合に説明しています。なぜわざわざ逆数にするの?という辺りから話がこんがらがることがしばしばです。
大雑把に言えばミラー指数は法線ベクトルのようなものです。特に立方晶であれば法線ベクトルと全く同じになります。すなわち立方晶の(111)面の法線ベクトルは(1,1,1)ですし、(100)面の法線ベクトルは(1,0,0)です。法線ベクトルなら「ミラー指数」よりずっと親しみがあり解けそうな気分になると思います。

さて(hkl)面に相当する平面の方程式を一つ考えてみましょう。一番簡単なものとして
hx + ky + lz=0  (1)
があります。(0,0,0)を通る平面で法線ベクトルは(h,k,l)です。
これに平行な、隣の平面の式はどうでしょうか。
hx + ky + lz = a  (2a)
hx + ky + lz = -a  (2b)
のいずれかです。これがすぐ隣の平面である理由(そのまた間に他の平面が存在しない理由)は脚注*2に補足しておきました。
点と直線の距離の公式を使えば、題意の面間隔dは原点(0,0,0)と平面(2a)の間隔としてすぐに
d=a/√(h^2+k^2+l^2)  (3)
と求められます。

点と直線の距離の公式を使わなくとも、次のようにすれば求められます。
原点Oから法線ベクトル(h,k,l)の方向に進み、平面(2a)とぶつかった点をA(p,q,r)とします。
OAは法線ベクトルに平行ですから、新たなパラメータtを用いて
p=ht, q=kt, r=lt  (4)
の関係があります。
Aは平面(2a)上の点でもありますから、(4)を(2a)に代入すると
t(h^2+k^2+l^2)=a
t=a/(h^2+k^2+l^2)  (5)
を得ます。
ここにOAの長さは√(p^2+q^2+r^2)=|t|√(h^2+k^2+l^2)なので、これを(5)に代入して
|a|/√(h^2+k^2+l^2)  (6)
を得ます。OAの長さは面間隔dにほかならないので、(3)式が得られたことになります。

bokoboko777さん、これでいかがでしょうか。

*1 (h, k, l)の組が共通因数を持つ場合には、共通因数で割り互いに素になるようにします。例えば(111)面とは言いますが(222)面なる表現は使いません。
*2 左辺はhx+ky+lzでよいとして、なぜ右辺がaまたは-aと決まるのか(0.37aや5aにならないのは何故か)は以下のように説明されます。
平面をhx+ky+lz = C (Cはある定数)と置きます。この平面は少なくとも一つの格子点を通過する必要があります。その点を(x0,y0,z0)とします。
h,k,lはミラー指数の定義から整数です。またx0,y0,z0はいずれもaの整数倍である必要があります(∵格子点だから)。すると右辺のCも少なくともaの整数倍でなければなりません。
次に右辺の最小値ですが、最小の正整数は1ですから平面hx + ky + lz = aが格子点を通るかどうかを調べ、これが通るなら隣の平面はhx + ky + lz = aであると言えます。このことは次の命題と等価です。
<命題>p,qが互いに素な整数である場合、pm+qn=1を満たす整数の組(m,n)が少なくとも一つ存在する
<証明>p,qは正かつp>qと仮定して一般性を失わない。
p, 2p, 3p,...,(q-1)pをqで順に割った際の余りを考えてみる。
pをqで割った際の余りをr[1](整数)とする。同様に2pで割った際の余りをr[2]・・・とする。
これらの余りの集合{r[n]}(1≦n≦(q-1))からは、どの二つを選んで差をとってもそれはqの倍数とは成り得ない(もし倍数となるのならpとqが互いに素である条件に反する)。よって{r[n]}の要素はすべて異なる数である。ところで{r[n]}は互いに異なる(q-1)個の要素から成りかつ要素は(q-1)以下の正整数という条件があるので、その中に必ず1が含まれる。よって命題は成り立つ。

これから隣の平面はhx + ky + lz = aであると証明できます。ただここまで詳しく説明する必要はないでしょう。証明抜きで単に「隣の平面はhx + ky + lz = aである」と書くだけでよいと思います。

参考ページ:
ミラー指数を図なしで説明してしまいましたが、図が必要でしたら例えば
http://133.1.207.21/education/materdesign/
をどうぞ。「講義資料」から「テキスト 第3章」をダウンロードして読んでみてください。(pdfファイルです)

参考URL:http://133.1.207.21/education/materdesign/

「格子定数」「ミラー指数」などと出てくると構えてしまいますが、この問題の本質は3次元空間での簡単な幾何であり、高校生の数学の範囲で解くことができます。

固体物理の本では大抵、ミラー指数を「ある面が結晶のx軸、y軸、z軸を切る点の座標を(a/h, b/k, c/l)とし、(h, k, l)の組をミラー指数という(*1)」といった具合に説明しています。なぜわざわざ逆数にするの?という辺りから話がこんがらがることがしばしばです。
大雑把に言えばミラー指数は法線ベクトルのようなものです。特に立方晶であれば法線ベ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報