雑学1473627 views
世界の国564562 views
教育149515 views
中学数学623778 views
LaTeX962207 views
高校日本史190578 views
高校生物551780 views
小学社会310495 views
小学理科719898 views
いろは3011036 views
Help
Tools
NewsSpreadsheetCalendarBookkeepingMarkdown TablesLanguage Model NewsSlidesTier 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 DelaunayFractalColumn ArithmeticDraw Math FiguresArithmetic AnimationArithmetic Word ProblemsCounting with Tree DiagramsCube NetsRolling DiceCross SectionsMotion PathMechanicsWavesElectromagnetic 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

シルベスターの判定法|主小行列式で正定値性を判定する

対称行列が正定値かどうかは、左上から順に取った小行列式の符号だけで決まります。

すべてが正なら正定値、そうでなければ正定値ではありません。固有値を求める必要はなく、行列式をいくつか計算するだけで済みます。

これをシルベスターの判定法といいます。判定できるのは正定値と負定値までで、半正定値には同じ形では使えません。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 220" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="230" y="22" font-size="11" fill="#9a9a9a" text-anchor="middle">左上から取った入れ子の小行列が、判定の材料になります</text>
	<rect x="140" y="45" width="180" height="140" fill="none" stroke="#c8c8c8" stroke-width="1"></rect>
	<line x1="185" y1="45" x2="185" y2="185" stroke="#e5e5e5" stroke-width="1"></line>
	<line x1="230" y1="45" x2="230" y2="185" stroke="#e5e5e5" stroke-width="1"></line>
	<line x1="275" y1="45" x2="275" y2="185" stroke="#e5e5e5" stroke-width="1"></line>
	<line x1="140" y1="80" x2="320" y2="80" stroke="#e5e5e5" stroke-width="1"></line>
	<line x1="140" y1="115" x2="320" y2="115" stroke="#e5e5e5" stroke-width="1"></line>
	<line x1="140" y1="150" x2="320" y2="150" stroke="#e5e5e5" stroke-width="1"></line>
	<rect x="140" y="45" width="45" height="35" fill="#1b81e0" fill-opacity="0.3"></rect>
	<rect x="140" y="45" width="90" height="70" fill="none" stroke="#1b81e0" stroke-width="1.5"></rect>
	<rect x="140" y="45" width="135" height="105" fill="none" stroke="#1b81e0" stroke-width="1"></rect>
	<text x="340" y="66" font-size="11" fill="#9a9a9a">1 次の小行列式</text>
	<text x="340" y="101" font-size="11" fill="#9a9a9a">2 次の小行列式</text>
	<text x="340" y="136" font-size="11" fill="#9a9a9a">3 次の小行列式</text>
	<text x="340" y="171" font-size="11" fill="#9a9a9a">全体の行列式</text>
	<text x="230" y="207" font-size="11" fill="#9a9a9a" text-anchor="middle">すべて正なら正定値です</text>
</svg>

シルベスターの判定法とは

次の対称行列 に対して、左上の 次の部分だけを取り出した行列を と書きます。その行列式を首座小行列式といいます。

判定法はこうです。 が正定値であることと、 がすべて正であることは同値です。

複素数まで広げるならエルミート行列に対して同じことが成り立ちます。首座小行列式は実数になるので、符号を比べられます。

首座小行列式とは

は、第 行から第 行と、第 列から第 列だけを残した行列です。取り出す位置は左上に固定されています。

行と列を同じ番号で選ぶ小行列式を主小行列式と呼び、そのうち番号が から までそろっているものが首座小行列式です。後で見るように、この違いが半正定値の話で効いてきます。

例:2 次で確かめる

まず 2 次の行列で試します。

首座小行列式は です。どちらも正なので正定値です。

固有値を求めると で、確かにどちらも正になります。判定法のほうは、固有多項式を解かずに済んでいます。

例:判定に落ちる 2 次の行列

非対角成分を大きくすると事情が変わります。

は正ですが、 で負になります。この時点で正定値ではありません。

実際 を入れると、二次形式は です。負の値を取るので正定値になりようがありません。

例:3 次の判定

3 次でも手順は同じです。左上から 3 つの行列式を順に計算します。

です。すべて正なので正定値と分かります。

3 つの行列式を計算するだけで済みました。固有値を求めるには 3 次方程式を解く必要があるので、手間はずいぶん違います。

例:文字を含む行列で条件を求める

成分に文字が入っていても、そのまま条件を出せます。

はつねに正です。 が正になる条件は です。

つまり のときに限り正定値です。固有値は なので、同じ条件が出ます。

3 次でも同じように進みます。対角に を並べ、 成分だけを にした行列なら、条件は から です。

必要であることの証明

が正定値なら、 も正定値です。後ろの座標を に固定したベクトルを考えると、二次形式が の二次形式に一致するからです。

正定値な行列の固有値はすべて正なので、行列式も正になります。固有値の積が行列式だからです。

したがって、正定値なら首座小行列式はすべて正です。こちらの向きは易しく片づきます。

十分であることの証明

逆向きは次数についての帰納法で示します。 がすべて正だとします。

は帰納法の仮定から正定値です。 をブロックに分け、 を軸にしてシューア補元 を作ります。

行列式はブロックごとに分かれるので です。両側が正なので が出ます。

合同変換によって を並べた形に移ります。どちらも正定値なので も正定値です。この筋は、コレスキー分解が最後まで進むことの証明と同じものです。

負定値は符号が交互になる

が負定値であることは、 が正定値であることと同じです。 なので、条件は符号が交互に並ぶことになります。

奇数次の首座小行列式が負、偶数次が正であれば負定値です。 次で負、 次で正、 次で負、と続きます。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 180" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="230" y="24" font-size="11" fill="#9a9a9a" text-anchor="middle">首座小行列式の符号のならび</text>
	<text x="120" y="70" font-size="12" fill="#1f1f1f" text-anchor="end">正定値</text>
	<text x="150" y="70" font-size="16" fill="#1b81e0" text-anchor="middle">+</text>
	<text x="200" y="70" font-size="16" fill="#1b81e0" text-anchor="middle">+</text>
	<text x="250" y="70" font-size="16" fill="#1b81e0" text-anchor="middle">+</text>
	<text x="300" y="70" font-size="16" fill="#1b81e0" text-anchor="middle">+</text>
	<text x="350" y="70" font-size="12" fill="#9a9a9a" text-anchor="middle">...</text>
	<text x="120" y="120" font-size="12" fill="#1f1f1f" text-anchor="end">負定値</text>
	<text x="150" y="120" font-size="16" fill="#9a9a9a" text-anchor="middle">-</text>
	<text x="200" y="120" font-size="16" fill="#1b81e0" text-anchor="middle">+</text>
	<text x="250" y="120" font-size="16" fill="#9a9a9a" text-anchor="middle">-</text>
	<text x="300" y="120" font-size="16" fill="#1b81e0" text-anchor="middle">+</text>
	<text x="350" y="120" font-size="12" fill="#9a9a9a" text-anchor="middle">...</text>
	<text x="150" y="148" font-size="11" fill="#9a9a9a" text-anchor="middle">1 次</text>
	<text x="200" y="148" font-size="11" fill="#9a9a9a" text-anchor="middle">2 次</text>
	<text x="250" y="148" font-size="11" fill="#9a9a9a" text-anchor="middle">3 次</text>
	<text x="300" y="148" font-size="11" fill="#9a9a9a" text-anchor="middle">4 次</text>
	<text x="230" y="172" font-size="11" fill="#9a9a9a" text-anchor="middle">どちらでもなければ、正定値でも負定値でもありません</text>
</svg>

例:負定値の判定

符号を反転した行列で試します。

で負、 で正です。負、正と交互に並んでいるので負定値です。

固有値は で、どちらも負になります。

半正定値には同じ形が使えない

不等号をゆるめて「すべて 以上」にすれば半正定値の判定になる、と考えたくなります。これは成り立ちません。

首座小行列式は左上からしか取らないので、右下に隠れた負の成分を見落とすからです。

例:見落としが起きる行列

対角に を並べた行列を考えます。

で、どちらも 以上です。ゆるめた条件は満たしています。

ところが を入れると二次形式は です。半正定値ではありません。

次の首座小行列式が になったせいで、そこから先の情報が消えてしまいました。左上だけを見る弱点がはっきり出た例です。

半正定値ではすべての主小行列式を見る

正しい判定は、首座に限らずすべての主小行列式を調べることです。行と列を同じ番号で選ぶ取り方を、すべて試します。

次なら 通りあります。首座小行列式の 個に比べると、ずいぶん増えます。

このすべてが 以上であることと、半正定値であることが同値です。負定値の側も同様に、奇数次が 以下、偶数次が 以上という条件になります。

例:すべての主小行列式を調べる

さきほどの で試します。第 行と第 列だけを残すと が出てきます。

主小行列式のひとつが負なので、半正定値ではないと正しく判定できました。首座だけを見たときとの違いです。

半正定値な例も見ておきます。成分がすべて の 3 次の行列では、 次の主小行列式はすべて 次と 次はすべて です。

どれも 以上なので半正定値です。実際、この行列の二次形式は で、負にはなりません。

対称性が前提になる

判定法は、対称行列やエルミート行列にしか使えません。対称でない行列に当てはめると、正しくない結論が出ます。

そもそも二次形式 は、 の対称部分だけで決まります。判定したいなら、先に対称部分を取り出してから使ってください。

例:対称でない行列で誤る

次の行列で確かめます。対称ではありません。

首座小行列式は で、どちらも正です。判定法をそのまま使えば正定値と出てしまいます。

ところが を入れると、二次形式は です。正定値ではありません。

対称部分を作ると で、その行列式は です。こちらで判定すれば、正定値でないことが正しく分かります。

二次形式の平方完成との対応

首座小行列式は、平方完成の途中に現れる係数と結びついています。 番目の平方の係数は です。

すべての首座小行列式が正なら、この比もすべて正になります。二次形式が正の係数だけの平方和に書けるので、値は正です。

コレスキー分解の対角成分は、この比の平方根にあたります。判定法と分解が同じ計算を見ているわけです。

ほかの判定法との比較

固有値をすべて求めて正であることを確かめる方法は、意味の上ではいちばん素直です。ただし 次を超えると手では解けません。

コレスキー分解を試みる方法は、数値計算では標準です。途中で平方根の中身が負になれば、そこで正定値でないと分かります。

シルベスターの判定法は、次数が小さいときと、記号のまま議論したいときに向きます。文字を含む行列で条件を出すような場面では、この形がいちばん扱いやすくなります。

計算量

首座小行列式を 個、定義どおりに計算すると重くなります。 次の行列式それぞれに手数がかかるからです。

順に消去していけば、 回の掃き出しで全部の首座小行列式が手に入ります。上三角に直したときの対角成分の積が、そのまま各段階の行列式になるからです。

この形で計算すると、コレスキー分解とほとんど同じ手数になります。判定法が実用になるのは、この見方をしたときです。

他の話題とのつながり

正定値行列そのものの性質は正定値行列と半正定値行列の記事に、二次形式の標準形は二次形式と標準形の記事にあります。

証明に使ったシューア補元はブロック行列とシューア補元の記事で、分解との関係はコレスキー分解の記事で扱っています。

最適化では、ヘッセ行列が正定値かどうかで極小の判定をします。そこでもこの判定法が顔を出します。

例:ヘッセ行列で極小を判定する

2 変数の関数 を考えます。原点で偏微分がどちらも になります。

2 階偏導関数を並べたヘッセ行列は、定数行列になります。

首座小行列式は で、どちらも正です。したがって は正定値で、原点は極小になります。

高校で習う判別式 は、この判定法を 2 変数で書いたものにほかなりません。

よくある誤り

不等号をゆるめても半正定値の判定にはなりません。対角に を並べた行列が反例です
主小行列式と首座小行列式は別物です。判定法で使うのは左上から取ったほうだけで、半正定値ではすべてを見ます
対称でない行列に使うと誤った結論が出ます。二次形式を決めるのは対称部分なので、そちらで判定してください
首座小行列式が途中で になったら、そこで打ち切ってはいけません。正定値でないことは言えますが、半正定値かどうかは別に調べる必要があります
行列式が正であることだけでは足りません。 が 2 つ並ぶ行列でも行列式は正になります
右下から取った小行列式で判定する流儀もありますが、左上と混ぜてはいけません。どちらかにそろえて使います
固有値がすべて正であることと同値ですが、判定法そのものは固有値を求めません。同値なだけで、計算の中身は違います

参考文献

Sylvester's criterion - Wikipedia
Hauptminorenkriterium - Wikipedia(ドイツ語)
Critère de Sylvester - Wikipédia(フランス語)
Criterio de Sylvester - Wikipedia(スペイン語)
正定矩阵 - 维基百科(中国語)
対称行列が正定値かどうかは、左上から順に取った小行列式の符号だけで決まります。判定法の主張と証明、負定値では符号が交互になること、不等号をゆるめても半正定値の判定にはならない反例、そのときはすべての主小行列式を見ること、対称でない行列に使うと誤ることを、計算例をつけて解説します。