• ベストアンサー

行列Aの特異値の積は detAの絶対値に等しいか?

問題 n×n行列Aのn個の特異値の積は detAの絶対値に等しいか? ** 上記の問題がわかりません。 お分かりの方、証明OR反例をお願い致します。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「特異値」の定義を書いてみよう.

nakamura1984
質問者

お礼

特異値の定義を色々と調べていたら、 理解することができました。 ありがとうございます!

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

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

どこがわからない?

nakamura1984
質問者

補足

いくつかのパターンで試したところ、 nxn行列Aの固有値の積の絶対値(=|detA|)と (A^T)Aの固有値の平方根の積(=特異値の積)は 等しくなりました。 ただ、一般的な証明の仕方が分からずにおります。 ご教授頂けますと幸いです。

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

関連するQ&A

  • 正則な行列によってできる行列は正則か?

    正則である行列A,Bがあるとします. この時,この行列のみの積を用いて行列を作った場合(例えばAB^-1Aなど),その行列は必ず正則であると言えるのでしょうか? もしくは,演算後の行列が正則であるかどうかは別問題であるのでしょうか? 反例や証明等があれば教えていただきたいです. よろしくお願いします.

  • 転置行列 証明 行列の積

    転置行列の証明について疑問点があるので 質問させて頂きます。 t(AB)=t(B)t(A) の証明について。以下に示します。 行列 A の (i,j) 成分を A[i,j] と書くことにします。 行列Bも同様。 (t(AB))[i,j] = (AB)[j,i] = Σ A[j,k] B[k,i] = Σ (tA)[k,j] (tB)[i,k]  …(1) = Σ (tB)[i,k] (tA)[k,j]  …(2) = ((tB)(tA))[i,j] よって、 t(AB) = (tB)(tA) (1)についてよくわかりません。 行列の積は、 (l,m)行列と(m,n)行列の積は(l,n)行列と定義されますが (1)は(m,l)行列と(n,m)行列の積を計算することに ならないのでしょうか? (m,l)行列と(n,m)行列の積は定義されないので等式でつないでは いけないのでは?と考えた次第です。 以上、ご指摘、ご回答よろしくお願い致します。

  • 積が最大となるには…

    『ある自然数Nをn個の自然数a_nにわけ、そのn個の自然数の積Mをとるとき、すなわち、 a_1+a_2+…+a_n=N 、a_1*a_2*…*a_n=M としたとき、Mが最大になるにはa_1=a_2=…=a_n=N/n となる事が必要十分である』ということを予想したのですが、証明できません。誰か優しい方、お願いしますm(--)m ちなみにそう思ったのはn=2,3の時にそうなった(コレは証明できた)からなだけなので、反証でもかまいません。高校数学の範囲でお願いします。

  • 対称行列Aの2乗A^2は対称行列ですか?

    対称行列Aの2乗A^2は対称行列ですか? 証明、または、反例も合わせてご回答お願い致します。

  • 行列式に関する質問です。

    行列式に関する質問です。 ファンデルモンドの行列式を用いて、「座標平面のn個の点(x1,y1)…(xn,yn)を通る(n-1)次曲線 y=a(n-1)x^(n-1)+a(n-2)x^(n-2)+…+a1x+a0はただ一つであることを示せ。」という問題です。 どの様にして証明すればいいのでしょうか?よろしくお願いします。

  • 行列の積について

    3行3列の行列AとB、およびその和と積を表示するものです #include <stdio.h> int main (void) { int i,j,k; double a[3][3] = {{2.4, 5.5, -8.5},{0.8, 3.7, 1.1},{3.5, -9.1, 2.6}}; double b[3][3] = {{-5.1, 9.8, 2.3},{-4.1, 0.2, -0.3},{3.3, 6.1, -1.3}}; double c[3][3] = {0}; printf(" 行列A\n"); for (i = 0; i < 3; i++){ for (j = 0; j < 3; j++) printf("%5.1f", a[i][j]); printf("\n"); } printf("\n 行列B\n"); for (i = 0; i < 3; i++){ for (j = 0; j < 3; j++) printf("%5.1f", b[i][j]); printf("\n"); } printf("\n 行列A+B\n"); for (i = 0; i < 3; i++){ for (j = 0; j < 3; j++) c[i][j] = a[i][j] + b[i][j]; } for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf("%5.1f", c[i][j]); printf("\n"); } for (i=0; i<3 ; i++){ for (j=0; j<3; j++) for (k=0; k<3; k++) c[i][j] =c[i][j]+ a[i][k]* b[k][j]; } printf("\n 行列AB\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) printf("%7.2f", c[i][j]); printf("\n"); } return 0; } これだと積だけが異なった値が出てしまいます。 試しに、積の部分だけで組んでみると正しい答えが出ました。 for文のブロックの組み方がまずいのかなと思っていますが、これ以外だと、行列のレイアウトが崩れてしまいます どのように直したらいいのか、ご教示お願いします

  • (汎用的に)行列の積を求めるプログラム

    L*M実行列A , M*N実行列B , M*N実行列C を引数として、A*BをCに代入するプログラムを作りたいと思っています。 具体的には、エラーがでるのはわかっていますがイメージとして void multiply(int L,int M,int N,double A[L][M],double B[M][N],double C[L][N]) {       for(int l=0;l<L;l++)    for(int n=0;n<N;n++)    C[l][n]=0;       for(int l=0;l<L;l++){            for(int m=0;m<M;m++){                   for(int n=0;n<N;n++)       C[l][n]+=A[l][m]*B[m][n];            }      } } という感じです。Cを自分なりに学習したところ、「2次元配列を渡すには行or列数が少なくとも既知でないといけない」のは知識として得ているのですが、ではこの問題を回避して所望のプログラムを書け、と言われると行き詰ってしまいました。 卒論をするにあたり、種々のサイズの行列演算が必要なので、できるだけ効率的な関数を書いておきたいのですが、どうすれば一般の行列の積の演算が可能になるのでしょうか?

  • 行列について

    「たがいに対等なn次x行列のn個の行列式因子は一致する」 この証明を教えてください。

  • マトリックスの積と行列式の積

    X=ABCでX,A,B,Cはすべてマトリックスとします。サフィックスで表示するならば、 X(i,j)=A(i,m)B(m,n)C(n,j) ということかと思いますが。 この場合、 det(X)=det(A)det(B)det(C)になるとのことですが、簡単に証明できるでしょうか。線形代数の教科書を見れば必ず載っていると思うのですが、これは何も見ないで出来なくちゃと思って考え込んでいます。 X=ABの場合だけ証明できたらあとは何回積があっても同じかとは思いますが。行列式なので小行列などを用いて考えるのだろうと思いますが、パッと思いつきません。よろしくお願いします。

  • 行列A^2の固有値は、Aの各固有値の2乗ですか?

    行列A^2の固有値は、行列Aの各固有値の2乗になりますか? 証明、または、反例をお願い致します。