Maximaで3点を通る放物線

高校数学で3点を通る放物線を求める問題を以下のYoutube動画のように習いました。



高校数学の範囲では、答えを数値的に求めましたが、では独立な3点(x1, y1), (x2, y2), (x3, y3)を通る放物線を解析的に解くにはどうしたらよいでしょうか?Maximaをつかえば、以下のように入力するだけで y = a x2 + b x + c の係数(a, b, c)を求めることができます。

solve([y[1]=a*x[1]^2+b*x[1]+c,
y[2]=a*x[2]^2+b*x[2]+c,
y[3]=a*x[3]^2+b*x[3]+c],
[a,b,c]);



放物線の式(二次方程式)


放物線の式は、以下のような形で表すことができます。
一般型: y=a x2 + b x + c
頂点型: y=a (x - p)2 + q

独立な3点(x1, y1), (x2, y2), (x3, y3)を通る放物線を求めたいとします。

(x1, y1), (x2, y2), (x3, y3)が全て数値的に与えられていれば、冒頭のyoutube動画のように手計算で式を求めることができますし、Scilabで連立一次方程式のように数値計算ソフトでも係数を決定することができます。

しかしながら、一般型(a, b, c)にせよ頂点型(a, p, q)にせよ、3点が文字のままでも解析的に形を求めることができるはずです。
こういう時にはMaximaが便利です。

一般型


放物線 y=a x2 + b x + c が独立な3点(x1, y1), (x2, y2), (x3, y3)を通るとき、係数a, b, cを求めるという問題は以下の連立方程式をa, b, cについて解くことと同じです。

\begin{equation}
y_1 = x_1^2 a + x_1 b + c \\
y_2 = x_2^2 a + x_2 b + c \\
y_3 = x_3^2 a + x_2 b + c
\end{equation}

行列で書くと以下のようになります。

\begin{equation}
\begin{pmatrix}
x_1^2 & x_1 & 1 \\
x_2^2 & x_2 & 1 \\
x_3^2 & x_3 & 1
\end{pmatrix}
\begin{pmatrix}
a \\
b \\
c
\end{pmatrix}
=
\begin{pmatrix}
y_1 \\
y_2 \\
y_3
\end{pmatrix}
\end{equation}

これはMaximaに以下のように入力することで解くことができます。
solve([y[1]=a*x[1]^2+b*x[1]+c,
y[2]=a*x[2]^2+b*x[2]+c,
y[3]=a*x[3]^2+b*x[3]+c],
[a,b,c]);


\begin{equation}
a=\frac{{x}_{1}\,\left( {y}_{3}-{y}_{2}\right) -{x}_{2}\,{y}_{3}+{y}_{2}\,{x}_{3}+{y}_{1}\,\left( {x}_{2}-{x}_{3}\right) }{{x}_{1}\,\left( {x}_{3}^{2}-{x}_{2}^{2}\right) -{x}_{2}\,{x}_{3}^{2}+{x}_{2}^{2}\,{x}_{3}+{x}_{1}^{2}\,\left( {x}_{2}-{x}_{3}\right) }
\end{equation}
\begin{equation}
b=-\frac{{x}_{1}^{2}\,\left( {y}_{3}-{y}_{2}\right) -{x}_{2}^{2}\,{y}_{3}+{y}_{2}\,{x}_{3}^{2}+{y}_{1}\,\left( {x}_{2}^{2}-{x}_{3}^{2}\right) }{{x}_{1}\,\left( {x}_{3}^{2}-{x}_{2}^{2}\right) -{x}_{2}\,{x}_{3}^{2}+{x}_{2}^{2}\,{x}_{3}+{x}_{1}^{2}\,\left( {x}_{2}-{x}_{3}\right) }
\end{equation}
\begin{equation}
c=\frac{{x}_{1}\,\left( {y}_{2}\,{x}_{3}^{2}-{x}_{2}^{2}\,{y}_{3}\right) +{x}_{1}^{2}\,\left( {x}_{2}\,{y}_{3}-{y}_{2}\,{x}_{3}\right) +{y}_{1}\,\left( {x}_{2}^{2}\,{x}_{3}-{x}_{2}\,{x}_{3}^{2}\right) }{{x}_{1}\,\left( {x}_{3}^{2}-{x}_{2}^{2}\right) -{x}_{2}\,{x}_{3}^{2}+{x}_{2}^{2}\,{x}_{3}+{x}_{1}^{2}\,\left( {x}_{2}-{x}_{3}\right) }
\end{equation}

頂点型


頂点型の場合も同様です。

\begin{equation}
y_1 = a (x_1 - p)^2 + q \\
y_2 = a (x_2 - p)^2 + q \\
y_3 = a (x_3 - p)^2 + q
\end{equation}

Maximaに以下のように入力します。
solve([y[1]=a*(x[1]-p)^2+q, 
y[2]=a*(x[2]-p)^2+q,
y[3]=a*(x[3]-p)^2+q],
[a,p,q]);


答えは以下のようになりました。
\[a=\frac{\left( {x}_{2}-{x}_{1}\right) \,{y}_{3}+\left( {y}_{1}-{y}_{2}\right) \,{x}_{3}+{x}_{1}\,{y}_{2}-{y}_{1}\,{x}_{2}}{\left( {x}_{2}-{x}_{1}\right) \,{x}_{3}^{2}+\left( {x}_{1}^{2}-{x}_{2}^{2}\right) \,{x}_{3}+{x}_{1}\,{x}_{2}^{2}-{x}_{1}^{2}\,{x}_{2}}\]

\[p=\frac{\left( {x}_{2}^{2}-{x}_{1}^{2}\right) \,{y}_{3}+\left( {y}_{1}-{y}_{2}\right) \,{x}_{3}^{2}+{x}_{1}^{2}\,{y}_{2}-{y}_{1}\,{x}_{2}^{2}}{\left( 2\,{x}_{2}-2\,{x}_{1}\right) \,{y}_{3}+\left( 2\,{y}_{1}-2\,{y}_{2}\right) \,{x}_{3}+2\,{x}_{1}\,{y}_{2}-2\,{y}_{1}\,{x}_{2}}\]

qは長くなりすぎるので割愛...

関連エントリ




参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: Maxima  

AkaiKKRでSi中のAu不純物

AkaiKKR(machikaneyama)は、合金の希薄な極限として不純物計算が可能です。今回は、ダイヤモンド構造の半導体であるシリコンに不純物元素となる金を入れたときの、金が作る部分状態密度を計算しました。


Si-DOS.png

Fig.1: ダイヤモンド構造シリコンの全状態密度(赤)と不純物の金の部分状態密度(緑)。金の状態密度が、丁度シリコンのバンドギャップの位置に鋭いピークを持っている。


その結果、金の部分状態密度は、シリコンのバンドギャップの真ん中に鋭い状態密度のピークを持つことが確認できました。このことから、金の不純物は半導体としてのシリコンの特性に深刻な影響を与えるであろうことが予想できます。


シリコン中の金の不純物


ダイヤモンド構造のシリコンは、バンドギャップを持つ半導体です。密度汎関数理論入門: 理論とその応用では8章で、シリコン中の不純物の金が状態密度に与える影響について議論しています。その中で、もっとも重要な点として挙げているのがAu不純物によってSiのバンドギャップの中に鋭い状態密度のピークが生じてしまう点です。

密度汎関数理論入門: 理論とその応用ではこのことを示すために、原子を54個含むスーパーセルを用いてSi53Auの計算を行っています。
しかしながら、実際に工業的に使われるシリコンの純度から考えると1.85%の不純物(54個中1個の不純物原子)の濃度は明らかに濃すぎます。とはいえ、希薄な不純物をスーパーセル法で計算しようとすると非常に大きなスーパーセルが必要になってしまいます。

AkaiKKR(machikaneyama)は、コヒーレンとポテンシャル近似(CPA)を用いて、スーパーセルを用いずに任意の濃度の合金の計算が可能です(参考: AkaiKKRでスーパーセル その1)。それに加えて、希薄な極限としての不純物計算ができます。

不純物計算の入力ファイル


AkaiKKRでダイヤモンド型構造半導体の入力ファイルをベースに作成してあります。局所密度近似(LDA)の範囲で計算しているので、バンドギャップは過小評価となります。この系では空孔を2つ加えたうえで原子球近似(ASA)を使うのが最良の結果になるようです。

不純物計算は、通常のCPAと同様に2成分系の計算の入力ファイルを作成します。この際に不純物濃度を0としておけば、希薄の極限である不純物計算になります。不純物計算では、不純物の存在はホストとなるシリコンの電子状態に影響を与えません。ただしewidthはホストのシリコンと不純物原子の金の両方の価電子帯をカバーしている必要があります。

今回は、状態密度計算のbzqltyはかなり大きめに取りました。

c----------------------Si------------------------------------
go data/SiAu
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 10.26 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.5 sra mjwasa nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.02
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Si 2 1 0.0 2
14 100
79 0
Vc 1 1 0.0 2
0 100
c------------------------------------------------------------
c natm
4
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Si
1/4 1/4 1/4 Si
1/2 1/2 1/2 Vc
3/4 3/4 3/4 Vc
c------------------------------------------------------------

c----------------------Si------------------------------------
dos data/SiAu
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 10.26 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.5 sra mjwasa nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 22 200 0.02
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Si 2 1 0.0 2
14 100
79 0
Vc 1 1 0.0 2
0 100
c------------------------------------------------------------
c natm
4
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Si
1/4 1/4 1/4 Si
1/2 1/2 1/2 Vc
3/4 3/4 3/4 Vc
c------------------------------------------------------------


不純物原子の部分状態密度


Fig.1はシリコンの全状態密度とAu不純物の部分状態密度を同時にプロットしたものです。赤の線がシリコンの全状態密度で、緑の線が金の部分状態密度です。縦軸を共通に取っていますが、縦軸方向の相対的な大きさには意味はありません。横軸のエネルギーで見て、シリコンのバンドギャップに位置する場所に、金の鋭いピークができている事だけ注目してください。

日常的に目にする金属や半導体の電子物性は、フェルミ準位近傍の電子の寄与が最も大きいです。したがって、不純物を入れたときに、その不純物の部分状態密度がフェルミ準位の近くに状態を作るかどうかを確認するだけでも意味がある事です。スーパーセルを使って希薄不純物の計算を行うには、大きなスーパーセルが必要とされるため計算コストがかかるため、CPAにアドバンテージがあります。一方で、不純物周りの格子緩和などに興味がある場合は、スーパーセル法が必要になります。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: AkaiKKR machikaneyama KKR 半導体 バンドギャップ 

ecaljでAg2Oの状態密度

ecaljではGW近似を用いてバンドギャップを精度良く計算できます。今回はAg2Oの状態密度を計算しました。その結果1eV程度のバンドギャップが見られました。この値は1.3eVの実験値と比較してもよい値と思います。


001_20150919224215283.png
Fig.1: Ag2Oの状態密度。LDA計算(赤)とOne-shot GW近似(緑)



Ag2Oのバンドギャップ


ecaljはLDAでは難しい半導体のバンドギャップをGW近似を用いて精度良く計算できます。密度汎関数理論入門: 理論とその応用ではAg2Oが半導体であるにも、金属のようなバンド構造が計算されてしまうLDAの問題点の例として紹介されています。
そこで今回はAg2の状態密度をecaljを用いてLDA計算とone shot GW計算の両方で描画し、GW近似によってバンドギャップに改善がみられることを確認します。

Ag2Oの結晶構造


Ag2Oの結晶構造を表すcifファイルはGitHubのAg2O.cifのページのものを使いました。これをVESTAで描画したのがFig.2です。
格子は単純立方格子で、体心立方構造の位置に酸素の原子が(1/4 1/4 1/4), (3/4 3/4 1/4), (3/4 1/4 3/4), (1/4 3/4 3/4)に銀の原子が存在しています。


002_20150919224215331.png
Fig.2: Ag2の結晶構造(標準化前)



003_201509192242139aa.png
Fig.3: Ag2の結晶構造(標準化後)


VESTAでUtilities → Standardization of Crystal Dataを実行するとFig.3の構造が表示されます。これらは等価な構造なのでどちらを使ってもよいのですが、私にとっては後者の方が(なんとなくちょっかんてきに)分かりやすかったので、後者で結晶構造ファイルを作成しました。

STRUC    ALAT=8.995
PLAT=1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
SITE ATOM=O POS=1/4 1/4 1/4
ATOM=O POS=3/4 3/4 3/4
ATOM=Ag POS=0.0 0.0 0.0
ATOM=Ag POS=1/2 1/2 0.0
ATOM=Ag POS=1/2 0.0 1/2
ATOM=Ag POS=0.0 1/2 1/2


結果


以下に示すFig.4がLDA計算によるAg2Oの状態密度です。フェルミ準位(というか価電子帯の上部というか)で、状態密度が小さくなっていますが、バンドギャップは生じておらず、密度汎関数理論入門: 理論とその応用に載っているのと同様な図が得られています。

004_20150919224212e14.png
Fig.4: LDA計算によるAg2Oの状態密度


Fig.5がGW近似を用いたAg2Oの状態密度です。


005_201509192242126fe.png
Fig.5: One-shot GWによるAg2Oの状態密度


約1eVのバンドギャップが開いていることが分かります。現実のバンドギャップが1.3eV程度ということなので、LDA計算からの改善が確認できます。

関連エントリ




参考URL




付録


このエントリで使用したファイルを添付します。ファイル名末尾の".txt"を削除して、"_"を"."に変更すれば使えるはずです。(参考:ねがてぃぶろぐの付録)


参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: ecalj 半導体 バンドギャップ GW近似 

全エネルギーって何だよ?

第一原理計算では、全エネルギーという言葉をよく耳にします。
全エネルギーは、多くの第一原理計算において、最も重要な出力であるにもかかわらず、その物理的意味は、一見すると分かりにくいです。今回は、そんな全エネルギーについて書きます。


001_2015091918355521f.png

Fig.1: 全エネルギーと凝集エネルギーの違いの模式図。この例では六方最密充填(hcp)構造よりも面心立方(fcc)構造の方が熱力学的に安定である。全エネルギーの基準点は、物理的な意味がないため、その実態がイメージしにくい。しかし、相対的な熱力学的安定性を議論するためには問題なく使える。



自由エネルギー


熱力学的な安定性は、自由エネルギーを用いて議論されます。ギブスの自由エネルギーは以下の式で表されます。
\begin{equation}
G(P, T) = E^{coh} + PV - TS
\end{equation}
ここでGはギブスの自由エネルギー、Ecohが凝集エネルギー、Pが圧力、Vが体積、Tが温度、Sがエントロピーです。これらを実際に計算して比較することにより熱力学的な安定性を議論することができます。
例えば、銅の結晶構造は常温常圧で面心立方構造(fcc)を取り、六方最密充填構造(hcp)ではありません。ギブスの自由エネルギーとの関係でいうと、fcc銅のギブスの自由エネルギーは、hcp銅の自由エネルギーよりも低いという事です。

さて、常温常圧ではT= 300 K, P = 1 barなのですが、簡単のためにT = 0 K, P = 0 barとしてしまうと、ギブスの自由エネルギーGは単純に凝集エネルギーEcohと同じになってしまいます。

凝集エネルギーと全エネルギー


凝集エネルギーとは、孤立原子のエネルギーを基準としたときの凝集状態のエネルギーのことです。別の言い方をするとfcc銅の凝集エネルギーは、fcc構造に結晶化した銅の原子を引き剥がして行って、孤立原子になるまでに必要とされるエネルギーという事になります。

これに対して、第一原理計算における全エネルギーも凝集状態のエネルギーであることは同じですが、その基準となるエネルギーに物理的な意味がない点が異なります。

冒頭に挙げたFig.1は、この事を模式的に表した図です。
Fig.1の例では、銅のようにfcc構造の方がhcp構造よりも安定な固体をイメージしています。

AkaiKKRでの計算


それでは実際にAkaiKKR(machikaneyama)で、fccとhcpの銅の全エネルギーを計算してみます。本当は格子定数やk点の数などに注意を払いながら計算しなければいけないのですが、以下のような簡単な入力ファイルを使う事にします。(参考: AkaiKKRで銅の格子定数)

c----------------------Cu------------------------------------
go data/fccCu
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 0 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.0 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 9 200 0.035
c------------------------------------------------------------
c ntyp
1
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Cu 1 1 0.0 2
29 100
c------------------------------------------------------------
c natm
1
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Cu
c------------------------------------------------------------


c----------------------Cu------------------------------------
go data/hcpCu
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
hcp 0 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.0 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 9 200 0.035
c------------------------------------------------------------
c ntyp
1
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Cu 1 1 0.0 2
29 100
c------------------------------------------------------------
c natm
2
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Cu
1/3a 2/3b 1/2c Cu
c------------------------------------------------------------


実際に計算するとfcc構造の全エネルギーは-3304.7481651 Ryとなり、hcp構造の全エネルギーは-6609.4943602 Ryと表示されます。hcp構造は計算セルに2個の原子を持っているので、原子一つ分なら2で割って -3304.7471801 Ryとなります。

これらの値は、それぞれを別々に見せられても、その値自体に物理的な意味は持っていません。しかしながら大小関係を比較することにより結晶構造の安定性を議論することができます。今回の場合は -3304.7481651 < -3304.7471801 なのでfcc構造の方が安定であるという事がわかります。

結晶構造の違いの他にも、格子定数や軸比(c/aなど)、内部自由度など色々なものが全エネルギーの比較から可能になります。

補足: 有限温度と有限圧力


ギブスの自由エネルギーを計算する際に、温度と圧力の効果を無視して凝集エネルギーとの比較だけを行いましたが、有限温度や有限圧力の効果も第一原理的に取り入れることは可能です。

実際、圧力の効果PVは簡単に取り入れられることがすぐに分かります。
有限温度の効果は、色々な近似を持ち込めば、何らかの値を出すことは可能です。AkaiKKRで金属の熱物性は、デバイ模型を用いた一例です。

関連エントリ




参考URL




参考文献/使用機器




フィードバック


にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。

tag: AkaiKKR machikaneyama KKR 全エネルギー 

FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性OPアンプPICCPA常微分方程式モンテカルロ解析ecaljodeトランジスタ状態密度インターフェースDOS定電流スイッチング回路PDS5022半導体シェルスクリプトレベルシフト乱数HP6632AR6452AI2C可変抵抗分散関係トランジスタ技術ブレッドボード温度解析反強磁性確率論バンドギャップセミナー数値積分熱設計非線形方程式ソルババンド構造絶縁偏微分方程式ISO-I2CLM358フォトカプラ三端子レギュレータカオスLEDシュミットトリガGW近似A/Dコンバータ発振回路PC817C直流動作点解析USBマフィンティン半径数値微分アナログスイッチTL43174HC4053カレントミラーサーボ量子力学単振り子チョッパアンプ補間2ちゃんねる開発環境bzqltyFFT電子負荷LDAイジング模型BSch基本並進ベクトルブラべ格子パラメトリック解析標準ロジックアセンブラ繰り返し六方最密充填構造SMPコバルトewidthFET仮想結晶近似QSGW不規則合金VCAMaximaGGA熱伝導cygwinスレーターポーリング曲線キュリー温度スイッチト・キャパシタ失敗談ランダムウォークgfortran抵抗相対論位相図スピン軌道相互作用VESTA状態方程式TLP621ラプラス方程式TLP552条件分岐NE555LM555TLP521マントル詰め回路MCUテスタFXA-7020ZR三角波過渡解析ガイガー管自動計測QNAPUPSWriter509ダイヤモンドデータロガー格子比熱熱力学awkブラウン運動起電力スーパーセル差し込みグラフ第一原理計算フェルミ面fsolve最大値xcrysden最小値最適化ubuntu平均場近似OpenMP井戸型ポテンシャルシュレディンガー方程式固有値問題2SC1815結晶磁気異方性OPA2277非線型方程式ソルバTeXgnuplot固定スピンモーメントFSMPGAc/a全エネルギーfccフラクタルマンデルブロ集合正規分布縮退初期値interp1multiplotフィルタ面心立方構造ウィグナーザイツ胞L10構造半金属二相共存SICZnOウルツ鉱構造BaO重積分クーロン散乱磁気モーメント電荷密度化学反応CIF岩塩構造CapSenseノコギリ波デバイ模型ハーフメタルキーボードフォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt合金等高線線種凡例シンボルトラックボールPC軸ラベルグラフの分割トランス文字列CK1026MAS830L直流解析Excel不規則局所モーメントパラメータ・モデル入出力日本語最小二乗法等価回路モデルヒストグラムGimp円周率TS-110TS-112PIC16F785LMC662三次元specx.fifortUbuntu疎行列不純物問題Realforceジバニャン方程式ヒストグラム確率論マテリアルデザインP-10境界条件連立一次方程式熱拡散方程式AACircuitHiLAPW両対数グラフ片対数グラフ陰解法MBEナイキスト線図負帰還安定性Crank-Nicolson法EAGLE関数フィッティング

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ