タグ

ブックマーク / m-hiyama.hatenablog.com (13)

  • はじめての圏論 その第2歩:行列の圏 - 檜山正幸のキマイラ飼育記

    「第2歩」と書いたからと言って続くかどうかはわからない、なにしろ僕は気まぐれだからね。 とりあえず第1歩で、手でいじれる圏の例が1つは手に入りました。圏論のような抽象的/一般的な理論を納得するには、具体的な例をたくさん知って、具体例に一般論を適用してみるのがいい方法だと思います。 そこで、関手だの自然変換だのに進む前に、もうひとついじり倒せる具体例を出しておきましょう。しりとりの圏よりは少しだけ高級で、行列(マトリックス)を考えます。僕は、高校で2×2行列の計算を無意味にやらされた記憶があるのだけど、今の教育はどうなっているかしら? ともかく、行列計算の経験は仮定します。 内容: 行列の復習 行列の圏 圏の名前付けとか記号とか ホムセットと矢印記法 図式順記法と反図式順記法 全体目次 行列の復習 行列は、数を四角形に並べたモノです。ここで、「数」は実数だとしておきます。横の並びが行で、縦の

    はじめての圏論 その第2歩:行列の圏 - 檜山正幸のキマイラ飼育記
    Pnnc205j
    Pnnc205j 2009/06/24
  • テンソル計算:112はイチイチニかヒャクジュウニか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    テンソル計算の話題をはじめて出したのは「テンソル:定義とか周辺の話とかナニやら」だと思います。それ以来、たまーにポツリポツリとテンソル計算の話をしています。最近書いた「伝統的テンソル計算を理解するヒント」の続きを書こうとも思っているのですが、今日はどうでもいいヨタ話をします。 あまりにどうでもいい些細な事なので、誰も話題にしないみたいですが、ズーッと引っかかっていたことです。それは; xijk のようにいくつかの(この例では3つ)の添字が付く量xがあると、例えば i = 1, j = 1, k = 2 と具体化された成分を x112 と書くこと。 伝統的なテンソル計算では、内積付きベクトル空間Uを固定して、Uとその双対U*から、ベクトル空間のテンソル積により構成される空間達を全部考えて計算の舞台とします。このとき、Uは有限次元と仮定しますが、N = dim U = (Uの次元) に特に制限

    テンソル計算:112はイチイチニかヒャクジュウニか - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2009/01/07
  • 本日の線形代数:双対空間と共役空間 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ヒルベルト空間Hに対して、双対空間(dual space)と共役空間(conjuagete space)という概念があります。Hの双対空間も共役空間も H* という記号で書かれることが多いので、僕は昨日まで同じものだと思い込んでいました。実際、同義語として扱う流儀もあるのですが、どうも別物と考えたほうがよさそうです。別物だとしても、双対空間と共役空間のあいだに標準的な同型があるので、同一視しても問題はありません。が、区別しないと「同型である」という主張に意味がなくなります。 線形写像と反線形写像 複素数tに対してt-は複素共役だとします。複素数tによるベクトルxのスカラー倍はxtと記します。関数の記述にインフォーマルなラムダ記法とイプシロン記法を使います。 さて一般に、UとWが複素ベクトル空間のとき、足し算を足し算に移す写像 f:U→W が f(xt) = f(x)t であるとき線形と呼び

    本日の線形代数:双対空間と共役空間 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2008/11/26
  • Erlang武士道プログラミング:死んだらどうなる - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「潔く死ね」と言われても、死んだらどうなるか分かんないと不安だし、きれいな死に方もできないですよね。例外とプロセスの終了について、ざっと説明しましょう。 3種の例外の概要 Erlangの例外には、exit例外、throw例外、error例外があります(詳しくは「Erlang実験室:分かりにくいと評判のErlangエラーのまとめ」)。それぞれ、exit/1, erlang:error/1, throw/1 で発生させることができます。 exitはプロセス終了のために使う関数なので、エラーのとき闇雲にexitを使ってはいけません。 Richard Carlsson, "erlang:fault/1 vs. erlang:exit/1" http://www.erlang.org/pipermail/erlang-questions/2006-May/020606.html when you *

    Erlang武士道プログラミング:死んだらどうなる - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2008/11/26
  • ラムダ計算とイプシロン計算を使って線形代数の計算 -- 随伴の例 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「線形代数の難所とアダムとイブと矢印一元論」でベクトル空間の双対の話をして、「イプシロン計算ってなんですかぁ? こんなもんですよぉ」でイプシロン計算を紹介しました。せっかくだから、例題をやっておこうかな。 内容: 前提と例題の説明 双対写像 ベクトルとコベクトルの対応 随伴写像 計算例 雑感 前提と例題の説明 ベクトル空間は常に有限次元、双対空間U*の定義は、多数派に従って「U上の線形形式の空間」としておきます。つまり、U* = Lin(U, K)(Kはスカラー体、Linは線形写像全体の空間を示す)。 ベクトル空間Uと双線形形式φ:U×U→Kを一緒にしたもの(U, φ)を考えます。ただし、φは次の非退化性を持つとします。 ∀y∈U.(φ(x, y) = 0) ならば、x = 0。 φは内積みたいなもんだから φ(x, y) = (x|y) と書きましょう。ただし、上の非退化性条件以外は一切

    ラムダ計算とイプシロン計算を使って線形代数の計算 -- 随伴の例 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2008/09/20
  • イジング模型とポッツ模型のどえらく簡単な例 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    id:hiroki_fさん(a.k.a. ジョニー)が統計力学と熱力学について、質的かつ難しいことを語ろうとしてますが、ついて行けそうにないので、非質的かつやさしい議論をします。 物理的な背景やらメカニズムを理解するのは最初からあきらめ、簡単な例について、なんらかの量を計算できればそれでいい、という方針。ジョニー@居酒屋・天狗に教わったことの(おそらくは曲解しての)復習ですね。 内容: 模型(モデル)の構成 状態とエネルギー 状態の実現確率 イジング模型とポッツ模型 分配関数と結び目 模型(モデル)の構成 磁石(または類似の現象)の話に限ることにして、模型を作るには次の構成要素を決定します。 物体が存在する空間 物体の形状 物体上に分布する量 物体の状態という概念 エネルギーの求め方 エネルギーを確率変数とみなしての確率分布 まず、物体が存在する空間は1次元だとします。物体は直線内にあ

    イジング模型とポッツ模型のどえらく簡単な例 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラミング言語Makeの関数型フラグメント:まとめとサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)

    一時Makefileに凝っていました。Makefileの記述構文のなかに、「Lispに似た小さな関数型言語が埋め込まれているんだ」とか言ってましたよね。あれはまー、遊び半分なんだけど、このテの知識は、実際にMakefileを読み書きするときにも役にたちます。 過去のMakefile関係エントリーを読み返そうと思ったら、けっこう量があるし、紆余曲折があるんで、ここに整理してまとめておこうと思います。 内容: 参考資料 概念と用語 データ型 変数 関数 制御構造 画面出力と強制終了 ●参考資料 Makefileに関しては、次のエントリー群でゴタゴタと説明しています。 Makefileの書き方、その勘どころ Makefileの書き方:プログラミング言語Make プログラミング言語Make 補遺:引数付きの関数 Make 補遺の補遺:遊んでいるだけ Make言語で算術演算 <-- バカ! もっとも

    プログラミング言語Makeの関数型フラグメント:まとめとサンプル - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2008/08/26
  • シェル(bash)のfor文の違いを吸収するMakefileの書き方 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    GNU bashにもいろいろなバージョンがあります。最新は 3.2.* らしいです。1.14.* なんて古いのもまだ使えます。さて、次のfor文はシェルのバージョンにより挙動が違います。 $ for x in ; do echo $x; done GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu) だと何も実行されませんが、エラーでもありません。GNU bash, version 2.04.0(1)-release (i686-pc-msys) だと、次のエラーになります。 sh: syntax error near unexpected token `;' この違いはMakefileを書くときも問題になります。 dothis: for x in $(LIST); do\ echo "$$x";\ done のように書い

    シェル(bash)のfor文の違いを吸収するMakefileの書き方 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2008/08/26
  • 今後も注意せよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    腰の痛みが治まってきた。それはいいが、すぐに教訓を忘れそうだから書いておこう。 あぐらはダメ。(正座はいいが足が痺れる) 椅子の背によりかからない。 座って足を組むのもよくない。 立ったまま腰を曲げてモノを取らないで、膝を曲げてしゃがむ。 歩くとき元気に手を振ったり、体をねじらない。(ナンバ歩き?) 立ったままが一番負担が少ない。(部屋のなかでも立ち読み?) 特にあぐらが問題だな、僕はほとんど常にあぐらかいていたから。 [追記]んもう、油断するとすぐにあぐらをかくなーー>自分 短時間なら正座、椅子にはお尻ですわる。[/追記]

    今後も注意せよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2008/05/20
  • 格闘技と筋肉に、少しだけ親しみと合理性を感じた - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ギックリ腰は僕にとって不幸なことだったが、これを機会に実地に調べてみた。なにを調べたか? -- 今の僕には敏感なセンサーが付いている(敏感すぎるのが困りもの!)ので、どんな歩き方が腰に負担をかけないかがわかる。 歩くときは上下動を少なく、足は真っ直ぐ前に出していく。 そっくりかえったり、胸を張りすぎるのはダメ、わずかに前傾。 腕を元気よく振るのはダメ。 曲がるときは体のねじりを使わず、自然な重心移動。 僕は、格闘技とか興味ないのだけど、上のような事ってどことなく伝統的格闘技っぽいよね。甲野善紀先生のナンバ歩きは、まさにこんな動きを提唱しているし。 立っているときも、空手のナントカ(?)いう立ち方のように、やや内股にすると楽。あるいは、ボクシングのように足を前後に開くのもいい。 立ち上がるとき、座るとき、なにかを持ち上げるときなどは、胴体に頼らず手足を使う。結果的に、ダンベル体操やヒンズース

    格闘技と筋肉に、少しだけ親しみと合理性を感じた - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • シェルのリダイレクトの補遺 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日書いた「シェルのリダイレクトを『こわいものなし』というくらい完全に理解しよう」に、随分とブックマークやトラックバックをいただきました。それらのフィードバックを拝見して、僕の説明にいたらない所があったと思いますので、ここで補足します。 コマンド実行単位≒simple command パイプ記号「|」や逐次実行の記号「;」を含んだ長いコマンドラインも、1つのコマンドとその引数、それとリダイレクト指定からなる“成分”に分解できます。こういった成分をなんと呼ぶか僕は知らないので、仮に「コマンド実行単位」とでも呼びましょう。 シェルの構文(grammar)的概念としてsimple commandというものがあります。ここで言ったコマンド実行単位は、ほぼsimple commandだと言っていいでしょう。「ほぼ」と付けたのは次の理由からです; 「コマンド実行単位」は、1つのプロセスを起動することを

    シェルのリダイレクトの補遺 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2008/01/22
  • いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    オブジェクトとクラスの関係について、次のような説明を見かけました(文言の引用ではなくて、檜山による要約)。 オブジェクトとクラスは全体としてツリー構造をしていて、ツリーの末端をオブジェクト、末端以外のノードをクラスという。末端であるオブジェクトは、その親ノードであるクラスのインスタンスと呼び、クラスどおしの親子関係を継承関係と呼ぶ。 うーむ、この説明、ある意味「簡潔でわかりやすい」とも言えるのだけど、ちょっと単純化し過ぎでしょ。 オブジェクトやクラスの概念て、そんなに美しくもなきゃ、整合的でもありません。実用性やら実装上の都合やらでゴチャゴチャですがね。しかし、そのゴチャゴチャが悪いともいえません。ゴチャゴチャを無理に単純化することなく、必然性を持った(幾分は偶発的だけど(苦笑))複雑さとして理解すべきかと思います。 というわけで、メタクラスやレイフィケーション(reification)な

    いまさらながらだけど、オブジェクトとクラスの関係を究めてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる

    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)
    Pnnc205j
    Pnnc205j 2007/12/24
  • 1