• ベストアンサー

単因子論で(1,1)が必ず1になるのは何故?

僕の先生は、単因子論の基本変形を、以下のように書きました。    (1) 行iと行jの入れ替え            (1') 列iと列jの入れ替え            (2) 行iに ある数a∈Rをかける       (2') 列iに ある数a∈Rをかける       (3) 行iに ある多項式をかけたものを別の行jに加える       (3') 列iに ある多項式をかけたものを別の列jに加える これでは、 t-1  0 0  0 t-1 0  0 0  t-1 の要素(1,1)が1にできないと思います。 この場合、どう計算すればいいのか、お教え願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.2

陳謝と訂正: A No.1 文中の「単因子」は「単元」に訂正して、読み返してもらえれば幸い。 (1,1) 成分が 1 にできない理由は、アレで合っているのですが…。 御質問の行列は、(1)~(3') の変形で (1,1) 成分を 1 にすることはできないし、 「単因子論」でも、そんなことができるとは言いません。 変形は質問の形でオワリで、だから、tE-A の単因子は (t-1, t-1, t-1) です。 恐らく、講義内容を誤解しているのでしょう。

morimot703
質問者

お礼

丁寧なお答え、ありがとうございます。 >「単因子論」でも、そんなことができるとは言いません 了解しました。 夏休みが明けたら、先生に確認します。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.1

御質問の行列は、 t の多項式環 R[t] を成分とする行列環 において、単因子ではありません。 基本変形で単位行列にできないのは、 そのためです。 t が変数でなく、1 以外の実定数であれば、 実行列環の単因子ですから、 (2) で a=1/(t-1) とすることで、 (1,1) 成分を 1 にできます。

morimot703
質問者

補足

ご回答、ありがとうございます。 実数行列の場合、行と列の基本変形で、対角成分をALL1にできることは、 習いました。 先生は、単因子論により、 t の多項式を成分とする行列について、(1,1)成分を 1 、他の対角成分が (i,i)が(i-1,i-1)で割れる多項式にできる ことを前提に、 ジョルダン標準形の証明をされました。 おっしゃることから考えると、この証明の前提は、誤っているように思います。 つまり、 与えられた(tE-A)というt の多項式を成分とする行列が、 基本変形を繰り返して、例えば、僕が掲げた行列になれば、 単因子論は、適用出来なくなる。 と思って良いでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 余因子 小行列 余因子行列

    余因子とは、例えば2行2列の正方行列 A=(1 2)    (3 4) において、行列Aの1行1列目の成分における余因子は、 a^~11=(-1)^1+1|4| のように表されます。 また、小行列式とは上の2行2列の行列において 1行1列目の成分における小行列式は、 D11=|4| のように表されます。 余因子行列は逆行列を求める際に利用されます。 上の2行2列の行列の余因子行列をA^~とします。 余因子行列は余因子をそれぞれの成分毎に並べて さらに転置した行列です。 ここで、良く分からない点があります。 余因子と小行列式の違いは、あるのでしょうか? 符号の違いだけでしょうか? 私の認識では、余因子に比べ小行列式は 行列から着目している成分を排除した だけと認識しています。 また、ネットで調べると余因子と小行列式は同じ事を 示しているページもあり混乱しています。 余因子の記号チルダについて私が持っている、 初心者向けの参考書には、余因子にも余因子行列 にも~(チルダ)が付いています。 これもネットで調べると、余因子にチルダがついていない 場合があったりして混乱しています・・・ 以上、質問内容をまとめますと、 ・余因子と小行列式の違いはどこ? ・余因子にも、余因子行列同様にチルダ記号が必要か? 特に取り決めがない場合は、現在の主流の方を教えて下さい。 以上、説明がちょっとへたくそですがご回答よろしくお願い致します。

  • 余因子 余因子展開

    余因子と余因子展開についてわからない事があるので 質問させて頂きます。 前回同様の質問をさせて頂いたのですが、 解決できないので再度質問させて頂きます。 前回質問:http://okwave.jp/qa/q7527124.html detA= |1 2 3| |4 5 6| |7 8 9| とする。 第1行についての余因子展開は detA= 1|5 6|-2|4 6|+3|4 5|  |8 9|  |7 9|  |7 8| となります。 detAにおける第1行と第2列の成分をa12とします。 a12の余因子をa12^~と表します。 a12^~= -|4 6|   |7 9| となります。 余因子展開の場合は2がかけられますが、 余因子では2がかけられません。 この違いがよくわかりません。なぜでしょうか? 私の余因子展開の方法が間違っているのでしょうか? 以上、ご回答よろしくお願い致します。

  • 余因子展開

    余因子展開について |A|=| 0 3 -4 -1|     |-3 0 -4  3|     | 3 0  3 -4|     |-1 1 -3  1| について1行+-3×4行をして |A|=| 0 3-4-1|     |-3 0-4 3|     | 3 0 3-4|     | 3 0 5-4|   =(-1)^(1+2)|-3-4 3|              | 3 3-4|              | 3 5-4|   サラスノ公式より =18 となったのですが 解答では-6となっています 計算のやり方が違うのでしょうか?

  • 余因子行列と逆行列

    行列Aの余因子行列を(~A)とすると(A^-1)=(1/|A|)(~A)のときA(A^-1)=Eとなることの証明ですが、行列A,行列(~A)、この2つの行列の積の(i,j)成分をCijとおくとCij=ai1Aj1+ai2Aj2+・・・+ainAjn(i=1,2,3,・・・,n,j=1,2,3,・・・,n)となる。 (1)i=jのときCii=|A|となる (2)i≠jのときcij=ai1Aj1+ai2Aj2+・・・+ainAjn(i≠j)となり、これは、行列式の第j行による余因子展開の式になっているが、その第j行の成分が[ai1 ai2 ・・・ ain] となって、第i行の成分と一致していることになるので第i行と第j行が同じ成分の行列式となるので、これは0となる。 とありますが(2)の第j行の成分が 第i行の成分と一致していることになるというのが理解できません。実際にAjnがある値を持ったとすると、AinとAjnが等しい値でなかったとしても cij=ai1Aj1+ai2Aj2+・・・+ainAjnがciiと等しいと言えるのでしょうか? どなたか詳しく教えて頂けないでしょうか?

  • 『行列の2つの列を入れ替えると行列式はー1倍になる』ことの証明

    お世話になります。よろしくお願いします。 『行列の2つの“列”を入れ替えると行列式はー1倍になる』ことの 証明についてです。 手持ちの参考書には 『行列の2つの“行”を入れ替えると行列式はー1倍になる』ことの 証明は載っていました。 i行とk行を入れ替える時、τ=σ(i k)と置くといううまいやり方でした。 列の入れ替えについては、行の入れ替えに 転置行列の公式detA=det(tA)を用いればよいのですが、 この公式を用いずに直接「2列の入れ替えで行列式がー1倍になる」ことを示したいと思っているのですが、なかなかできずに困っています。 どなたかできる方、よろしくお願い致します。 方針があってないかもしれませんが、以下途中まで自分でやった部分です。 ________________________________________ 行列A=(a_ij)のi列とk列を交換した行列をA'=(b_ij)、 S_nをn次の対称群をします。 detA=Σ[σ∈S_n]sgn(σ)a_1σ(1)・・a_rσ(r)・・    ・・a_tσ(t)・・a_nσ(n) σ(r)=i, σ(t)=kとする。またσ(-1)はσの逆置換とする。 b_1σ(1)・・b_rσ(r)・・b_tσ(t)・・b_nσ(n) =b_1σ(1)・・b_ri・・b_tk・・b_nσ(n) =a_1σ(1)・・a_rk・・a_ti・・a_nσ(n) =a_1σ(1)・・a_σ^(-1)(i)k・・a_σ^(-1)(k)i・・a_nσ(n) ________________________________________ よろしくお願い致します。 

  • 行列に関して。

    以下の行列を対角成分が最も大きくなるような プログラムをつくりたいのですが 0   1   4  3 7   0   1  -5 1    3   0   7 -2   4   4  -8 #include<stdio.h> #include<math.h> #include<stdlib.h> #define NUM 4 int main(){ /* 初期化 */ int i; /* ループ変数 (行)*/ int j; /* ループ変数 (列)*/ int k; /* ループ変数 */ int imax; /* 最大値のi成分 */ int jmax; /* 最大値のj成分 */ double nmax; /* 最大値を入れるための変数 */ double tmp; /* ソートのための一時的な変数 */ double eps = 1.0e-6; /* 判定値 */ double a[NUM][NUM] = { { 0.0, 1.0, 4.0, 3.0}, { 7.0, 0.0, 1.0, -5.0}, { 1.0, 3.0, 0.0, 7.0}, {-2.0, 4.0, 4.0, -8.0}}; /* 対象とする要素位置 = k */ for( k = 0 ; k < NUM ; k++ ){ /*対象とする要素位置 = k*/ nmax = 0.0;/* 初期化 */ imax = k;/* 初期化 0とは限らない */ jmax = k;/* 初期化 0とは限らない */ /* 1.絶対値の最大値を求める */ for( i = k ; i < NUM ; i++ ){ for( j = k ; j < NUM ; j++ ){ if(fabs(nmax) < fabs(a[i][j])){ nmax = a[i][j]; imax = i; jmax = j; /* 対象としている行列要素の中で,最大となる行列要素のi,j成分を探す */ /*ここに絶対値の最大値を求め、nmax、imax、jmaxに代入するプログラムを書く*/ /*絶対値の求め方、数学関数fabs(x)を用いる*/ } } } /* 2.行入れ換え */ if( k != imax ){/* 対象としている行と最大値を持つ行が同じなら,入れ替える必要が無い */ for( j = 0 ; j < NUM ; j++ ){ tmp=a[k][j]; a[k][j]=a[imax][j]; a[imax][j]=tmp;/* 対象としている行と最大値を持つ行との入れ替え */ /*ここに行の入れ替え行うプログラムを書く*/ } } /* 3.列入れ換え */ if( k != jmax ){/* 対象としている列と最大値を持つ列が同じなら,入れ替える必要が無い */ for( i = 0 ; i < NUM ; i++ ){ tmp=a[i][k]; a[i][k]=a[i][imax]; a[i][imax]=tmp;/*対象としている列と最大値を持つ列との入れ替え*/ /*ここに列の入れ替え行うプログラムを書く*/ } } } /* 結果の出力 */ for(i=0; i<NUM; i++){ for(j=0; j<NUM; j++){ printf("%5.1f ",a[i][j]); } printf("\n"); } /*ここに行列の表示プログラムを書く*/ return(0); } 上のぷろぐらむを実行しても、1個目のfor文の1ループ目で終了してしまい 1行目と、4行目を交換、4列目と1列目を交換した行列だけが表示されます。 結果が以下のような行列にするにはどう改善すればよいでしょうか? -8.0   -2.0  4.0  4.0 -5.0   7.0  1.0  0.0   3.0   0.0  4.0  1.0  7.0   1.0  0.0  3.0 です。

  • 行列式の計算

    n次正方行列Aの、i行j列の成分をA(i,j)とすると A(i,j)=a(j)^(i-1)  *(j)はaの添え字を表す と書けるとします。 このとき、Aの行列式|A|はどのように計算すればよいでしょうか? 各列から第1列を引くと、第1行がほとんど0になり、 各列から a(j)-a(1) が括り出せることはわかりますが、 そこから計算が進みません。 よろしくお願いします。

  • 行列式の線型性と交代性

    行列式 |A| において i ≠ j なる i , j について、 a_i1△_j1 + a_i2△_j2 + ・・・ + a_in△_jn = 0 (1) a_1i△_1j + a_2i△_2j + ・・・ + a_ni△_nj = 0 (2) が成り立つ. ※ a_ij ・・・ 行列 A の i 行 j 列成分 △_ij ・・・ 行列 A の i 行 j 列成分の余因子 これが正しいことを教科書で証明してあるのですが、理解できません。 教科書の証明は以下の通りです。 ----- 第 i 行と第 j 行が等しい行列式を第 j 行で展開したものが上の式(1)であり、 第 i 列と第 j 列が等しい行列式を第 j 列で展開したものが下の式(2)である。 どちらも、 「2つの行や列が等しい行列 A の行列式は 0 である」 という定理より0である。 ----- 上記の証明より、2つの行や列が等しい行列の i ≠ j の場合に(1)、(2)が成り立つことは理解できます。 ですが、2つの行や列が等しくない行列の i ≠ j でも一般的に成り立つということが理解できません。 行列式の線型性と交代性からうまく証明できるのでしょうか? 詳しい方、ご教授よろしくお願いします。

  • 行列の行の入換え

    | -1 -1 -2 -1 10 | | -1 -2 -1 10 -1 | | -2 -1 10 -1 -1 | | -1 10 -1 -1 -2 | | 10 -1 -1 -2 -1 | この行列を次の順序で並び替えたいのですが 1.第1列にある要素の中で絶対値の最大値がある行を探し,その行と第1行を入れ換える. 2.第2列にある要素の中で絶対値の最大値がある行を第2行以下から探し,その行と第2行を入れ換える. 3.これを左上から右下へ順次移動して,行の入れ換えを行う. #include<stdio.h> #include<math.h> #define N 5 #define M 5 int main(){ float a[N][M]={{-1.0,-1.0,-2.0,-1.0,10.0},{-1.0,-2.0,-1.0,10.0,-1.0},{-2.0,-1.0,10.0,-1.0,-1.0}, {-1.0,10.0,-1.0,-1.0,-2.0},{10.0,-1.0,-1.0,-2.0,-1.0}}; float nmax; int i,j,k=0,s,imax; for(j=0; j<M; j++){ nmax = a[0][j]; imax = 0; for(i=1; i<N; i++){ if(fabs(nmax) < fabs(a[i][j])){ nmax = a[i][j]; imax = i; } } for(j=0; j<M; j++){ s=a[k][j]; a[k][j]=a[imax][j]; a[imax][j]=s; } k++; } for(i=0; i<N; i++){ for(j=0; j<M; j++){ printf("%5.1f ",a[i][j]); } printf("\n"); } return(0); } このように作成したのですが、1行目と5行目しかいれかわりません。 なぜでしょうか??

  • 線形代数の余因子行列の求め方。

    見づらくて申し訳ないのですが、 下の3行3列の行列の余因子行列の求め方を教えてください。   | 3 -2 1 | |A|= | 1 4 7 | | 5 3 6 | (数字の両端の棒は、1行目から3行目まで絶対値です・・・) 表示がうまくいかないので、 1行目が1列目から3 -2 1 で、 2行目が1 4 7 で、 3行目が 5 3 6 の数字です・・・。 よろしくお願いします。