ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

スペクトル分解とは (1)

2013-02-24 23:33:01 | 暮らし

sys.pdf
sys-s.pdf
記事一覧

式の訂正: 2013-03-04

 
                                                        スペクトル分解定理 [7]

武部幹先生の信号処理ゼミに関する話題です.「スペクトル分解」が高校生向けの参考書でも使われているようなので,「スペクトル分解とは」等を Google で検索しました.以下は,工学系(付言すると非理学系)の学生諸君向けの補足ですが,ウソを書いているかも知れません.

(1) まず「スペクトル」とは何かを [0] で復習すると集合の各要素について,実数値で評価できる属性に着目し,その評価値の順に要素を並べたものと考えればよさそうです--- 分光スペクトルは光を波長順に並べる.
(2) 高校生が学ぶスペクトル分解は(当然ながら)行列の固有値分解で,「評価値の順に要素を並べたもの」というイメージは希薄です.
(3) 工学系の学生にとって難解なのは,関数解析で述べられている冒頭の式のような自己共役作用素 T のスペクトル分解です.[8][3][7] のつなぎとして掲げましたが,固有値の大きさに並べる意味は読み取れません.自己共役作用素は共役転置行列(エルミート行列)を一般化した概念であり,共役転置行列の固有値は実数で,異なる固有値の固有ベクトルが直交することは容易に証明できます.
※ 上図の式の E(λ) は射影行列を一般化した射影作用素で,[8]合わせて x,y の内積を (y | x) で表わすと dE(λ) x = d(E(λ) x | x).
(4) 1階の常微分方程式 x'(t) = A x(t) の x(t) ≠ 0 である解は |s I - A| = 0 の解を固有値とする固有関数です.A が線形時不変な回路の状態遷移行列のとき,対称行列やエルミート行列であることは期待できません.
※ A を対称成分と反対称成分に分解すると,反対称成分はエルミート行列の i = √(-1) 倍だから,対称成分を直交行列で,エルミート行列をユニタリ行列を用いて個別に対角化できます(0 でない非対角要素をもつ実対称行列はエルミート行列にならない).x'(t) = A x(t) の解 x(t) = exp(A t) x(0) を展開して時間領域で計算するときに対角化できれば計算が簡単になります.しかし・・・・・

ここから無責任発言になります.
(5) 学生の (数学, 物理, 英語) の成績ベクトルを x = (x1, x2, x3)T, メーカ A 社の評価関数を 2 x12 + 3 x22 + x32, 商社 B 社の評価関数を 2 x12 + x22 + 3 x32, とします.これらの評価関数を xT A x, xT B x とおくと A = 2 P1 + 3 P2 + P3, B = 2 P1 + P2 + 3 P3 (Pi = ei eiT, ei は i 番目の要素が 1 の単位ベクトル) です.学生の成績スペクトルとして科目順の (2 x1, 3 x2, x3), (2 x1, x2, 3 x3) の棒グラフと,企業ごとに変わる (3 x2, 2 x1, x3), (3 x3, 2 x1, x2) の棒グラフのどちらが扱いやすいと思いますか?
固有値分解をすべてスペクトル分解と呼ぶから紛らわしい(A社だけで考えるなら固有値の大きさで並べる方が実用的ですが).
(6) 波長λの単位単色光 eλ を入射したときの強度が (T eλ, eλ) = αλ である色フィルタ(三原色分解用のどれか)に波長λでの分光スペクトル密度が u(λ) である光が入射したときの強度を固有値 αλ の大きさの順に並べ替えたいと思いますか? --- u(λ)はλの連続関数.
(7) インパルス応答が h(t) である線形時不変の回路に信号 x(t) を入力したときの出力 (T x)(t) は
    (T x)(t) = ∫x(t-τ) h(τ) dτ (積分範囲は (-∞, ∞) )
だから,x(t) = exp(iωt) のときは (T x)(t) = x(t)∫x(-τ) h(τ) dτ = λx(t),すなわち exp(iωt) は固有値λの固有ベクトルになっています.λ = H(iω) とおくと,実際の回路は実関数の入力 exp(iωt) + exp(iωt) に対する出力 H(ω) exp(iωt) + H(-ω) exp(iωt) も実関数なので,H(-iω) = H(iω)*,すなわち T はエルミート作用素です.
※ H(iω) の関数表示が不明でも sin ωkt を入力したときの出力 Ak sin(ωkt + θ) の Ak,θk から H(iωk) を計算でき,ナイキスト線図を描けます.なお,H(iω) はラプラス変換で求めた回路の伝達関数 H(s) の s に iω を代入したものに一致しています.
(8) 一般の(有限エネルギーの)実信号 x(t) は扱い難いので,まず周期が 2π/ω0 の周期関数を考えます.このような信号の空間では各信号をフーリエ級数で厳密に表現できます --- 基底となるベクトルは可算個で exp(inω0t)/√(π/ω0) (-∞ < n < ∞).
※ exp(±iωt)/√(π/ω) は固有値 -ω2 の(2次元)固有空間の正規直交ベクトルです --- 固有空間は閉じていなければならない.
(9) (3) で述べた dE(λ) x = d(E(λ) x | x) はヒルベルト空間の作用素 T は ベクトル x に対する内積 (yT | x) で表現できるという Riesz の定理に基づいています --- 内積の記法としては (x, yT) や山括弧の〈x, yT〉の方がよく使われます.基底が可算個のときは x = Σxn en と展開できるので λn = (T en | en) とおくと
    (Tx | en) = (Σxn T en | en) = Σxn λn
すなわち Tx の en 成分は x の en 成分(フーリエ係数)と作用素 T のen に関する固有値(周波数伝達関数のフーリエ係数)の積になります --- おなじみの Y(iω) = H(iω) X(iω).
(10) 電気工学では気楽に周期 2π/ω0 の信号の空間に対して ω0 → 0 とすればフーリエ級数がフーリエ積分になると説明しますが,数学ではこのような乱暴な推論は許されません.そもそも (-∞,∞) で三角関数を積分したときの収束性にしてもきちんと考えねばなりません.気楽にデルタ関数を使うのもご法度です(スティルチェス積分にする).難しい議論は分かりませんが,関数の定義域を (-∞,∞) にすると,任意の実数 ω について (7) の exp(iωt) を考えることになり,(9) のような可算個の和でなく積分で表現することになります.冒頭の積分は λ の値を -∞ から ∞ まで変化させた形になっていますが「固有値の大きさの順に並べたい」という意思表示ではなく,「可算個の和で表現できないから積分を用いた」と考えればよいと思います.
(11) 冒頭の積分を直観的に理解するには濃淡画像を処理する空間フィルタを考える方が分かりやすいでしょう.空間フィルタの特性は2次元のフーリエ変換を用いて議論できます.時間波形の場合と同様に,空間周波数平面の1点が一つの固有関数に対応しています.各固有関数に対する作用素の固有値を3次元的に表現したものがスペクトル分解であって,空間周波数平面上での積分値を固有値の軸に射影した密度はほとんど使い道がありません --- 空間周波数平面上の(ルベーグ積分的な)2次元の等高線図による近似モデルでいえば,dE(λ) は x を隣接等高線で挟まれた部分に射影する作用素で,各λの値で x をどの辺に射影するかを示しています.

私見: 作用素に依存しないヒルベルト空間の固有ベクトル(高々可算個でもよい)順に並べて考えるのが本来のスペクトル分解であって,主成分分析等で行われるような主軸変換までスペクトル分解と呼ぶのは好ましくない --- 混乱を招くだけ!

[0] スペクトル - Wikipedia
  http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AB
[1] 固有値、固有ベクトル、スペクトル分解って何ですか? 数学的な式よりも ...
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1340751313
  どなたか猿でもわかるように教えて下さい。
[2] スペクトル分解 | Funeral of vlack jack
  http://stupid-newbie.jugem.jp/?eid=505
[3] 大学入試問題 行列のスペクトル分解とそれに由来する - 数研出版
  http://www.chart.co.jp/subject/sugaku/suken_tsushin/72/72-6.pdf
[4] 演算子のスペクトル分解 - 京都大学OCWへようこそ
  http://ocw.kyoto-u.ac.jp/09-faculty-of-engineering-jp/quantum-theory-for-electrical-and-electronic-engineering/pdf/chap5.pdf
[5] 特異値分解 - Wikipedia
  http://ja.wikipedia.org/wiki/%E7%89%B9%E7%95%B0%E5%80%A4%E5%88%86%E8%A7%A3
  特異値分解は、行列に対するスペクトル分解定理の一般化とも考えられ、正方行列に限らず・・・
[6] 現代解析学基礎論第一講義ノート(pdf)
  http://matha.e-one.uec.ac.jp/~naito/06inkogi.pdf
  ※ 全部で 172 ページ.「4.3 スペクトル分解定理と(λE - A)-1 の表現」
-----
[7] スペクトル分解定理
  http://www5d.biglobe.ne.jp/~pomath/study/spectrumresolution.pdf
  この怪しげな文書は Hilbert 空間 X 上のユニタリ作用素,自己共役作用素のスペクトル分解を1時間で復習・・・
  http://www5d.biglobe.ne.jp/~pomath/study/spectrumresolution2.pdf
[8] [5/17] 第3講 行列のスペクトル分解[pdf]
  http://www.math.s.chiba-u.ac.jp/~nagisa/lecture04/fa3.pdf
  行列が無限次元になると・・・その準備として行列の場合にも積分形の表示がどうなるかを・・・
[9] 関数解析入門2011 - Nagoya University
  http://www.math.nagoya-u.ac.jp/~yamagami/teaching/functional/hilbert2011.pdf
  ※ 全部で 100 ページ.「10. スペクトル分解定理」


アーム社の事業モデル

2013-02-21 20:36:44 | 日記
記事一覧
                                 経営者の理解が浅かった日の丸プロジェクト [3]

日経パソコン 2013-02-25 号,pp.10-13 に『携帯機器で躍進する「ARM」の実像』と題する記事がありました.
アームは半導体チップとしてのプロセッサーを製造,販売しておらず,「設計図」に相当する  ものをほかの半導体メーカーに販売している.
ARM をベースにした製品を手がけている企業は 100 社以上 ある.
アームは基本的に「ライセンス+ロイヤルティー」というビジネスをしている.
2012 年第 3 四半期における実績はチップ1個当たり 4.9 セント.
2012 年全体におけるアームの売り上げはライセンス収入が 2億8710万 ドル,ロイヤルティー収入は 4億1770万 ドルとなっている.
だそうです.これを見て TRON の先進だった技術を発展させられなかった(&リストラで技術を流出させた)洋式経営学かぶれの保身経営者連中を思い出しました --- メーカが団結して TRON プロジェクトを支援していれば Android が出る幕がなかった(経産省も有罪).空海の言を借りると「哀しい哉、哀しい哉、復哀しい哉。悲しい哉、悲しい哉、重ねて悲しい哉。

[1] 日経パソコン
  http://pc.nikkeibp.co.jp/pc/npcs/latest/index.shtml
[2] TRONプロジェクト - Wikipedia
  http://ja.wikipedia.org/wiki/TRON%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88
[3] TRON PROJECT - T-Engine Forum Japan
  http://www.t-engine.org/ja/tron-project


BIOS無用のフリーソフト

2013-02-15 20:53:44 | 日記
記事一覧  
                               回答で Plop Boot Manager を紹介

友人の古いノート PC の話です.OS が Windows2000 で FreeStudio や Freemake を使えないため Windows XP に変えたいのですが,CD-ROM ドライブが壊れています.ハードディスクが 9 GB (C: のみ)の古い PC なので BIOS は USB 起動に対応していません.何とかならないか (OS をインストールするドライブは bootable でないと,インストール中の再起動時に困ると予想していたのですが,見当違いでした) と Web で検索すると [1][2] が紹介されていました.
  Start from external media (Floppy, CDROM/DVD, USB drive)
だけでなく,MBR を書き換えない
  Start from other boot managers (LiLo, Syslinux, Grub, Grub4Dos, Grub2,   Windows boot.ini, Windows BCD)
も可能で,さらに Start from your bios as option rom もできるそうです.なお
  Only USB mass storage devices are supported. ・・・USB floppies and CD/DVD drives are not working. There is no USB HUB implementation.
という注意書きがありますが,余計な機能で水ぶくれするより無い方が better.
※ 我々戦中派はなかなか物を捨てられません.我が家のノート PC はときどき黒が赤になって,スパーダーソリティアのスペードもハートも真っ赤.

[1] usbブート出来ないPCでusbブートするにはどうしたらいいですか ...
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1145329841
[2] Plop Boot Manager 5.0
  http://www.plop.at/en/bootmanager.html#runwin (即 ./index.html にジャンプ)
  保存には http://www.plop.at/en/bootmanager/full.html がお薦め.
  This licence conditions are also used for the boot manager tools that are written by Elmar Hanlhofer and not released under the GPL.
  ・The programs are free to use for personal and commercial use,・・・
----------
[3] Bootable USB の作り方
  http://blogs.msdn.com/b/shintak/archive/2009/02/27/9448257.aspx
[4] Create bootable USB drives the easy way
  http://rufus.akeo.ie/
[5] List of Internet top-level domains - Wikipedia, the free encyclopedia
  http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains
  ※ 「.at」はオーストリア,「.ie」はアイルランド


NetBeansによる演習 (8)

2013-02-10 17:26:15 | 暮らし
progJ.pdf
progJ-s.pdf
progJ-e.pdf

記事一覧

                                    2分探索木

progJ-e.pdf にprogJ.pdf の[#36]-[#37]に対応する部分を追加しました.
※ n1.ix == k である n1 の削除を
(1) n1 の子がなければ親から切り離す.
(2) n1 の子が1個のときは自分の子を親の子にする.
(3) n1 の子が2個のときは n1 の次に小さい n3 (子は1個以下)を探し
  a) n3 の子がなければ n1 の親子を n3 の親子にする.
  b) n3 の子が1個のときは自分の子を親の子にして,n1 の親子を n3 の親子にする.
とすると,n3 の親が n1 のとき無限ループになってしまいます.

//Node.java

package myproj;
class Node{
  String d; int ix; Node ln, rn;
  Node( ){d = ""; ix = 0; ln = rn = null;}
  Node(String s, int k){this( ); d = s; ix = k;}
  static void show(String s, Node n){
    if(n == null) return;
    show(s+"L", n.ln);
    System.out.println(s + ": " + n.ix + " " + n.d);
    show(s+"R", n.rn);
  }
  void insert(Node n){
    Node n1 = new Node( ), n2 = new Node( );
    n1 = this;
    while(n1 != null && n1.ix != n.ix){
      n2 = n1;
      if(n1.ix < n.ix){n1 = n1.rn;}else{n1 = n1.ln;}
    }
    if(n2.ix < n.ix){n2.rn = n;}
    else if(n2.ix > n.ix){n2.ln = n;}
    else{System.out.println("?");}
  }
//----------------------------
  public static void main(String[ ] args) {
    Node[ ] t = new Node[4];
    t[0] = new Node("a", 7);
    t[1] = new Node("b", 5);
    t[2] = new Node("c", 9);
    t[3] = new Node("d", 2);
    for(int i = 1; i < 4; i++){
      t[0].insert(t[i]);
    }
    show("", t[0]);
  }
}
//TreeS.java
package myproj;
public class TreeS {
  Node root;
  TreeS( ){root = new Node( );}
  void show( ){Node.show("", root.rn);}
  void ins(String s, int k){
    Node n1 = new Node( ), n2 = new Node( );
    if(root.rn == null){
      root.rn = new Node(s, k); return;
    }
    n1 = root.rn;
    while(n1 != null && n1.ix != k){
      n2 = n1;
      if(n1.ix < k){n1 = n1.rn;}else{n1 = n1.ln;}
    }
    if(n2.ix < k){n2.rn = new Node(s, k);}
    else if(n2.ix > k){n2.ln = new Node(s, k);}
    else{System.out.println("?");}
  }
  void del(int k){
    Node n1 = new Node( ), n2 = new Node( );
    Node n3 = new Node( ), n4 = new Node( );
    n1 = root.rn; boolean left = false;
    while(n1 != null && n1.ix != k){
      n2 = n1;
      if(n1.ix < k){n1 = n1.rn; left = false;}
      else{n1 = n1.ln; left = true;}
    }
    if(n1 == null){System.out.println("?"); return;}
    if(n1.ln == null && n1.rn == null){
      if(left){n2.ln = null;}else{n2.rn = null;}
    }else if(n1.ln == null){
      if(left){n2.ln = n1.rn;}else{n2.rn = n1.rn;}
    }else if(n1.rn == null){
      if(left){n2.ln = n1.ln;}else{n2.rn = n1.ln;}
    }else{
      n3 = n4 = n1.rn;
      while(n3.ln != null){n4 = n3; n3 = n3.ln;}
      if(n3 != n4){n4.ln = n3.rn; n3.rn = n1.rn;}
      n3.ln = n1.ln;
      if(left){n2.ln = n3;}else{n2.rn = n3;}
    }
  }
  boolean has(int k){
    Node n = new Node( );
    n = root.rn;
    while(n != null && n.ix != k){
      if(n.ix < k){n = n.rn;}else{n = n.ln;}
    }
    return (n != null && n.ix == k);
  }
//----------------------------
  public static void main(String[ ] args) {
    TreeS t = new TreeS( );
    t.ins("a", 7); t.ins("b", 5);
    t.ins("c", 9); t.ins("d", 2);
    t.show( );
    System.out.println(t.has(3));
  }
}
//Main.java
package myproj;
public class Main {
  public static void main(String[] args) {
    TreeS t = new TreeS( );
    t.ins("a", 27); t.ins("b", 15); t.ins("c", 29);
    t.ins("d", 12); t.ins("e", 20); t.ins("f", 18);
    t.ins("g", 23); t.ins("h", 19);
    t.show( );
    System.out.println(t.has(18));
    //t.del(19); //t.del(18);
    t.del(15); t.show( );
  }
}


財務省FAQ

2013-02-08 08:45:58 | 日記
記事一覧
                                                 財務省FAQ > 国債

脱原発等,共感する記事が多いので北陸中日新聞を愛読していますが,本日朝刊の「財務省HPがトンデモ見解」には同意できません.原文による正確な表現は[1]をご参照下さい.
2/13 に表現を修正しました.修正前の文章や関連するブログは [1]のコピーに添付しています.学生諸君は「全国紙の記事か素人のブログか」ではなく,自分で調べ考えてください.

・財務省の国債に関する FAQ で「日本が財政破綻した場合、国債はどうなりますか」「国債は政府が責任を持って償還いたしますので、ご安心ください」という Q&A に「この内容は(国債の常識に)合っているのか」とい合わせると財務省担当者が「合っていない」と回答し,この問答の掲載についても「良くないと思う」と話したそうです.
・上記の Q&A は昨年7月に掲載され12月に別の Q&A に差し替えられたそうです.変更理由は「もう少し分かりやすい表現にして、問題意識に答えるような内容に書き換えた」
・財務省の「財政破綻しても国債は政府が責任を持って償還」という説明を「まさにマッチポンプ」と批判する経済ジャーナリストもいるようです.

論点を明確にするには「財政破綻」の定義が必要です.国の資産以上に日銀券が必要になった状態とするか,日銀券を発行できずに IMF 等からの借金を強要された状態と考えるかで,また[1]の「所有者は元本では売れず損をすることになる」の「所有者」についても「通常国債をもつ法人」か「個人向け国債をもつ自然人」かで回答が少し違ってきます.ギリシャの国債が暴落すれば欧州の銀行が損をしますから騒ぎますが,日本の国債のほとんどは国内で消化されているので日銀券を大量に印刷して円が暴落しても外国の金融機関にはあまり迷惑をかけません.財政が破綻していないのに大量に日銀券を発行するのは円安誘導と非難されますが,国の借金が1000兆近いことは諸外国も承知しているので,適度のインフレであれば外国を説得できると思います.
上記の「国債は政府が責任を持って償還いたしますので、ご安心ください」という回答が個人向け国債に限定されていて,これが国際的な常識に反するものであるとすると,復興応援国債を満期まで初期の超々低金利のままにして外資を含む法人にも開放し(債券市場でなく)財務省が直接償還するように変更するという案はいかがでしょうか.超々低金利の国債は緩やかなインフレで “必ず価値が下落する”ので投資家には魅力がありませんが資産運用に自信がない我々庶民には金利が 0 でも十分に頼りになります --- 多分発行額も諸外国が問題にするほどにはならず,そうだとすると絶対「所有者は元本では売れず損をすることになる」にはなりません.眠っている個人金融資産で国債の国内消化が促進されれば,大量の通常国債が外資ファンドに流れ,償還時に高金利にせざるを得なくなるような事態は防げると思います.

[1] 「財務省HPがトンデモ見解」(北陸中日新聞 2013-02-08)
  コピーは http://pulsar.blog.ocn.ne.jp/tmp/kokusai.pdf
[2] 「発言」投稿原稿(2013-01-31)
  https://cgi.chunichi.co.jp/chu/entry/hatugen/hatugen.php
---------------------------------------------------------------------------------------------------
次年度予算案が決定し大量の国債が発行されます.先月のNHKスペシャル「日本国債」でも外資ファンドのターゲットになっていることを報道していましたが,財務省も金融機関も個人向け国債による国内消化を積極的に呼びかけていないように思われるので駄文を書きました.個人向け国債は日本国籍を有する「自然人」が健康保険証や運転免許証を持参しなければ購入できない「我々のための」国債で,債券市場で売買される通常国債と異なり財務省が買い取るため,元本が保証されています.もちろんインフレによる価値の下落は避けられませんが,この点は銀行の定期預金も同様です.日本の個人金融資産は銀行預金の比率が高いそうなので,あまり資産運用に積極的でない中高年の方々が個人向け国債を買い始めれば,償還時の金利上昇を期待している外資ファンドの思惑を外して,緩やかなインフレを期待できるのではないかと思います.
---------------------------------------------------------------------------------------------------
[3] 「個人向け国債」(本ブログ 2012-12-24)
  http://blog.goo.ne.jp/bonsai-juku/e/6419ff9e3ab51552ba6c66ddaf1c5e98
[4] 償還 円建て - Yahoo!知恵袋
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1021744670
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1075182785
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1363872618
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1424282894
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1461037759
  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1485705794