/tex/edu/qexp.tex

直交関数に付いて幾らか考えてみる。先ずは、定義の復習をする。１次元の定義域があり、この区間で常に正の荷重関数 w(x) と、実の関数系 pi (x), {i = 1, 2, · · ·} が与えられているとする。関数 f (x) と g(x) の内積を次式で定義する。
Z< f |g >≡dxw(x) f (x) g(x)関数系 pi (x) が正規 直交であるとは、次式を満足する事である。

< pi |pj >= δi,j
この式の右辺は クロネッカーのデルタである。積分区間と、荷重関数は特には書かない。
与えられた関数 Q(x) をこの直交関数で展開する事を考える。

Q(x) =

Xqi pi (x)i

展開係数 qi は次式で与えられる。

qi =< pi |Q >この式の右辺は、展開対象となる量 Q(x) と pi (x) のみが関係している。別の言葉で言うとqi は Q(x) と pi (x) のみに依存し、pj (j 6= i) には依存しない。従って、展開が継ぎ足し可能である。
対象 Q(x) の展開に最良近似 (ミニ マックス近似) が使用される場合もある。ミニマックス近似は、定義域での誤差の最大値を最小にする様に展開係数が定められている。最良近似では、近似の次数を上げようとすると、過去の低次の展開係数は利用できない。即ち、全ての展開係数を新たに計算しなおさなければならない。

展開の次数を無限大とすると、以下の保存則成立する。
2Q =< Q|Q >=∞X

qi2i=1

この関係式は展開可能性を支持するという積極的な意味で使われる場合が多い。
しかし、否定的な意味をこの式に付与する事も可能である。即ち、左辺は定数であり、右辺は左辺の定数に下から近ずく事を意味する。厭味な言い方をすると、無限に項数を増やさないと絶対に正しい値を示さずに、ある意味で、必ず小さい値を示す。下からの近似だけでは、数値的にいくら収束が確認されても、収束が保証された事にはならない。天井が一つだ
けとは限らないからである。展開の有効性を示すためには、下からの近似と上からの近似があって、両者で挟める事が望ましい。上からの近似法は僕は知らない。上からの近似法を開発する事は、Fourier 級数 (展開) の次のステップへ進むことであり、これからの数学者への宿題だろう。
直交関数系が完全であるという事が仮定されている。

1

臨界制動という言葉を習っただろう。天秤やメータの振れは測定に際して振動する場合が多い。もしも振動を嫌って、臨界制動状態に調整すると、この測定器は必ず正しい値よりも小さな値を示すし、読み取り精度の範囲で、安定点を待つのに時間がかかるからという理由で嫌われる。
従って、測定器のダンパーは必ず制動不足に調整される。

物理量を展開する必要があるとしよう。例えば、変分原理を用いてある物理量を計算したい場合である。
使用すべき直交関数系の選択をしなければならない。この時の指導原理は何であろうか？
ところで、直交関数は何により特徴付けられていて、我々に利用可能な直交関数系はどれくらいあるのだろうか？
先ずは、定義域が気になる。これは必要ならば、規格化する事が出来る事にして、次へ進もう。
しかし、荷重関数 w(x) は任意であるから沢山の関数系がありそうだ。
もしも集合論の知識があるならば、関数の濃度という概念を思い出そう。

直交関数系にも個性がある
束縛状態の波動関数を、散乱状態の波動関数で展開するのはセンスが無い。即ち、問題に対応して使用が推奨される直交関数系と使用を控えるべき直交関数系が存在するということである。
原理的には定義域が無限に広がっているが、実質的にはある領域に限られていると考えるのが妥当な場合もあるだろうから、良く考えてから、利用すべき関数系を使用すべきである。
水素原子の問題を解くのに調和振動子の波動関数を用いて展開するのはどうであろうか？と問うてみよう。勿論、水素原子の波動関数は解が知られているではないか！という発言には少しだけ問題を修正すると、もはや正解は分からないと言っておこう。この問いを設定した意味は、クーロン力と調和振動子では同じ束縛状態と言っても、力の到達距離が大きく異なる点にある。ある人は、これは意味のある展開形式だと言うだろうし、他の人は物理的なセンスが無いと言うだろう。この問に対する答えは、立場に依り収束しないのが現状だろう。
束縛状態の波動関数は、ポテンシャルの外では指数関数的に振幅が小さくなるがガウス関数、調和振動子の波動関数も、はこれよりもずっと早く振幅が小さくなる。
ポテンシャルが強い中心付近の振舞はガウス関数で、かなり正しく記述出来るから、エネルギー固有値の計算ならば問題は少ないだろう。
一方、袖摺あわすも他生の縁というような状況 (化学反応の様に、重心から遠く離れた位置での波動関数の重なり具合が微妙に効いて来る場合) では反応率の評価に影響があるだろう。

散乱状態と束縛状態ならば区別できる人は多いが、連続的に変化する様な性質の場合にはどこで線を引くべきか、判断に迷うだろう。
答えが分かっているならば展開すべき直交関数系の選択は簡単に出来るかも知れないが、2答えが分からないのに妥当な直交関数系を選べと言われても困るとも言える。
そこで、自分がこれから解く問題と解法に、細かな部分は調整させるという手法を考えてみる。

adaptive な直交関数系
直交関数系は無限にあると言われても、具体的に. . . となると立ち止まらねばならない場合が多いだろう。問題に応じた境界条件を持たせたいから、一気に直交関数系を書き下す事は容易ではないとする。一方、境界条件を満足するが直交ではない関数系ならば簡単に書き下せるという状況を想定する。このような境界条件は満足するが、正規直交でない関数系を

fi (x) とする。この関数系は、例えば Gram-Schmidt の手法に依り、簡単に直交化出来る。
以下の様にすれば良い。

i を１から順番に与えられた関数の数 (n とする) まで動かして、次の二つの操作をする。
１) 既に直交化された成分を差し引く

qi (x) = fi (x) −i−1X

pk (x) < pk |fi >k=1i = 1 に対してこの操作は不要である。
２) 規格化する
pi (x) =< qi |qi >−1/2 qi (x)こうして計算された pi (x) は規格直交関数系になっている。ここで、プログラム上は、fi (x)には、qi (x), pi (x) は重ね書きが可能である。
次に、adaptive という概念をつくり込む為に、関数系 fi (x) は複数のパラメータ aj を含み、これらによる微分 ∂fi /∂aj が可能であるとする。従って、上の操作を以下の様に変更する。

i を１から順番に与えられた関数の数 (n とする) まで動かして、次の４つの操作をする。
１) 中間関数の微分を計算する。
"()#i−1∂pk (x)∂fi (x) X∂pk∂fi∂qi (x)=−< pk |fi > +pk (x) <|fi > + < pk |>
∂aj
∂aj
∂aj
∂aj
∂aj
k=1２) 既に直交化された成分を差し引く

qi (x) = fi (x) −i−1
Xpk (x) < pk |fi >k=1３) 中間関数 qi (x) を規格化する

pi (x) =< qi |qi >−1/2 qi (x)3４) 微分にも、規格化補正を行う∂pi (x)=< qi |qi >−1/2∂aj()∂qi (x)∂qi−<|pi > pi (x)∂aj∂aj

少し工夫してプログラムを書くと、微分 ∂pi (x)/∂aj も、簡単な補助変数を導入すると、∂f /∂aj に重ね書きが可能である。
例を示そう。
原子核の電荷分布 ρ(r) を記述するのに、Fourier-Bessel (FB と略記) の手法と言うのが使用される場合が多い。この手法では、以下の関数が使用される。
 j (x ) 0 < r ≤ R0 npn (r) = 0r<R

ここで xn = n π r/R である。j0 (x) = sin(x)/x は０次の球ベッセル関数である。この関数系は、規格化されていない。３次元の極座標を使用しているので、荷重関数は ヤコビアン

w(r) = r2 である。
展開係数は、数百 MeV 電子の原子核による弾性散乱の微分断面積を再現する様に決められる。例えば Atomic Data and Nuclear Data Tables 36 (1987) 496 を参照。
208

Pb の例では、１７項が使用され、R = 12 fm と取られている。
この電荷分布 Q(r) を正しいとして、別の直交関数系を一つ導入してみよう。原点では有限な値を持ち、遠方では指数関数的に値が減少するという境界条件をつけて、以下の関数(フェルミ分布関数である) を採用しよう。(フェルミと略記)
fi (r) =11 + exp{(r − Ri )/a}

温度とフェルミ準位に対応する二つの、長さの次元を持つ、パラメータを導入する。このパラメータは、問題に応じて適応的に後から決定されるとする。即ち、初期値を適当に与えておき、展開係数以外にこれらのパラメータも自動探索の対象とする。fi (r) を与えて、直交化された関数を以下に示しておこう。

40.5
0.40.3pi(r)0.20.10-0.1-0.2-0.302

4681012r [fm]

ここで、使用したパラメータは、a = 0.6318, Ri = 9.3878, 6.5255, 4.6506, 2.2175, 1.1525

fm である。次数が上がる毎に、零点の数が一つずつ増えている。従って、r → ∞ では符号が順番に逆転している。展開係数 qi は、先に述べたように次式で計算出来る。
qi =< Q|pi >１) この直交関数系の作り方を見ると、Ri の選び方の自由度を考えるだけでも、直交関数系はアレフの自由度を持つ事が判るだろう。
２) ある種の零点の位置がくっつきすぎているのが少し気に入らない。
３) Gram-Schmidt の直交化では、与えられた関数を一つずつ取り上げて直交化していく。最初にどの関数を取り上げるか？という自由度がある。数学的には、どれを取り上げても良い。しかし、出来るだけ少ない項数で大きな展開効率 (少ない項数と少ない誤差) を目指したい。今の場合には、Q(x) に振るまいが良く似た関数を最初に取り上げるのが良いと思えるので、実際には Ri の大きな方から順番に直交化して使用した。

次に、パラメータの改良に移る。先に、保存則と書いた式で、qi は個別の項が分担すべき部分を分け前だと考える。少しの項で多くの部分を分担する様にパラメータを改良すれという事は、分け前最大化の指針とでも言えば良いだろう。
X ∂qi2i∂aj=2Xiqi∂qi∂ajを計算すれば、どのパラメータをどちらに動かせば良いかが判る。
計算結果を以下に示す。
50.072080.06

Pb charge den. dist.

0.050.04

ρc0.030.02
0.01
0-0.01-0.02-0.03

024681012r [fm]

フェルミ分布の様に見えるのが、Q(r) とその４項及び５項近似である。下に示したのが、両者の差を５０倍したものである。これを誤差と呼ぼう。誤差はほぼ等間隔に波を打ち、最大振幅がほぼ同じであり、その零点の数は９個ある。この計算は、１１個のパラメータを使用している。項数を４から５に増やすと、誤差は当然小さくなるが、零点の数が増えないのはおかしいと思う。Q(r) の計算ミスの可能性は、当然排除されている。この原因は、Q(r)に内包されたものだと推定するのが妥当だろう。即ち、原子核の電荷分布を Fourier-Besselという近似展開したために導入された誤差が露呈したものと考えられる。
ミニマックス近似は、以下の性質を近似多項式が満たす事を教えている。
１) 誤差の絶対値は区間の両端で最大となる。この値を e としよう。
２) N 次近似では、N 個の零点を持ち、誤差の絶対値が e となる点は N 個ある。

次に、分け前がどのように分配されているかを調べてみよう。

6

1234567891011121314151617P 2i qi

FBFermi(4 term) Fermi(5 term)
5.19360E-02
4.55568E-01
4.66669E-01
5.07680E-02
3.28582E-01
3.11986E-01-3.96460E-02 -1.41819E-02-2.43566E-02-2.82180E-02 2.27463E-03-2.63403E-03
2.89160E-02
2.32437E-03
9.89100E-03-1.43880E-02-9.82620E-04
7.25780E-03
8.23180E-04-1.48230E-03
1.32450E-04-8.43450E-05
4.84170E-05-2.65620E-05
1.40350E-05-7.18630E-06
3.15778E-01
3.15714E-01
3.15721E-01
異なる展開形式での展開係数 qi の比較

４項使用で、有効数字４桁までは保存則を実現している。もしも僕が想定するように、Q(r) に 約０. ５％程度の表現誤差があるならば, ４項でも十分な気がするだろう。
FB と Fermi を比較すると、先ず初項の大きさが約１０倍も異なる事が注目される。即ち、Fermi では最初の２項だけでほぼ決着はついていて、３項目以降は振幅の大きさが１/１０以下になっている。Fermi では、４項目と５項目の大きさがほぼ同じという事は、このあたりの項数で展開の目的は果たせてしまったと了解できよう。
一方、FB では、９項目でも約１/７であり、収束の悪さを印象つける。この原因は、r = R
付近では Q(r) の大きさがほぼ０であるのに、展開に使用した関数の値が有意な振幅を持つ事にあるのは明らかだろう。保存則を守りつつ、展開に使用した関数と物理的な境界条件が有意に異なる事との折り合いを付けるのに苦労している。
先に、Q(r) の空間的な振舞いを考慮して Ri の大きな方から直交化したと書いた。逆に小さい方から直交化しても数学的には同じである。数値計算的には、同じか異なるか？を調べてみた。上で５項展開を導いたの

P 2
qi = 3.15718E − 1 にたどり着いた。第６桁目が幾らか異なる。大きなと同じパラメータから出発すると、項が最初に登場するように問題を設定する方が、大きな有効数字が実現されると言う、数値計算上の一般的な指針の一例であろう。
信号とフィルターという概念を知っている人もいるだろう。FB の場合、r = R で関数の値は０であるが、その微分が不連続になっている。ある意味で、sharp cut off filter になっている。

7

現実的な場合
先の例では Q(x) は与えられているから、Q(x) を最初の項とする直交関数系を発明すると、１項だけで Q(x) を完全に展開可能である。実際の場合には、Q(x) の関数形は具体的には与えられていない。Q(x) が満足するある条件から、具体的に Q(x) を計算するというのが通常の手順である。Q(x) を決定する条件は、例えば、ある汎関数を極小化するという事である。上の例では、電荷分布の展開は逆散乱問題になっているという意味で、更に間接的である。電荷分布を仮定して、電子散乱の微分断面積を計算し、これを実験値と比較する。χ2を最小化するように、電荷分布を修正していく。展開係数を決定するこの部分は個別の物理や手法が登場するので一般論はしにくいから、これをとばして、表現誤差の考察をしてみよう。
誤差の目安として、何を指標とすべきかを先ず考えねばならない。上の文から、汎関数や2χ の極値がパラメータ、例えば展開係数、を極値での値から幾らか動かすとどの程度増加するかを採用する事としよう。
よく考えると、近似とはどうすることかというのは一筋縄ではいかない問題である事がわかる。

Fourier 展開では、関数 Q(x) の近似式 q(x) の誤差の指標として以下の式を使用する。
Z[Q(x) − q(x)]2 dx
この場合 いくら |Q(x) − q(x)| が大きくても幅が狭いならば、誤差指標への寄与は小さい。一方、ミニマック
スという指標では、|Q(x) − q(x)| の定義域での最大値を採用する。どちらを採用するかにより、誤差の議論の結論はニュアンスの異なったものとなる。
良く知られている様に、誤差には絶対誤差と相対誤差という概念もある。上の説明では絶対誤差を用いて議論したが、この文は全て相対誤差で置き換えても意味がある文となる。
誤差の定義をきっちりと与えずに、軽々しく誤差はいくらと断定する文に出会ったら、眉に唾をつけて聴くのが良いだろう。

上で提案した、誤差指標を採用する場合でも機械的な適用は慎むべきであるという事を示そう。
直交関数系の選択が非常に良かったり、非常に悪かったりするとある項に対して、展開係数が非常に小さくなるだろう。これは、展開が収束したからだと考えると好ましい事である。極端な場合を考えると、展開係数は０である。従って、この項は誤差に対して無限大の寄与をする。充分収束するまで計算するという事は、誤差無限大の計算をしたのだろうか？
これは、悔しい！
同じような事情は、最小２乗法でもあり、最小ノルムの最小２乗法という概念を産んだ事を思い出そう。
さて、傾向が分かれば対策は簡単である。展開係数の大小による誤差への跳ね返りを無くするには、展開係数の絶対値が全て等しくなればよい。この手法を説明しよう。直交変換 Uを導入し、Q(x) =Xiqi pi (x) =Xjq̄j rj (x) =8Xi,jq̄j Uj i pi (x)となるようにすれば良い。ここで、

q̄i2 =

n1X
q2n j=1 j

即ち、q̄i の大きさ |q¯i | は i には依存せずに、一定である。q̄i の符号はこれから決定される様に、i に依存する。直交行列を決定するには、Householder の提案した elementary

orthogonal matrix を利用する。即ち、単位ベクトル u を用いて書かれた次の行列は直交行列であるという事実を利用する。

U = (1 − 2uuT ),Uij = Uji = δij − 2ui uj

これにより、n2 個の U の未知数の数が、n 個の未知数の問題になった。

ri (x) = pi (x) − 2 uiXuj pj (x)jの左から、Q(x) を掛けて積分すると、

q̄i =< Q|ri >= qi − ui N, N = 2

Xu j qij又は、

ui =qi − q̄i.
N

この式から、q̄i の符号は、qi の逆符号であるとすると有効数字が損なわれない。単位ベクトルの条件から、

1=Xu2i 。

i

これで、規格化定数がきまり、全てが確定した。

ri (x) = pi (x) − A (qi − q̄i )X(qj − q̄j )pj (x),j1i qi (qi − q̄i )A= P

全ての ri (x) は規格直交であるから、個別の項が汎関数なり χ2 なりの値を例えば５０％増すところまで、展開係数を変化させればよい。但し、５０％というのは、出任せである。又は、各項の寄与が 1/n ずつ増加し、全体では２倍になる様な範囲を設定すればよいだ
ろう。

Elementary orthogonal matrix を用いれば q¯1 6= 0 q¯i = 0 (i > 0) という変換を作る事も可能である。即ち、第１項が全ての分け前をぶんどってしまうような変換である。この時には、他の展開係数の値は０であるが、目的関数の展開パラメータによる微分は０でないか
ら、この可能性は排除しておいた。
誤差評価に関しては、３年生の実験学のテキストに書いておいたので、そちらも参照して下さい。基本的には、評価関数を計量とするパラメータ空間の曲率の逆数を誤差指標とする事であり、評価関数の値とは一応関係の無い概念に移行する。
9