英語613685 views
高校国語788355 views
MathPython497416 views
数学講師2886596 views
雑学1473627 views
高校倫理1440172 views
中学数学623778 views
高校物理160216 views
りんご209693 views
高校化学2924523 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

回転行列|加法定理からロドリゲスの公式、軸と角の読み方まで

平面のベクトルを原点のまわりに だけ回す操作は、次の行列を掛けることで書けます。

長さも角度も変えないので、直交行列になります。しかも行列式は で、向きを裏返しません。

3 次元では回転軸が加わり、話が少し複雑になります。順序を変えると結果が違う、という現象もここから出てきます。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 230" 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>
	<circle cx="230" cy="130" r="70" fill="none" stroke="#e5e5e5" stroke-width="1"></circle>
	<line x1="140" y1="130" x2="330" y2="130" stroke="#e5e5e5" stroke-width="1"></line>
	<line x1="230" y1="45" x2="230" y2="215" stroke="#e5e5e5" stroke-width="1"></line>
	<line x1="230" y1="130" x2="300" y2="130" stroke="#9a9a9a" stroke-width="1"></line>
	<polygon points="304,130 295,126 295,134" fill="#9a9a9a"></polygon>
	<text x="308" y="127" font-size="11" fill="#9a9a9a">e<tspan font-size="8" dy="3">1</tspan></text>
	<line x1="230" y1="130" x2="284" y2="86" stroke="#1b81e0" stroke-width="1.5"></line>
	<polygon points="288,83 278,84 283,91" fill="#1b81e0"></polygon>
	<text x="292" y="80" font-size="11" fill="#1b81e0">1 列目</text>
	<line x1="230" y1="130" x2="230" y2="60" stroke="#9a9a9a" stroke-width="1"></line>
	<polygon points="230,56 226,65 234,65" fill="#9a9a9a"></polygon>
	<text x="238" y="58" font-size="11" fill="#9a9a9a">e<tspan font-size="8" dy="3">2</tspan></text>
	<line x1="230" y1="130" x2="186" y2="76" stroke="#1b81e0" stroke-width="1.5"></line>
	<polygon points="183,73 187,83 192,76" fill="#1b81e0"></polygon>
	<text x="140" y="70" font-size="11" fill="#1b81e0">2 列目</text>
	<path d="M 275 130 A 45 45 0 0 0 262 101" fill="none" stroke="#1b81e0" stroke-width="1"></path>
	<text x="286" y="112" font-size="11" fill="#1b81e0">θ</text>
	<text x="230" y="222" font-size="11" fill="#9a9a9a" text-anchor="middle">長さは変わらず、直交したまま回ります</text>
</svg>

2 次元の回転行列

原点のまわりに反時計回りで 回す写像は線形です。だから行列で書けます。

その行列を求めるには、基本ベクトルの行き先を見れば足ります。 へ、 へ移ります。

行列の列は基本ベクトルの行き先なので、この 2 本を並べたものが です。第 2 列の符号は、 を回すと左上へ向かうことから決まります。

直交行列で行列式が 1

列は長さ で互いに直交します。 と、2 列の内積が から確かめられます。

したがって が成り立ち、 は直交行列です。行列式は です。

直交行列の行列式は に限られます。 のほうが回転で、 は向きを裏返す変換にあたります。

逆回転は転置で得られる

です。逆に回せばもとに戻る、という当たり前の事実を式にしたものです。

を入れると、 の転置になります。逆行列を求める計算は要りません。

例:具体的な角で回す

の行列を作ります。

に掛けると に移ります。長さは で、もとと同じです。

なら です。こちらも長さは で、行き先どうしの内積も になります。

積は角の和になる

2 回続けて回せば、角は足されます。行列の積で書けば次のとおりです。

平面の回転どうしは順序を入れ替えられます。 が同じだからです。

例:積から加法定理が出る

左辺を成分で計算します。 成分は です。

右辺の 成分は なので、余弦の加法定理が出てきます。 成分を比べれば正弦の加法定理です。

具体的な数でも確かめられます。 を計算すると となり、 に一致します。

例:有理数だけでできる回転

角が特別な値でなくても、成分が有理数になることがあります。 の直角三角形を使います。

なので、確かに回転行列です。

角そのものは で、きれいな値にはなりません。それでも成分は分数だけで書けます。

3 次元:座標軸まわりの回転

軸を決めれば、3 次元の回転も行列で書けます。 軸まわりなら、 成分はそのままで、 平面の中だけが回ります。

軸まわりと 軸まわりも同じ形です。動かない軸の位置に が入り、残りの 2 次のブロックが平面の回転になります。

軸まわりだけは符号の位置が違って見えます。 から へ回る向きが正なので、 の符号が入れ替わるからです。

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>
	<ellipse cx="230" cy="140" rx="110" ry="35" fill="#1b81e0" fill-opacity="0.08" stroke="#c8c8c8" stroke-width="1"></ellipse>
	<line x1="230" y1="185" x2="230" y2="50" stroke="#1f1f1f" stroke-width="1.5"></line>
	<polygon points="230,44 226,54 234,54" fill="#1f1f1f"></polygon>
	<text x="240" y="52" font-size="12" fill="#1f1f1f">軸 n</text>
	<line x1="230" y1="140" x2="330" y2="128" stroke="#9a9a9a" stroke-width="1"></line>
	<polygon points="335,127 326,124 327,132" fill="#9a9a9a"></polygon>
	<text x="340" y="124" font-size="11" fill="#9a9a9a">x</text>
	<line x1="230" y1="140" x2="300" y2="163" stroke="#1b81e0" stroke-width="1.5"></line>
	<polygon points="305,165 296,160 295,168" fill="#1b81e0"></polygon>
	<text x="308" y="176" font-size="11" fill="#1b81e0">回した先</text>
	<path d="M 300 133 A 75 24 0 0 0 288 156" fill="none" stroke="#1b81e0" stroke-width="1"></path>
	<text x="312" y="148" font-size="11" fill="#1b81e0">θ</text>
	<circle cx="230" cy="140" r="3" fill="#1f1f1f"></circle>
	<text x="230" y="208" font-size="11" fill="#9a9a9a" text-anchor="middle">軸の方向の成分は変わりません</text>
</svg>

例:z 軸まわりに 90 度回す

を入れると、 です。

軸方向の へ移ります。 軸が 軸へ倒れる向きです。

軸方向の は動きません。第 3 列が のままであることが、そのまま軸の不動を表しています。

任意の軸まわりの回転

単位ベクトル を軸として 回す行列は、次の式で書けます。ロドリゲスの回転公式といいます。

は外積を表す交代行列で、 を満たします。

3 つの項の役割は分かれています。 は軸方向の成分を取り出し、残りが軸に垂直な平面の中での回転を作ります。

例:ロドリゲスの公式で置換行列を作る

軸を 、角を とします。 です。

は成分がすべて の行列、 倍の交代行列になります。公式に入れると、係数がきれいに整理されます。

座標を巡回させる置換行列が出てきました。 軸が 軸へ、 軸が 軸へ、 軸が 軸へ移ります。

のまわりに 回すと 3 本の座標軸が入れ替わる、という図形の事実が、行列の形で確かめられました。

トレースと固有値から軸と角が読める

3 次の回転行列のトレースは、角だけで決まります。

固有値は です。固有値 に対応する固有ベクトルが回転軸で、その方向だけが動きません。

行列が与えられたとき、トレースから角を、 を解いて軸を求められます。回転の情報が、この 2 つに集約されています。

例:置換行列から軸と角を読む

さきほどの置換行列を、公式を知らないつもりで調べます。

トレースは です。 から 、つまり が出ます。

軸は を解けば求まります。 から の定数倍です。

行列を見ただけでは分かりにくい軸と角が、2 つの手順で取り出せました。

3 次元では順序を変えると結果が違う

平面の回転は入れ替えられますが、3 次元では成り立ちません。軸が違えば、掛ける順序で結果が変わります。

例:順序を入れ替えてみる

軸まわりと 軸まわりの 回転を、順序を変えて掛けます。

まるで違う行列です。後者はさきほどの置換行列で、軸は です。前者の軸を求めると の方向になります。

本を持って、机の上で 2 通りの順に回してみると、向きが食い違うことがすぐ分かります。

行列式が -1 なら鏡映が混じる

直交行列の行列式は です。 のほうは、回転だけでは作れません。

たとえば 平面に関する鏡映です。右手系が左手系に変わるので、どんなに回しても一致しません。

回転行列とは、直交行列のうち行列式が のものを指します。この集まりを と書き、回転群と呼びます。

例:鏡映を 2 回すると回転になる

行列式が どうしを掛ければ、行列式は に戻ります。鏡映を 2 回続けると回転になる、ということです。

軸に関する鏡映と、直線 に関する鏡映を用意します。

どちらも行列式は です。積を作ります。

の回転が出てきました。2 本の鏡の間の角は なので、その 2 倍だけ回ったことになります。

順序を入れ替えると の回転になります。鏡映どうしも、掛ける順序で結果が変わります。

別の表し方

3 つの角で表すオイラー角は、座標軸まわりの回転を 3 回続ける書き方です。使う軸の順序に流儀がいくつもあり、混乱のもとになります。

交代行列を指数関数に入れる書き方もあります。 の像が回転になり、ロドリゲスの公式は を展開したものにあたります。

四元数を使う表し方は、成分が 4 つで済み、合成も掛け算だけで書けます。計算機で姿勢を扱うときは、この形がよく使われます。

他の話題とのつながり

直交行列そのものの性質は、ユニタリ行列と直交行列の記事にあります。交代行列と回転の関係は交代行列の記事で、指数関数の一般論は行列の指数関数の記事で扱っています。

QR 分解で使うギブンス回転は、 次の回転を大きな行列の一部に埋め込んだものです。成分をひとつずつ消すのに使われます。

よくある誤り

直交行列がすべて回転を表すわけではありません。行列式が なら鏡映が混じっています
3 次元の回転は順序を入れ替えられません。 は別の回転です
軸まわりだけ符号が違って見えるのは書き間違いではありません。軸の向きと回る向きの約束から出てきます
行列を掛ける順序と、回す順序は逆に並びます。先に施す回転が右側に来ます
トレースから求まるのは角の大きさで、向きまでは決まりません。軸の符号と合わせて考える必要があります
2 次元の回転行列に固有ベクトルはありません。実数の範囲では、どの向きも自分自身へは戻らないからです
回転行列の積は回転行列ですが、和は回転行列になりません。 は直交行列ですらありません
オイラー角には特異点があります。ある姿勢で自由度がひとつ失われ、角が一意に決まらなくなります

参考文献

Rotation matrix - Wikipedia
Drehmatrix - Wikipedia(ドイツ語)
Matrice de rotation - Wikipédia(フランス語)
旋转矩阵 - 维基百科(中国語)
平面のベクトルを原点のまわりに回す操作は、行列の掛け算で書けます。列が基本ベクトルの行き先になること、直交行列で行列式が 1 であること、積が角の和になり加法定理が出ること、3 次元での軸まわりの回転とロドリゲスの公式、トレースと固有ベクトルから軸と角を読む方法を、計算例をつけて解説します。