行列:行列の計算方法

「行列:行列の計算方法」の編集履歴(バックアップ)一覧はこちら

行列:行列の計算方法」(2011/05/09 (月) 21:44:55) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p><strong>単位行列が初期化なのは何故か?という事を説明するには行列の計算方法を<br /> 知らなければなりません。<br /> 行列も普通の計算と同じで和差積商(加減乗除)があります。<br /> 和は足し算、差は引き算、積はかけ算、商は割り算の事です。</strong></p> <p><strong>行列と行列の和,差を行うには、行列の型が同じでなければなりません。<br /> つまり、行列Aと行列Bの和(または差)を行う場合、互いの行数と列数が<br /> 等しくなければできません。<br /> 例えば以下のようになります。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=wasa.png" /></strong></p> <p><strong>続いて、行列の積ですが、まず、行列の実数倍という物があり、</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=jissu.png" /></strong></p> <p><strong>そして、行列と行列の積は左行列の列数と右行列の行数が<br /> 同じでなければできません。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=can.png" /></strong></p> <p><strong>さらに、m行 p列の行列 と p行 n列の行列の積は m行 n列の行列となります。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=mn.png" /></strong></p> <p><strong>具体的な計算の例を以下に示します。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=calc.png" /></strong></p> <p><strong>行列の商というのはないそうです。(逆行列のような特殊なケースの場合のみ存在する?)</strong></p> <p><strong>では単位行列の積を行うと、どういった事が起こるのか見てみます。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=iden.png" /></strong></p> <p><strong>どうでしょう?左行列がそのまま解になっていますね。<br /> つまり掛け算で 1 を掛けるのと同じです。<br /> OpenGL では glMatrixMode(GL_PROJECTION); と glMatrixMode(GL_MODELVIEW); で<br /> 行列を切り替えますが 単位行列を掛け合わせてやらないと、ずっと最終的な行列の値に<br /> 行列を掛け合わせる事になります。<br /> では、次回、glLoadIdentity(); を置き換えてみます。</strong></p> <p> </p> <p> </p> <p> </p>
<p><strong>単位行列が初期化なのは何故か?という事を説明するには行列の計算方法を<br /> 知らなければなりません。<br /> 行列も普通の計算と同じで和差積商(加減乗除)があります。<br /> 和は足し算、差は引き算、積はかけ算、商は割り算の事です。</strong></p> <p><strong>行列と行列の和,差を行うには、行列の型が同じでなければなりません。<br /> つまり、行列Aと行列Bの和(または差)を行う場合、互いの行数と列数が<br /> 等しくなければできません。<br /> 例えば以下のようになります。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=wasa.png" /></strong></p> <p><strong>続いて、行列の積ですが、まず、行列の実数倍という物があり、</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=jissu.png" /></strong></p> <p><strong>そして、行列と行列の積は左行列の列数と右行列の行数が<br /> 同じでなければできません。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=can.png" /></strong></p> <p><strong>さらに、m行 p列の行列 と p行 n列の行列の積は m行 n列の行列となります。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=mn.png" /></strong></p> <p><strong>具体的な計算の例を以下に示します。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=calc.png" /></strong></p> <p><strong>行列の商というのはないそうです。(逆行列のような特殊なケースの場合のみ存在する?)</strong></p> <p><strong>では単位行列の積を行うと、どういった事が起こるのか見てみます。</strong></p> <p><strong><img alt="" src="http://www21.atwiki.jp/opengl?cmd=upload&amp;act=open&amp;pageid=102&amp;file=iden.png" /></strong></p> <p><strong>どうでしょう?左行列がそのまま解になっていますね。<br /> つまり掛け算で 1 を掛けるのと同じです。<br /> OpenGL では glMatrixMode(GL_PROJECTION); と glMatrixMode(GL_MODELVIEW); で<br /> 行列を切り替えますが それらを単位行列にもどしてやらないと、ずっと最終的な行列の値に<br /> 行列を掛け合わせる事になります。<br /> では、次回、glLoadIdentity(); を置き換えてみます。</strong></p> <p> </p> <p> </p> <p> </p>

表示オプション

横に並べて表示:
変化行の前後のみ表示: