いろは3013586 views
高校生物551985 views
小学社会310647 views
世界の国564972 views
中学社会669002 views
Computer368461 views
高校化学2925825 views
高校国語788606 views
LaTeX962713 views
MathPython498072 views
Help
Tools
NewsSpreadsheetCalendarBookkeepingMarkdown TablesLanguage Model NewsLinux CommandsSlidesTier ListPen ToolIllustrationCrayonWatercolorPixel ArtASCII ArtPerspectiveEndless StairsGraphMind MapER DiagramFamily TreeMemeCurved TextImage EditorMosaicRetro FilterPencil SketchSwirl EffectLine ArtOCR/HighlighterMakeup EditorFaviconVideo TrimmerScrolling VideoVideo TitleColor PickerColor ExtractorBonfireFireworksCherry BlossomWater RippleWater SplashBreaking GlassGlass TextureFabric TextureWood GrainMarble TextureBrick Wall TextureMetal TextureWashi Paper TextureCardboard TextureCSS ButtonIcon MakerBar ChartGrouped Bar ChartStacked Bar ChartPie ChartLine ChartArea ChartStacked Area ChartScatter Plot3D Bar Chart3D Pie ChartBar Chart RaceBubble ChartPopulation PyramidPictogramEarningsCandlestick ChartInvestment RiskMortgage SimulatorCalculatorMatrix CalculatorFunction GraphPolynomial ExpansionVenn DiagramField VisualizerRubik's Cube Group TheoryTraveling SalesmanVoronoi and DelaunayFractalUniversity Entrance Exam MathColumn ArithmeticDraw Math FiguresArithmetic AnimationArithmetic Word ProblemsCounting with Tree DiagramsCube NetsRolling DiceCross SectionsMotion PathMechanicsWavesUniversity Entrance Exam Physics解析力学Quantum MechanicsStatistical MechanicsRelativityCelestial MechanicsAstrophysicsCosmologyElectromagnetic WavesCapacitorsLight and LensesThermodynamicsHow Semiconductors WorkMolecular StructuresAtomic OrbitalsElectrochemical CellsChemical EquilibriumCrystal LatticesBuffer pHOrganic Reaction MapPeriodic TableComplex IonsDNA Double HelixCell DivisionMembrane ChannelsNerve ImpulseMuscle ContractionHormones and HomeostasisRock ClassificationWeatherConstellationsSolar and Lunar Eclipses3D ModelingFloor PlanSeismic StructuresIntersection TurnMaglevCooking AnimationOrigamiLive Viewer CountGeoJSON MapRailway MapPopulation MapCrime MapLand Price MapSchool MapShrine and Castle MapHouse of Representatives MapWord MapSolitaireReversiHakoiri MusumeChessHamburgerRippleSlide Puzzle MakerNeon PinballNovel MakerJapanese Typing PracticePiano Score EditorMusic TheoryShogi StrategyPiano Rhythm Game

English

基底の変換行列|列の並べ方から相似変換まで

同じベクトルでも、どの基底で測るかによって座標の数値は変わる。基底を取り替えたときに座標がどう動くかを表すのが、基底の変換行列である。

の列には、新しい基底を古い基底で表した座標が並ぶ。基底が新しいほうへ動くと、座標は逆行列のほうへ動く。この向きの食い違いが、この話のいちばんの山になる。

変換行列の定義

次元のベクトル空間とし、 を 2 つの基底とする。

新しい基底のベクトルは、古い基底の一次結合で書ける。

この係数を第 列に並べた行列 を、 から への基底の変換行列という。列が新しい基底の座標である、という点だけ押さえておけばよい。

記号や向きの取り方は本によって違う。 を掛ける向きがどちらか、毎回確かめてから使う。

例:標準基底から新しい基底へ

平面で標準基底から次の組へ取り替える。

標準基底で測った座標は、成分そのものである。したがって、この 2 本をそのまま列に並べれば変換行列になる。

標準基底が絡む場合は、書き下すだけで行列ができあがる。連立方程式を解く必要はない。

座標は逆行列で移る

新しい基底での座標に を掛けると、古い基底での座標になる。逆向きの変換は逆行列で書ける。

つまり、新しい座標を求めたいときは逆行列のほうを使う。基底の並べ方と座標の動き方が、ちょうど逆になっている。

例:座標を求める

先ほどの を使い、 の新しい座標を求める。行列式が なので逆行列は次のようになる。

これを に掛けると が得られる。実際に を計算すると になり、もとのベクトルに戻る。

同じ点が、標準基底では 、新しい基底では と呼ばれることになる。

例:3 次元で取り替える

新しい基底を とする。列に並べた行列の行列式は 2 なので、正則である。

逆行列を求めると、成分がすべて の行列になる。

に掛けると、新しい座標は である。実際に を計算すると に戻る。

なぜ逆行列が出るのか

理由は、基底と座標がベクトルを挟んで釣り合っているところにある。 を 2 通りに書き下してみる。

右の式で を古い基底に展開すると、 の係数は になる。座標の一意性から、これが に等しい。

これを行列で書いたものが である。 は新しい基底を古い基底へ展開するために使われるので、座標に対しては逆向きに働く。

変換行列は恒等写像の表現行列

見方を変えると、 は何も動かさない写像の表現行列である。入口の基底を 、出口の基底を に取ったときの恒等写像がそれにあたる。

写像としては何もしていないのに、行列が単位行列にならない。入口と出口で目盛りが違うからである。

この見方に立つと、後で出てくる規則がすべて表現行列の話に吸収される。取り替えを続けたときに積になることも、恒等写像の合成として説明できる。

基底と座標は逆向きに動く

基底のベクトルを 2 倍に伸ばすと、同じ点を指すのに必要な係数は半分になる。目盛りを粗くすれば、読み取る数値は小さくなる。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 210" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="115" y="24" font-size="11" fill="#1f1f1f" text-anchor="middle">もとの基底</text>
	<line x1="30" y1="160" x2="210" y2="160" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="55" y1="185" x2="55" y2="50" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="55" y1="160" x2="95" y2="160" stroke="#1b81e0" stroke-width="2"></line>
	<polygon points="100,160 91,156 91,164" fill="#1b81e0"></polygon>
	<circle cx="175" cy="160" r="3.5" fill="#d0562a"></circle>
	<text x="70" y="178" font-size="11" fill="#1b81e0">e</text>
	<text x="160" y="146" font-size="11" fill="#d0562a">座標 3</text>
	<line x1="95" y1="168" x2="135" y2="168" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="135" y1="168" x2="175" y2="168" stroke="#c8c8c8" stroke-width="1"></line>
	<text x="340" y="24" font-size="11" fill="#1f1f1f" text-anchor="middle">基底を 2 倍にする</text>
	<line x1="255" y1="160" x2="435" y2="160" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="280" y1="185" x2="280" y2="50" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="280" y1="160" x2="360" y2="160" stroke="#1b81e0" stroke-width="2"></line>
	<polygon points="365,160 356,156 356,164" fill="#1b81e0"></polygon>
	<circle cx="400" cy="160" r="3.5" fill="#d0562a"></circle>
	<text x="315" y="178" font-size="11" fill="#1b81e0">2e</text>
	<text x="378" y="146" font-size="11" fill="#d0562a">座標 1.5</text>
	<text x="230" y="200" font-size="11" fill="#9a9a9a" text-anchor="middle">同じ点でも、目盛りを粗くすると読み取る数値は小さくなる</text>
</svg>

平面全体で見ると、格子の目が変わることに対応する。点は動かず、点に付ける名前だけが変わる。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 200" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="230" y="22" font-size="11" fill="#9a9a9a" text-anchor="middle">同じ点に、2 通りの座標がつく</text>
	<line x1="60" y1="150" x2="400" y2="150" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="150" y1="180" x2="150" y2="45" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="150" y1="150" x2="330" y2="60" stroke="#9a9a9a" stroke-width="1" stroke-dasharray="4 3"></line>
	<line x1="150" y1="150" x2="290" y2="180" stroke="#9a9a9a" stroke-width="1" stroke-dasharray="4 3"></line>
	<line x1="150" y1="150" x2="196" y2="127" stroke="#1b81e0" stroke-width="2"></line>
	<polygon points="201,124 191,124 194,131" fill="#1b81e0"></polygon>
	<line x1="150" y1="150" x2="185" y2="158" stroke="#d0562a" stroke-width="2"></line>
	<polygon points="190,159 181,161 182,154" fill="#d0562a"></polygon>
	<circle cx="288" cy="128" r="4" fill="#1f1f1f"></circle>
	<text x="200" y="118" font-size="11" fill="#1b81e0">v1</text>
	<text x="192" y="172" font-size="11" fill="#d0562a">v2</text>
	<text x="296" y="122" font-size="11" fill="#1f1f1f">同じ点</text>
	<text x="230" y="190" font-size="11" fill="#9a9a9a" text-anchor="middle">格子の目が変わるだけで、点そのものは動かない</text>
</svg>

点を動かす操作とは別物である

基底の取り替えでは、空間の点は 1 つも動かない。動くのは、点に付けた座標という名前だけである。

線形写像を施す操作とは向きが逆になる。 を座標に掛ける計算だけを見ると同じ形だが、意味していることが違う。

同じ行列が、写像の表現行列としても変換行列としても現れる。どちらの意味で使っているのかを、そのつど区別しておく。

変換行列は必ず正則である

には逆行列が必ず存在する。新しい組が基底であることと、 が正則であることが同値だからである。

行列式が 0 なら、新しい組のどれかが他の一次結合になっている。それでは全体を張れないので、基底になれない。

逆に が正則なら、逆向きの取り替えも同じ形で書ける。 から への変換行列になる。

例:正則でない組は基底にならない

を新しい基底にしようとする。並べた行列の行列式は である。

第 2 のベクトルが第 1 の 2 倍なので、この 2 本では平面を張れない。座標が決まらない点が出てしまう。

変換行列を作る前に行列式を確かめれば、この種の取り違えは防げる。

2 つの基底がどちらも標準でない場合

新しい基底を古い基底で表す作業が必要になる。列ごとに連立方程式を解くか、標準基底を経由すればよい。

標準基底から への行列を 、標準基底から への行列を とする。すると から への変換行列は になる。

いったん標準基底へ戻してから進む、と読める。手計算では、この経由のほうが速いことが多い。

例:2 つの基底の間の変換行列を作る

を取る。 の各ベクトルを で表す。

である。 になる。

での座標が の点は、 では である。実際にどちらの式で計算しても、点は になる。

取り替えを続けると積になる

基底を から へ、さらに へ取り替える。それぞれの変換行列を とする。

このとき から への変換行列は である。座標のほうは を順に掛けることになる。

順序を取り違えると別の行列になる。行列の積は交換できないので、どちらの取り替えが先かをはっきりさせておく。

逆向きの取り替えは逆行列

から への変換行列が なら、 から へは である。往復すれば単位行列に戻る。

これは前節の規則の特別な場合でもある。 から へ行って戻れば、基底は変わっていない。

例:往復すると単位行列に戻る

先ほどの を 2 乗すると になる。したがって である。

を掛ければ単位行列である。座標の側で見ると、変換して戻せば元の数値に戻るということになる。

正規直交基底どうしなら直交行列になる

どちらの基底も正規直交なら、変換行列は直交行列になる。列が正規直交ベクトルそのものだからである。

このとき逆行列を求める必要がない。転置を取るだけで、逆向きの変換行列が手に入る。

長さと角度が保たれるので、座標を取り替えても内積の値は変わらない。直交座標系を回すだけの操作にあたる。

例:直交行列になる取り替え

先ほどの 2 本を長さ 1 にそろえる。

各列の長さは 1 で、2 列は直交している。 を計算すると単位行列になる。

正規化する前の は直交行列ではない。列の長さが なので、逆行列は転置と一致しない。

多項式の空間でも同じ手順が使える

数ベクトル空間でなくても、基底さえあれば同じ話になる。2 次以下の多項式の空間で、 から へ取り替えてみる。

新しい基底を古い基底で表すと、 などとなる。係数を列に並べる。

上三角で対角成分が 1 なので、行列式は 1 である。正則なので、新しい組もきちんと基底になっている。

例:x の多項式を x-1 の多項式に書き直す

の新しい座標を求める。古い座標は である。

を計算すると、対角の上の符号が変わって になる。これを掛けると新しい座標は である。

右辺を展開すれば に戻る。テイラー展開で中心をずらす操作が、基底の取り替えとして書けている。

表現行列の変わり方

線形写像の表現行列も、基底を取り替えると変わる。 での表現行列を での表現行列を とすると次の関係になる。

右から で座標を古いほうへ直し、 で写し、 で新しいほうへ戻す、という 3 段階である。

この形の関係を相似という。同じ写像を別の基底で見ているだけなので、固有値や行列式のように基底によらない量は変わらない。

他の話題とのつながり

表現行列の作り方そのものは、線形写像の表現行列の記事で扱う。基底を選ぶと写像が行列になる、という対応がそちらの主題である。

相似な行列の性質や、どの不変量が保たれるかは相似の記事にある。対角化は、表現行列がいちばん簡単になる基底を探す操作だと読める。

正規直交基底へ取り替える手続きは、グラム・シュミットの正規直交化である。そこで作った基底なら、変換行列は直交行列になる。

よくある誤り

変換行列の列に、古い基底を新しい基底で表した座標を並べてしまう。向きが逆になり、答えが逆行列になる
座標の変換に をそのまま掛ける。新しい座標を求めるときに使うのは である
基底を取り替えるとベクトルそのものが動くと考える。動くのは座標という名前のほうで、点は動かない
連続する取り替えの順序を逆にする。行列の積は交換できないので、どちらが先かで結果が変わる
どんな正方行列でも変換行列になれると考える。行列式が 0 なら、新しい組は基底にならない
正規直交でない基底でも転置で逆行列が作れると思い込む。転置で済むのは、列が正規直交のときだけである
表現行列の変わり方を と書く。座標をどちら向きに直すかで、 の位置が決まる

参考文献

Change of basis - Wikipedia
Basiswechsel (Vektorraum) - Wikipedia(ドイツ語)
Matrice de passage - Wikipédia(フランス語)
基底を取り替えると、同じベクトルでも座標の数値が変わります。変換行列の列に何を並べるか、座標が逆行列で移る理由、行列が必ず正則になること、取り替えを続けると積になること、正規直交基底どうしなら直交行列になること、多項式の空間での使い方、表現行列が相似で移ることまでを、計算例をつけて解説します。