2016/07/04

モニタ-(BenQ FP91G+)の修理

PCの電源を入れたらモニターが映らない。モニターのスイッチを押し直しても反応なし。スイッチの所にあるLEDも点灯しない。


接続と通電の確認

  •  電源ケーブルがきちんと差し込まれていることを確認。 
    • 電源ケーブルがコンセントから抜けかかっていたり、モニタなどの機器に十分差し込まれていないために機能しないことはよくある。
  •  電源ケーブルを交換してみる
    • ケーブルが断線している事もある。”LANケーブルが断線してインターネットに接続出来ない。”なんて事もあった。
  •  別の電通しているコンセントに差し替える。  
    • コンセントに電気が来ていない事もある。”別のコンセントに差したら動いた。”なんて事もめずらしくない。
接続と通電には問題なかった。 LEDも消えているので、故障は電源部周辺と考えられる。 


モニターの分解

  1. 全てのケーブルを外す。                            
  2. 背面のカバーのを外す。
    1. モニターのスタンドを取り付けているネジ2本
    2. そのスタンドの下にあるモニターのネジ1本とその他のネジ4本(2本は隠しネジ。)
    3. モニター下部の凹みからマイナスドライバーを使ってカバーを外す。
  3. 基盤類を被っているアルミカバーを外す。
    1. 液晶ディスプレイと基盤を接続しているケーブルを抜く
    2. VGA端子とDVI端子の両脇にあるスペーサーを外す。
やはり電解コンデンサーのうち2つが膨張している。(基盤から取り除いた後撮影しました。)
これを交換する。


コンデンサーの交換

  1.  2つの基盤を接続しているケーブルを外し、電源基盤(左)を留めているネジを外す。
  2. 膨張している2つのコンデンサーを取り除く。
  3. 新しいコンデンサーをハンダづけする。

モニターの組み立てと通電

分解とは逆の順番でモニターを組み立て直すし、ケーブル類を接続して通電する。組み立てる前に通電する場合には高電圧に注意!(参照:1)

映りました。修理完了。 


修理について

今回は電解コンデンサーが膨張していたので、交換したら元通りに動いた。他にも
  • セラミックコンデンサーが焼ける
  • トランジスターが破損
  • ヒューズが飛ぶ
などの例があるようだ(参照:2、3)。目視で確認できない場合、テスターを使って各素子を検査する。また、ディスプレイやバックライトが破損したような場合、修理可能かどうかがポイント。部品交換の場合には費用がかかる。


参照 

1. Monitor oder Fernseher reparieren
2. パソコン液晶パネル修理
3. 液晶モニター dell S2209Wの分解修理
4. 不良電解コンデンサ問題
5. RDT232WX 修理3パターンの紹介 

2016/06/29

linuxBean 14.04  内臓HDDの自動マウント

LInuxBean 14.04 を使っていてちょっと困ったこと。それは内蔵HDDをマウントしてくれないことだった。12.04 まではマウスクリックでマウント(動的マウント)してくれていたけれど、14.04にアップグレード後はマウスクリックではマウント出来なくなった。

まあ内蔵HDDを使いたいときにコマンドを入力してマウントすればいいけど、出来ればマウスクリックまたは起動時にマウントしてくれるとありがたい。


起動時にマウントさせるには


PCが起動したときにデバイスをマウント(静的マウント)するには、/etc/fstab ファイルに記述すればいい。
/tec/fstab ファイルとはパーティション、内臓HDDやSSDなどのブロックデバイス、外付けHDDやUSBスティックなどの周辺機器をどうやってファイルシステムにマウントするかを記述するファイルだ。
今回のように内蔵HDDをマウントするには fstab ファイルに以下の1行を書き加えれいいだろう。

  UUID=3e6be9de-8139-11d1-9106-a43f08d823a6 /media/BackUp ext4  defaults  0  2


/tec/fstab ファイルの中身


まず、ファイルの中身をみてみよう。

  # /etc/fstab: static file system information.
  #
  # Use 'blkid' to print the universally unique identifier for a
  # device; this may be used with UUID= as a more robust way to name devices
  # that works even if disks are added and removed. See fstab(5).
  #
  # <file system> <mount point>   <type>  <options>       <dump>  <pass>
  proc            /proc           proc    nodev,noexec,nosuid 0       0
  UUID=f8aa0bd4-2fbd-41c4-8319-203f4167a51e / ext4 errors=remount-ro 0 1
  UUID=a575f293-cb40-44fa-8366-94287238b687 none swap sw      0       0
  /dev/fd0   /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
  UUID=3e6be9de-8139-11d1-9106-a43f08d823a6 /media/BackUp ext4 defaults 0 2


# で始まる行はコメント分である。
このファイルには各行にマウントされるパーティションやデバイスが一つずつ以下の6つのフィールド
      <file system>  <dir>  <type>  <options>  <dump>  <pass>
 によって記述されている。それぞれのフィールドはタブまたはスペースで区切られている。
  • <file system> マウントされるデバイスやパーティションの UUID*
  •                      また, /dev/cdrom や /dev/sda1 などそれらのデバイス名
      上の例では UUID=3e6be9de-8139-11d1-9106-a43f08d823a6
  • <dir> マウントポイント
    • 上の例では /media/BackUp
  • <type> マウントされるパーティションやデバイスのファイル形式
  •             指定できるファイル形式には ext2, ext3, ext4, btrfs, f2fs, xfs, hfsplus, tmbfs,             iso9660, vfat, ntfsなどがある。
      上の例では ext4
  • <options> 指定するマウントオプション。基本的なオプションは以下の通り。尚、2つ                以上のオプションを指定したい時にはコンマでつなぐ。
    • defaults   rw, suid, dev, exec, auto, nouser, async の7つのオプションを               指定することと同じ。
    • ro   読み込み専用でマウントする。
    • rw   読み書き可能でマウントする。
    • suid   SUID または SGID ビットの操作を許可する。
    • nosuid   SUID や SGID ビットの操作を許可しない。
    • dev   ファイルシステム上のデバイスを解釈する。
    • nodev   ファイルシステム上のデバイスを解釈する。
    • exec   バイナリデータの実効を許可する。
    • noexec   バイナリデータの実効を許可しない。
    • auto   起動時,または mount -a コマンドが実行されたときにマウントする。
    • noauto   自動でマウントしない。
    • nouser   root だけにマウントを許可する。
    • users   ユーザーグループにマウントを許可する。
    • user   全てのユーザーにマウントを許可する。
    • sync   ファイルシステムへの入出力を同期する。
    • async   ファイルシステムへの入出力を同期しない。
    • atime   inode アクセスを日時を常に更新する。
    • relatime   変更があった inode アクセスを日時をのみ更新する。
    • noatime   inode アクセスを日時を更新しない。
    • 上の例では defaults
  • <dump> 0 または 1 (dumpによってバックアップを作成する -> 1 作成しない -> 0)
    • 上の例では 0
  • <pass> 0~2 ファイルシステムをチェックする順番
  •                     (rootファイルシステム -> 1 その他 -> 2 チェックしない -> 0)
      上の例では 2 


UUIDUniversally Unique Identifier)とは、パーテーションやデバイスを一意に識別するための識別子である。これは 16Byteの16進数で、上の内蔵HDDの例では
  3e6be9de-8139-11d1-9106-a43f08d823a6 
のように表現されている。
UUID を調べるには端末(terminal)から

   sudo blkid  

と入力すればよい。尚, FAT や NTFS などの Windiowsファイルシステムでは UUID が使われていないので,UUID の代わりにシリアルナンバーが出力される。
出力例

  yyyyyyy@xxxxxxx-zzzzzzz-O-E-M:~$ sudo blkid
  [sudo] password for xxxxxxx: 
  /dev/sda1: UUID="58c5c831-15dc-4054-8237-14d095808ee2" TYPE="ext4" 
  /dev/sda5: UUID="f8aa0bd4-2fbd-41c4-8319-203f4167a51e" TYPE="ext4" 
  /dev/sda6: UUID="a575f293-cb40-44fa-8366-94287238b687" TYPE="swap" 
  /dev/sdb1: LABEL="TOSHIBA EXT" UUID="30DA0059DA001DAA" TYPE="ntfs" 
  /dev/sdc1: UUID="3e6be9de-8139-11d1-9106-a43f08d823a6" TYPE="ntfs" 
  yyyyyyy@xxxxxxx-zzzzzzz-O-E-M:~$


参照


1. fstab  (Archlinux Jap.)
2. fstab  (Ubuntu Eng.)
3. fstab  (Ubuntu De.)
4. fstab  (Linux man page)
5. UUID  (wikipedia Jap.)
6. UUID  (Ubuntu De.)

2016/06/25

LinuxBean 14.04 Bodhi Linux から LinuxBean へ

LinuxBean とそのシステム要件

Bodhi Linux をインストールしていたPCのメモリーを256MBから512BMに増設した。これでこのPCのスペックは以下の通り。
CPU:AMD64 (2.2 GHz)
メモリ:512MB 
HDD:20GB
これなら LinuxBean 12.04 をインストール出来る。LinuxBean は Ubuntu 12.04/14.04 LTS の minimal install版をベースにした軽量ディストゥリビュージョン(軽量Linux) だ。(参照:1,2)
LinuxBean 12.04 のシステム要件
CPU:i386 800MHz 以上
メモリ:256MB 以上
ディスクの空き:8GB 以上
LinuxBean 12.04 のLiveCD が手元にあったので早速インストールする。インストール後はアップデートをしておく。ここでデータ用の外付けHDD (1TB) を組み込む。再起動後、このHDDは sdb1 として /media に mount (マウント)される。
ここで LinuxBean 14.04 へのアップグレードの通知があった。
LinuxBean 14.04 のシステム要件
CPU:i686 Pentium M, Celeron M 以降、及びそれらと互換性のあるCPU
メモリ:384MB 以上
ディスクの空き:10GB 以上
システム要件は満たしているので 14.04 にアップグレードする。


Bodhi linux VS LinuxBean
  • 共通点
    1. Ubuntu 12.04/14.04がベース
  • Bodhi Linux の長所
    1. 少ないメモリ(256MB)で動作
      1. LinuxBean12.04 は256MBでも最小システム要件は満たしているが、上記の環境ではグラフィックに問題があり正常には動作しなかった。一方 Bodhi linux はもたつき無く動作した。(参照:3)
  • LinuxBean の長所
    1. 無線LAN子機の認識
      1. LinuxBean12.04 では無線LAN子機 (WLI-U2-KG54L,ISY IWL 2000)を自動認識してくれた。一方 Bodhi linux ではそれぞれファイルの編集(参照:4)やドライバのインストールが必要だった。(参照:5)
    2. GUIが使いやすい。
      1. LinuxBean12.04/14.04 はデスクトップ環境にLXDEを採用しているので、Ubuntu系やwindows系を使っている人にはなじみやすい。一方 Bodhi linux ではEnlightenmentを採用しており、使いこなすには慣れが必要だ。(参照:3) 

Mount (マウント) とはあるパーティションまたはデバイスとあるディレクトリを関連づける作業のことである。このマウントによって関連付けられたディレクトリMountpoint (マウントポイント)という。マウントによって、ユーザーはハードディスク、フロッピーディスク、CD-ROM、USBメモリなどの記憶媒体に保存してあるデータを利用できるようになる。(参照:6)

参照

1. 舞台袖
2. LinuxBean
3. Bodhi Linux  古いPCの再生1
4. Bodhi Linux  Buffalo WLI-U2-KG54L で無線LANに接続
5. Bodhi Linux  ISY IWL 2000 で無線LANに接続
6. Linux LPIC - mount / unmount of File System
 

2016/02/01

4色定理とコンピュータ


5. 4色定理とコンピュータ 

4色定理とは平面上に地図が書かれていてその国に色を塗るとき, どんな地図でも4色あれば足りるという定理である(一つの国は飛び地を持たないとする). これを証明するのにコンピュータが用いらた。この事について数学者(+世間の人たち?)の間で, 「コンピュータを用いたを証明と呼べるのか」という議論がなされたという事は聞いたことがあるかもしれない. 

コンピュータが用いられたといっても, 決してありとあらゆる地図に対する塗りわけをコンピュータにやらせた, というものではない. 地図の種類は無限にあるので, そんなことは不可能である. そして, 意味のある数学の定理は事実上全てが, 無限の対象に対する言明(全ての自然数は..., 全ての実数は...)だから, コンピュータによって「難しい」定理の証明の 「本質的な部分」がなされる可能性は今も昔も少ない. 

4色定理の場合まず, 何通りかの「部分地図」の形が定義され,
  1. どのような地図も必ずそれらのうちのどれかを一部に含む
  2. 一方, それらのどれも, 4色で塗り分けられない最小の地図(最小反例)には含まれ得ない,
という事が証明された. 4色定理が成り立たないとしたらその中で国の数が最小の例がある はずだが, 上の2つの事実により, そのような例は存在しないことになり, 定理の証明が完成する. 

上で何通りかの「部分地図」と述べたその部分地図の数が, 最初の証明(AppelとHaken)では1476種類あり, 前者の証明やプログラムも複雑であったため, その正しさに疑問がつけられたという. 後にThomasらによってより単純なプログラムによる証明が得られ, その際の「分類」の数は633種類だった. 

参考リンク:

私自身はコンピュータをやっている人間として, このような証明がなされたことに興味を覚えるし, 今後別の, もっと多くの数学者の関心を引いている問題で, 似たようなことが起きても不思議はないと思う。むしろそれが数学の進歩に役に立つのであれば喜ばしいと思う. そもそも命題自身の真偽がわかっていない状態では手段など選ばず, 「後はこれら有限個の場合をコンピュータでチェックするだけ」というところに持ち込んだら, コンピュータを利用するのは自然なことだ. そして4色問題を「有限個の場合のチェックを行えば良い」ところまで持ち込んだのは紛れもなく人間だ。今後別の問題の場合でもおそらくなるするだろう. 
これに対し, 「これを数学の証明と呼べるのか」という批判が起きるのもまた分からないこともない. 要するに証明は「白黒つける」だけが目的ではなく「分かる」事が目的であり, 要するに何を持って「分かった」とするかという問題だ. コンピュータの手続きがYESと答えたからと言って, それを見た人にとって「分かった」という満足が得られないではないかという感覚は理解できる. しかし, チェックのためのプログラムが十分理解可能で信頼に足るものであれば, 「わかった」と言えるのではないか. そもそも人が書いた証明であればそれが1000ページを越えており, 自分ではとても検証できなくても良しとするというのも不思議な話だ. 要するにプログラムを使うと「分かった」とは言えず, 使わなければ「分かった」というような 2者択一ではないということだ. 

そもそも同じ問題に何通りも証明があるのが普通であり, その問題が重要ならば, たとえ先にコンピュータを用いた証明がなされたとしても, より簡潔な, うまくするとコンピュータに頼らずに正しさが確認できるような別証が出てくるのが普通だろう. それは他の問題でも, 最初に長く複雑な証明が提出された後, より本質をついた, 整理された証明が出てくるのと同じ事だ. たまたま最初になされた証明がコンピュータを使った「人」によってなされたというに過ぎない. それを認めずに「コンピュータに先を越された」とか, 「コンピュータに人間が負けた」という類の感情論はナンセンスだ. そのような人にはぜひ以下の事実を思い起こしてもらいたい. コンピュータによる計算の原理も, その物理的な実現方法も, プログラムによる計算の表現方法も, 元はと言えばすべて人間が考えたものだ.

出典Motivation to learn computer  (一部変更)


 

機械学習(例からの関数近似または補間)


4. 機械学習(例からの関数近似または補間)

機械学習とは文字通り, 「機械による学習」=「学習する機械」の事であり, 擬人化して言えば使っているうちに勝手に頭がよくなる(正解を出し易くなる) コンピュータプログラムの事である. 人間も, ある日足し算の仕方を習うと 足し算が出きるようになり, 廊下を走って転べば廊下を走らなくなる. 元々できなかった事が出きるようになる事を学習というのだから, コンピュータにこれをやらせることができれば実に色々な事ができそうである.
後からがっかりされぬようもう少し現実的な話をしておくと, 典型的な応用としては手書き文字認識などがある. 例えば郵便番号の自動読み取りなどは実用的で, 色々な形で書かれた各数字 $0, 1, 2, \ldots , 9\,$ を, コンピュータに正解ともに覚えさせておく. 実際に与えられる形はそれらと正確に同じものではないが, コンピュータがそれらしいものを正解として出す.

f(File:One1.png) = '1', f(File:One2.png) = '1', 
f(File:One3.png) = '1', f(File:One4.png) = '1', 

f(File:Two1.png) = '2', f(File:Two2.png) = '2', 
f(File:Two3.png) = '2', f(File:Two4.png) = '2', 
画像に写っている物体を当てるという, 物体認識の問題でも, あらかじめこの画像は花です, この画像は象です, などとコンピュータに入力しておくと, これまで見たどの画像とも 同一ではない画像に対して, 花だ, 象だと, 答えるようになる.
少し問題を抽象化して考えると, 要するにここでやらせたいことは, ある「関数」の値を, いくつかの与えられた入力と出力の「例」から求める(推測する) 事であると考えられる. 文字認識の例では, 入力が画像であり, 出力が $0, 1, \ldots , 9\,$ のどれかの数字(記号)である. ありとあらゆる画像が「例」として与えられていれば問題はそももそ存在しないが, それは現実的ではない. 例えば1画素が白か黒かの2値であるとし, 画像が16画素x16画素という控えめな大きさであっても, 可能な画像は $2^{256}\approx 6\cdot 10^{26}$ 通りある. したがって, 例として与えられていない入力に対する出力を, いわば「補間」することが問題である. 統計学で, 「回帰」(観測データによく合う関数の形を求める問題)というのを習うと思うが, 目標はそれと同じと言ってよい. 求める関数として一次関数を仮定して, もっともよく合う一次関数がいわゆる回帰直線であり, それを求める手法として最小2乗法がある. 機械学習はそれをもっと複雑な関数に対して行う様々な方法を研究する分野である.
このための手段は非常に色々な方法が研究されていて, 私も専門家ではないのであまり知った顔で書く事はできないが, 例えば, 入力 $x\,$ に対し, $x\,$ に一番近い「例」を見つけてその出力を, $x\,$ に対する出力とする方法, 各文字に対して, 特定パターン画像が発生する「確率」を定義して, その確率がもっとも高いものを選ぶ方法, などがある.
一旦この様に抽象的に問題が(つまり, 入出力例からの関数を補間する問題として) 定式化されると, これらの方式が非常に広い範囲の問題に応用可能だということが分かるだろう. 例えば, 実用的によく用いられているのは, 迷惑メールの分類である. 事前に多くの迷惑メールと, そうでないメールのサンプルを入手しておき, 例として入力しておく. コンピュータは, 中に書かれている文章を人間並に理解して行っているのではなく (これはやりたくてもできない), 多くの場合は, メール全体を単なる単語の集まりとして見ている(この他にメールの差し出し人や, 送信したマシンのアドレスなども情報に含める). 後は未知のメールに対する答えを 「補完」する. 使える方法は, 原理的には手書き文字認識の場合と共通である.
機械学習はその原理から, 人間が「なぜか」できてしまうような処理を, 計算機に真似させる場面でしばしば力を発揮する. 「なぜか」できてしまう処理だから, そもそもコンピュータに正解を計算させる手順もよく分からない, あるいはそもそも正解を厳密に定義しようと思っても, 最後は曖昧な部分が残っていて, 人間にすらそれができないという場合もある. 手書き文字認識も, 画像認識も, 迷惑メールも全てそのような問題である.
私は, 機械学習という, 一見すると非常に高級に見える処理が, 少し冷静に分析すると, 関数の補間という問題に定式化され, そのおかげで非常に広範囲の応用があり, 特定の応用ごとに似て非なる方法を発明しなくてよく, それが「計算機に知能(に似たもの)を持たせる」というゴールに向けた一方であることに 感銘を受けるのですが, どうでしょうか.


出典Motivation to learn computer
 

乱数(試行)を用いた計算やシミュレーション

3. 乱数(試行)を用いた計算やシミュレーション


手計算で求めるのは割と厄介なのに,コンピュータにとっては非常に簡単になってしまう問題に,色々な確率の問題がある.例えば打率3割の打者が年間500回打席に立つとして,打席連続ヒットが出ない事が15回以上ある,というのは,どのくらいの確率で起きるのか?
コンピュータにこれを計算させるのは非常に簡単で,要は「実際に0.3の確率で「当たり」となるようなクジを500回引く」 ということを何度も繰り返し,「15打席連続ハズレが1回以上ある」回数を数えれば良い. 100000回繰り返して,31234回そのような事があったら,確率はおよそ0.31くらいと言うことだろう(試しに今やってみると0.51と出た.3割打者もシーズン中15連続無安打と言うことはざらにあるということ).
微分方程式の例と同じく,これは「試行」をコンピュータで行うことさえできれば,およそどんな確率でも計算できるし,期待値なども計算できる.例えば様々な要素で株の値段が上下する時に,自分の持っている株全体の値打ち(明日の株価の期待値)はいくらか,などという計算も簡単にできる.
これを用いて,元々は確率の計算ではなかったものを,乱数(試行)を用いて求める計算方法が存在する.例えば3次元空間内で,
\[x^2 + y^2 + z^2 \leq 1, x + y + z \geq \] で表される領域の体積を求めるという問題を考える(手計算でも求められるが,ここで例題として使う).方法は驚くほど単純で,

       1. 点 $(x, y, z)\,$ をランダムに生成する. ただし,
               $0 \leq x \leq 1$, $0 \leq y \leq 1$, $0 \leq z \leq 1$
           とする.
       2. $x^2 + y^2 + z^2 \leq 1$, $x + y + z \geq 1$ を満たしているかを検査
       3. 1と2を多数回繰り返し, 満たした回数の割合を答えとする.

というものである. 要するに,単位立方体の中に点をたくさん投げ込んで,考えている領域の中に入ったら当たり,入らなかったらハズレとして,当たりの確率を計算していることになる.
詳細は省略するが,この方法の発展として,実際に起きやすい点を重点的に生成するという方法(重み付きサンプリング)が存在する.つまり,上記では単位立方体の中に点を一様に生成したが,そうではなく例えば原点の近くによりたくさんの点が生成されるようにしたりすることが可能である.
この方法を用いると,コンピュータを用いて様々な問題の「解」を効率的に探索する事ができるようになる.例えばある関数 $f(x,y, z)\,$ を最大にする $(x,y, z)\,$ を求めたいが,その答えは解析的には求まらないとする.コンピュータを用いてこれを(運が良ければ)求める安直な方法は,色々な $(x,y, z)\,$ をひたすら生成し,その最大値をとるというものである(もちろん必ず正解が求まるという保証はないが).そうする代わりに, $f(x, y, z)\,$ の値が大きい点の付近だけを「重点的に」生成すると言う方法がある.

出典Motivation to learn computer

2016/01/31

数学を生き生きと理解するためのプログラミング


2. 数学を生き生きと理解するためのプログラミング 

コンピュータによる微分方程式のシミュレーションは強力で, その原理は簡単だが, 実際には数々難しい点がある. まず, 上でも書いたとおり数値シミュレーションで求めているのはあくまで近似解である. その近似解がどの程度現実に近いかは(厳密解をシミュレーションで求められない以上), 数学を用いて評価するしかない. それをしないままシミュレーションをすると, 現実と, 定性的にも全くかけ離れた結果(現実の解は発散しないのに, シミュレーションでは発散してしまうなど)を出し, 間違った結論を出してしまうこともあり得る. どのようにしたら, 誤差は許容しつつ, かつ「定性的に望ましい」解が得られるかというのは, 闇雲に分かるものではない. 

また, シミュレーションで現象をモデル化する場合でも, 現実をダイレクトにモデル化することは不可能な場合がほとんどである. 例えば銀河系をシミュレートするのに星一つ一つを質点とみなして計算したのでは, 銀河系一つで数十億個の質点間の引力を計算することになり, とてもできるものではない. このようなとき, どのように現実を近似してもよいか, あるいは支配方程式をどのように書き換えて, より効率的に解を得るかという考察のために数学が重要な役割を果たす. 

これを, コンピュータシミュレーションを学ぶためには数学も学ばなくては「いけない」 (事実その通りではあるのだが)と見ずに, むしろ数学を学ぶご利益を, コンピュータが非常にわかりやすく見せてくれると思うと良いのではないだろうか.
例えばこれから線形代数で, ガウスの消去法に始まり, 行列のランク, 固有値・固有ベクトル, 行列のJordan標準型, という一連のストーリーを学んでいくことだろう. 例えばJordan標準型のその導出は高校の時の「行列の対角化」と似ているが, それよりはるかに厳密で難しく, 結果も複雑である. 難しさの原因は高校の時と違って具体的に与えられた行列に対して大体計算が出きればよい, と言うだけでなく, 「全ての行列が」どのような標準型を持つのかを余すことなく, 完璧に論じようとするからである. そもそも大きな行列を何に使うか分からない状態で, これらをしっかり学ぶ気力を持続するのは中々大変である. 

コンピュータによって行列の固有値や固有ベクトルを求めるのに, 非常に簡単な方法があるのだが, その方法が「うまく行く」事をきちんと確認(証明)しようと思うと, 行列の標準型に関する理解が役に立つ. ここではその詳細が重要なのではなく, 大学で習うような「厳密な」数学が, あるプログラムが「全ての入力に対して」動作することをしっかり議論するのに本質的な役割を 果たすということである.

参考リンク
線形代数の本はいわゆる教科書以外に, 実践重視,イメージ重視など説明に工夫を凝らしたものがいくつもあるので探してみると良い.

出典Motivation to learn computer