炉物理プログラム演習：空間の考え方
2023/10/17 千葉 豪

T− 1) を、3 つのベクトル ⃗a1 、⃗a2 、⃗a3

問題１：三次元空間について考え、この空間内のベクトル ⃗r = (3 2を用いて（これらのベクトルの線型結合で）記述するものとする。以下の場合に、それが可能であるか、また可能であればどのように記述されるか、答えよ。
TT

T

TT

T

T

T

(1) ⃗a1 = (1 0 0) 、⃗a2 = (0 1 0) 、⃗a3 = (0 0 1)
(2) ⃗a1 = (1 1 0) 、⃗a2 = (0 1 1) 、⃗a3 = (1 0 1)
(3) ⃗a1 = (1 1 1) 、⃗a2 = (0 1 1) 、⃗a3 = (0 0 1)

TT− 1 1) 、⃗a3 = (0 1 1)

T− 1 1) 、⃗a3 = (0 2(4) ⃗a1 = (1 1 1) 、⃗a2 = (0(5) ⃗a1 = (1 1 1) 、⃗a2 = (0TTT− 2)T
T

問題２：三次元空間について考え、この空間内のベクトル ⃗r = (2 1 3) を、3 つのベクトル ⃗a1 、⃗a2 、⃗a3 をT用いて記述するとする。⃗a1 = (1 1 1) 、⃗a2 = (0T− 1 1) 、⃗a3 = (0 2T− 2) とした場合に、それが可能であるか、また可能であればどのように記述されるか、答えよ。
ベクトル ⃗r が、ベクトル群 ⃗ai （i = 1, 2, 3）の線形結合で記述されるとき、以下の式が成り立つ。

⃗r =3∑r1′ri′⃗ai = (⃗a1 ⃗a2 ⃗a3 )  r2′  = Ar⃗′

(1)

r3′

i=1

このような場合、ベクトル r⃗′ の各要素は、ベクトル群 ⃗ai が張る空間内におけるベクトル ⃗r の、⃗ai が構成する座標軸上の位置を示していることになる。
ベクトル群 ⃗ai が張る空間の基底ベクトルは ⃗ai と言えるが、ある空間に対する基底ベクトル群は任意に決めることができる1 。また、基底ベクトル群のうち、各々の大きさが 1 で、さらに各々が互いに直交するようなものを正規直交基底と呼ぶ（これも複数存在し得る）。与えられたベクトル群が張る空間についていろいろ考えるときには、その正規直交基底を導出しておくと便利である。また、与えられたベクトル群においては互いに依存しあうものが存在する可能性がある。例えば、n 個のベクトル群が与えられたからといって、このベクトル群が張る空間の次元数が必ずしも n になるとは限らない。正規直交基底を導出するということは、与えられたベクトルが張る空間の次元数を導出することとも言える。
ベクトル群 ⃗ai が張る空間の正規直交基底を求める方法として、行列の特異値分解を用いるというものがあるので、以下で説明を行う。
行列の特異値分解では、ベクトル ⃗ai が第 i 列を構成するような行列を A と定義したとき、すなわち、A =(⃗a1 ⃗a2· · · ⃗an ) としたとき、これを以下のように分解する。
A = UDVT(2)ベクトル ⃗ai の要素数を m とし、行数 m、列数 n の行列 X を Xm×n と記述するものとすると、サイズが m × nである行列 A の特異値分解は以下のように書ける。

Am×n = Um×m Dm×n (Vn×n )T

1 例えば、2 次元空間の基底ベクトルは (1, 0)、(0, 1) と言うことも出来るし、(1, 1)、(1, −1) と言うことも出来る。

1(3)また、行列 D は以下のような特殊な構造をもつ。
 2σ1 00 ···
2 0 σ2 0 · · ·
 00 σ32 · · ·

 .
..
..
..
 ..
.
.
.

Dm×n =  0000 0000
 .
..
..
..
 .
.
.
.
 .

00000···

00···

00···

0
σs200······

0..
.
00..
.

···
..
.

0···

00




0 

0 
 (0 D̂s×s
=0 00 
0 00)

0(4)なお、s ≤ n、s ≤ m である。
また、行列 V、U はユニタリ行列となる。すなわち、これらを

Vn×n= (⃗v1 ⃗v2· · · ⃗vs· · · ⃗vn ) ,(5)Um×m

= (⃗u1 ⃗u2······(6)⃗us⃗um )と記述したとき、ベクトル群 ⃗vi は n 次元空間の正規直交基底、ベクトル群 ⃗ui は m 次元空間の正規直交基底となる。すなわち、以下の式が成り立つ。

VVTUUT

VT V = I,=T=U U=I(7)(8)

ここで I は単位行列を示す。
式 (2) をAV = UD(9)

AT U = VDT(10)

もしくはのように変形することで、以下の式が導かれる。

(i ≤ s)A⃗vi=

σi2 ⃗ui ,A⃗vi=0,(i > s)

(12)

T=0,

(i > s)(13)

A ⃗ui(11)

さて、冒頭で述べたように、あるベクトル ⃗r をベクトル群 ⃗ai が張る空間の座標系で r⃗′ と記述するものとする。

⃗r = Ar⃗′
この式中の行列 A を特異値分解すると以下のように書き直せる。
σ12⃗v1T r⃗′
 2 T ⃗′  σ2 ⃗v2 r  T ′ ⃗v1 r⃗..
.
 T ⃗′ s ( ∑)r⃗v

2
2 T ⃗′
 = U  σ 2⃗v T r⃗′ =r⃗uiσ⃗v⃗r = UDVT r⃗′ = UD 
.
iiss
 . 
 . 
 i=10

T ⃗′

r
⃗vm..
.
0(14)(15)

すなわち、ベクトル群 ⃗ai の線形結合で記述される任意のベクトル ⃗r は、正規直交基底 ⃗ui の線形結合で記述されることが分かる。なお、⃗
ui に乗ぜられる係数を、以下では「結合係数」（もしくは展開係数）と呼称する。以上より、ベクトル群 ⃗ai について、それが張る部分空間の次元数は s であり、その正規直交基底は ⃗ui となる、ということが分かる。

2

問題３：問題１について、⃗ai が張る部分空間の次元数とその空間の正規直交基底を求めよ。
⃗ai の座標系で定義したベクトル ⃗r を ⃗ui の座標系で定義し直すとき、j 番目の座標軸（⃗uj ）での大きさは、「⃗ai 座標系での位置ベクトルと ⃗vj の内積」と「σj2 」の積となることが分かる。従って、ベクトル ⃗vi については、与えられた座標系を正規直交基底が張る座標系に変換するときの、変換後の座標系における i 番目の直交基底成分に対応する元の座標系での方向ベクトル、と解釈すればよいであろう。
∑例えば、式 (14) において、r⃗′ = ⃗vj 、つまり ⃗r = A⃗vj =vj,i⃗ai とした場合を考えよう。このとき、⃗vj は j ′ ̸= jiである ⃗vj ′ と直交することから、⃗r は次のように書ける。

⃗r =s∑()
σi2⃗viT ⃗vj ⃗ui = σj2 ⃗uj

(16)

i=1

これより、ベクトル ⃗r が結合係数を ⃗vj とした ⃗ai の線形結合で表される場合には ⃗r は ⃗uj の σj2 倍となっていること（ベクトル σj2 ⃗uj は結合係数を ⃗vj とした ⃗ai の線形結合で表されること）、また、⃗uj のノルム（大きさ）は 1 であるので ⃗r の大きさは σj2 となることが分かる。
また同様に、式 (14) において、r⃗′ = ⃗ej 、つまり ⃗r = A⃗ej = ⃗aj とした場合を考えよう（⃗ej は j 番目の要素のみ

1 で、それ以外の要素はゼロであるベクトルを示す）。これは、座標系を構成する基底ベクトル ⃗aj を正規直交基底で記述した場合を考えるのと同じ意味である。このとき、⃗r は以下のように書ける。

⃗r = ⃗aj =s∑(σi2⃗viT ⃗ej)⃗ui =i=1s∑

σi2 vi,j ⃗ui =i=1s∑βj,i ⃗ui(17)i=1

これより、ベクトル ⃗aj を ⃗ui の線形結合で記述した場合、その結合係数はベクトル ⃗vi の j 番目の要素 vi,j と σi2 の積となることが分かる。
ベクトル群 ⃗ai について、i に何らかのパラメータ p が関係づけられているとした場合（複数の pi に対してそれぞれ ⃗ai が与えられるような場合）、p について未知の値が与えられたときにそれに対応する ⃗a を ⃗ai からなる行列A の特異値分解を用いて推定することが出来る2 [1]。これまでの議論で、⃗ai は正規直交基底 ⃗ui により以下のように展開できることが分かっている。

⃗ai =s∑(s∑)σj2 vj,i ⃗uj =βi,j ⃗uj

j=1(18)j=1

ここで、展開係数 βi,j を βj (p) のように近似することが出来るのであれば、任意の p に対して ⃗a を以下の式で推定することが出来る。

⃗a(p) ≈s∑βj (p)⃗uj(19)j=1

具体的な手順としては、複数の (pi , ⃗ai ) のセットから βi,j を計算して pi と βi,j の関係を求め、個々の j について

βj の p に対する依存性を調べる。全ての j について（σj がある程度の大きさを持つ j について）この依存性を関数化することが出来れば、以上の手続きが可能となるであろう。
特異値分解は、Python の NumPy モジュールを使って行うとよいだろう。その実際に関しては、第 50 回炉物理夏期セミナーテキストにおける名大 · 遠藤先生のテキスト [2] 第 3 章が参考になるだろう（Dropbox の ResearchDocument
フォルダに置いてあります）。

参考文献[1] 山本章夫、「Reduced Order Model とシミュレーション」、第 50 回炉物理夏期セミナーテキスト、(2018).
[2] 遠藤知弘、「Python を利用した核計算 (1) 決定論手法」、第 50 回炉物理夏期セミナーテキスト、(2018).

2 「高度な内挿計算」と理解すればよいであろう。

3