約 11,911 件
https://w.atwiki.jp/opengl/pages/107.html
零行列です。 零行列は全ての要素が 0 になっているものです。 平行移動行列、回転行列、拡大縮小行列を解説したので、やっと 単位行列の意味が解ります。 まず、平行移動成分を見てみましょう。 X軸、Y軸、Z軸全てが 0 になっていますね。 そして回転成分は cosθ の所は 1 で sinθ と -sinθ の所が 0 に なっています。 θ(シータ)には角度をラジアンに変換したものが入ります。 cos(0) の解は 1 です。 sin(0) の解は 0 です。 -sin(0) の解は 0 です。 つまり、 θ には 0 が入る事になり、回転角度は 0°という事になります。 X軸、Y軸、Z軸全てが 0 になっていますね。 そして、拡大縮小成分は見ての通り、全ての軸が 1 となっています。 つまり、拡大率は 1倍 という事ですね。 仮に零行列を掛け合わせると全てが 0 になってしまい、拡大率も 0 なので 画面には何も表示されなくなります。 つまり、初期化するには平行移動成分と回転成分が 0 で拡大縮小成分だけが 1 で ある必要があります。
https://w.atwiki.jp/opengl/pages/105.html
続いて、回転行列です。 以下にOpenGL、DirectX、双方の回転行列を示しますが、前回解説したように 行と列の方向が違うだけで結局は同じ物です。 チュートリアル 固定機能編 の トーラスの表示と回転 を置き換えてみました。 #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #include GL/freeglut/freeglut.h #include math.h #define PI 3.1415926 #define WIDTH 320 #define HEIGHT 240 //回転用 float anglex = 0.0f; //オレンジ GLfloat orange[] = { 1.0, 0.6, 0.0, 1.0 }; //ライトの位置 GLfloat lightpos[] = { 200.0, 150.0, -500.0, 1.0 }; //単位行列 GLfloat mat[]={ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 }; //回転行列 GLfloat rotate[]={ 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1 }; void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); //glLoadIdentity();と同じ↓ glLoadMatrixf(mat); //視野角,アスペクト比(ウィンドウの幅/高さ),描画する範囲(最も近い距離,最も遠い距離) gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); //glLoadIdentity();と同じ↓ glLoadMatrixf(mat); //視点の設定 gluLookAt(150.0,100.0,-200.0, //カメラの座標 0.0,0.0,0.0, // 注視点の座標 0.0,1.0,0.0); // 画面の上方向を指すベクトル //ライトの設定 glLightfv(GL_LIGHT0, GL_POSITION, lightpos); //マテリアルの設定 glMaterialfv(GL_FRONT, GL_DIFFUSE, orange); //回転 //glRotatef(anglex,1.0f,0.0f,0.0f);と同じ↓ float radian=2*PI*anglex/360.0; rotate[5]=cos(radian); rotate[6]=sin(radian); rotate[9]=-sin(radian); rotate[10]=cos(radian); glMultMatrixf(rotate); glutSolidTorus(20.0,40.0,16,16); glutSwapBuffers(); } void idle(void) { anglex+=1.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); } int main(int argc, char *argv[]) { glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( 回転行列 ); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return 0; }
https://w.atwiki.jp/nopu/pages/93.html
Def. 行列式 |A|がAの行列式であるとは,次が成り立つことをいう。 1. 2. 3. Th. 上の条件を満たす関数は唯一定まり,以下で与えられる。 ここで,SNはN次対称群。 すなわち,N次置換群の全体。 あるいは,有限集合Nの全単射の全体。 Th. 行列式の公理のうち,(1)と(2)を満たす関数f(A)に対して,以下が成り立つ。 Th. 行列式は転置をとっても同じ 積の行列式は,行列式の積にできる。 Def. cofactors; 余因子 行列Aのi行とj列を潰して得られる行列をとする。 Aの余因子Δijとは,次で定義される行列式である。 各成分を余因子にもつ行列を,余因子行列(adjoint)といい,adj A と書く。 Th. 余因子展開 行列Aの余因子(cofactors)Δijを用いて,行列式|A|は以下のように展開できる。 展開は行ごと,或いは列ごとに行われることに注意する。(つまり和は1つだけとる。) Th. 余因子行列と逆行列の関係
https://w.atwiki.jp/linearalgebra/pages/83.html
このページの内容は書きかけです。 6-2 正則行列・逆行列 6-2-1正則行列・逆行列
https://w.atwiki.jp/linearalgebra/pages/46.html
13.行列式 13-1行列式の定義 13-2転置行列の行列式 13-3行列式の多重線形性 13-4行列式の交代性 13-5行列の積と行列式
https://w.atwiki.jp/nopu/pages/232.html
Def. Rem. エルミート行列は正規行列である。 正規行列参照 → 1. ユニタリ行列で対角化可能 1 . 特に対称行列は直交行列で対角化可能 2. スペクトル分解可能 Th. エルミート行列の固有値は実数である。 実際,固有値λに対する固有ベクトルxとして, より従う。 Th. (Courant-Fischer s minimax theorem) エルミート(対称)行列Aの固有値を大きい順に並べる。 このとき ただし S は部分空間 Cor. 二次形式の抑えこみ この事実はミニ・マックス定理を経由しなくても次のようにして示せる。 すなわち,エルミート行列は正規行列であるから,スペクトル分解できる。 さらに, に対してとおく。 である。 Cor. 分離定理 Cor. 単調定理 注意 一般の正方行列Mに対して、ミニマックス定理は成立しない。 正方行列Mについて、二次形式で生きてくるのは対称成分 のみであるから、この対称成分に対してミニマックス定理が成立する。 エルミート形式(二次形式) 定義 エルミート行列(実対称行列)Aに対して、 エルミート形式は実数に値をとる。 エルミート形式の変換 xの基底変換によって不変でなくてはならないから、xが正則行列Tで変換されると、 Aは合同変換で変換される。 合同変換によって固有値は変化する。 定理 Sylvester s law of inertia エルミート行列の固有値の符号は、合同変換によって保たれる。 正定値行列 定義 エルミート行列Aが正定値とは、 例 分散共分散行列など 定理 エルミート行列に対して、(半)正定値性と固有値が全て正(非負)であることは同値 判定法 Schur補行列を用いて、小さなブロックの判定に落としこむ 主座小行列式を用いる方法もある。 定理 正定値行列の和、正数倍もまた正定値である。 また、合同変換不変である(シルベスターの慣性法則)。 定理 正定値行列の分解 A 正定行列に対して、正則行列(または対角要素が正の上三角行列)Pが存在して、 上三角の分解を特にCholesky factorization という。 [略証] Aは実対称なので、直交行列Uを用いて対角化することができる。 Aは半正定値なので、固有値は全て非負であるから、次のような行列を考えることができる。 これを用いて、Pを次で定義すれば、これが求めるものである。 系 正定値行列の平方根 内積との関係 定理 ユークリッド空間の任意の内積g(x,y)に対して、正定値行列Pがあって、 と表現できる。 逆に、正定値エルミート行列が定める双一次形式は内積である。
https://w.atwiki.jp/nopu/pages/231.html
定義 U*U=UU*=I ユニタリ(直交)行列は正則かつ正規である。 定理 ユニタリ(直交)行列の固有値の絶対値は1 逆 正規行列の固有値の絶対値が1ならばユニタリ(直交)行列 定理 ユニタリ(直交)行列は内積を保つ。 命題 ユニタリ(直交)変換は固有値を変えない。←相似変換の性質 定理 任意の正方行列は、ユニタリ変換によって上三角行列にできる。(Schur分解) Schur分解の対角成分は元の行列の固有値である。 系 直交変換に限ると、実Schur分解止まり。 直交行列の生成 X n-dim 線形空間 X の有限個の一次独立なベクトル Gram-Schmidtの直交化法は、次のようになる。 ととる。 以下を繰り返し。 Rem は Span U_t への射影ベクトルを与える。 実際、 特に、t=n のとき単位行列になる。 一方、作り方から である。
https://w.atwiki.jp/linearalgebra/pages/98.html
11.ユニタリ行列・直交行列 11-1ユニタリ行列・直交行列のまとめ 11-2エルミート行列(対称行列)の特徴づけ 11-3ユニタリ行列(直交行列)の特徴づけ
https://w.atwiki.jp/524287/pages/133.html
12260001 逆行列~1問
https://w.atwiki.jp/waxwing_k/pages/11.html
検査行列 検査行列(check matrix)Hとは,その行が1次独立なパリティ検査となるような(n-k)×n行列である. したがって,Gがその符号の生成行列であって,Hがパリティ検査行列であるならば次式が成り立つ GH^T = 0 ここで,右辺の0はk×(n-k)零行列である.