記号の世界ゟ

このブログでは, 数学書などの書評を書きます。また、受験などの勉強法をまとめます。

読書していることについて

昔からけっこう本を読むのが好きだったのですが、約10年くらいでやっと「本で読んだ内容が身についている」という実感を安定して持てるようになってきました。*1
というか、そういう読み方がやっとわかってきたという感じです。


そんなわけで、本を読むうえで大事だと思っていることを備忘録として残します。
「本の読み方」なんて本もYouTube動画も山ほどあるので、それを伝えることやその完成版を作ることが目的ではありません。
自分の今の実感を表現したいだけです。


「いい読書」という観点では、自分は以下の4つを意識することが重要だと思っています。
 「目的を持つ」「本を選ぶ」「本を読む」「アウトプットする
これを具体的に書いていきます。最後に読書について思ってることを書きます。

目的を持つ

目的を持って本を読むことは一番大事だと思います。
特に、他の項目「本を選ぶ」「本を読む」「アウトプットする」すべてと関係するので。


とはいえ、目的をあまり持たずに本を読むこと自体が楽しかったりするんですよね。本好きな人は。
例えば、お目当ての本を探しに行った本屋で、初めて見た本が気になって買ってしまった場合、
そんなに中身も評判も分からない状態なわけで、つまり、そんなに目的がないわけです。
むしろ、自分の想像していないような内容に出会えたりすることを求めていたりしていて、明確に目的を持っていればできない読み方とも言えます。
こういうのも大切だと思います。


という感じで、目的を持たない読書もありだと思います。
ただ、目的を持って読んでるはずの読書で目的を忘れる、ということをやってしまうのは問題です。
「眠い目をこすりながら読み進めていて本当に役に立つ?」「この本は当初の目的のために役に立たないことに気が付き始めてるのにこれ以上読み進める意味ある?」
など、目的からするともはや読んでも意味がないのに本を読もうとしてしまうことは、まあまあの頻度であるわけです。(いや、めちゃくちゃある。)
こういうのを避けるためにも「この本を読む目的は何だったか」は、できれば常に頭の片隅に置いておきたいものです。

本を選ぶ

本のいい選び方

本の紹介が信頼できる人を見つける

いい本を、自分に合うような本を紹介してくれる人は必ずいます。
ブロガーなりYouTuberなりTwitterなりたくさんいます。そういう人を見つけられたら最高です。
読んで良かった本の引用文献が次に読むべき本であることも多いですし、そういう本の著者はTwitterでいろんな本を紹介していることも多いです。

本屋で推されている本を読む

本屋さんは本を商売にしてるのでいい本の目利きがすばらしいです。当然ですが。
大型書店ではジャンルごとに担当がいたりするので、推されてる本は注目する価値があるでしょう。
信頼できる本屋を見つけるのが大事だったりします。
自分は大学生協のアート系・クリエイト系のコーナーのフェアはかなり信頼してました。

好みに合ったライターの本を読む

いい本だと思ったときは、内容云々以上に著者の書き方や興味自体が自分にあっているのかもしれません。
その著者の他の書籍も興味があるような内容なら読んでみましょう。興味がないような分野だとしてもその人の書き方なら興味が持てるかもしれません。
本ごとにこれをやるというよりは、著者に注目していくうちに、本が出たら必ずチェックする作家が増えていくようになると思います。
そういう作家(新しい本が出るたびに読んで後悔しない作家)が増えることはいいことだと思います。

名著を読む

名著と呼ばれている本は読んで損はないです。
「こんな生きる上で前提みたいな重要な知識なんで早く教えてくれなかったんだ」ってほどの本もあります。
逆に、大したこと書いてないと感じたとしても、それが名著である理由を考えたり、「名著リスト」の一つを消化してしまったと考えればそんなに損ではないです。

読んで役に立たないと感じた本は読む必要がないと基本的には思いますが、名著と呼ばれるものに関しては"はずれ"を引いたとしてもトータルで絶対に損はしないと経験上断言できます。*2

本の悪い選び方

選び方は悪い方法を上げる方が簡単かもしれません。

いきなり原著を読む

何か有名な理論なり考え方なりの原著を読むのは「原著を読む」ことが目的な場合を除いてほぼ役に立たないケースが多いです。
例えば、原著と呼ばれるほどの本はそれまでの考え方をひっくり返したからこそ価値があるケースがほとんどなので、その時代・分野の前提を理解してないと意味がないです。
「そのときの知識では整理できなくて今ならもっとよくわかってることが書いてない」とか「最先端なので専門家ですら難しい」とか読むべきでないパターンはいくらでもあります。

もちろん原著を読む価値があるときもありますし、少なくとも買って損はないパターンも多いです。
特定のテーマの本をいくつか読んでいて、頻繁に参照されるような本なら原著を手元に置いておいた方がいいでしょう。
また、原著が難解すぎて変に解説書とかを読むよりも直接読んだ方がいいパターンもあると思います。(誤読してしまったとしても!)
(ここでジュディス・バトラーが念頭にある。)
とは言え、まあ明確な理由がない限り原著をいきなり読み始めていいことはほとんどないと思います。

ジャンルあるいはテーマが興味にあっているという理由だけで読む

興味がある分野だとしても適当に手に取った本を読むくらいなら定評のある本を読む方が絶対にいいです。
この方法をとってしまって読んで失敗したとしても、よっぽどでない限りなんだかんだちょっとは役に立った気になるのがです。
読書が好きな人は、読む必要もないし読む価値もなかったはずの本でも、読み切ってしまうとそんなに後悔しないんですよね。不思議ですよね。まあ本が好きだからそうなるんですが。

こうならないようにせめて途中で読むのを止める判断をする、これができるようになることをオススメします。

本を読む

アナログとデジタルを使い分ける

自分は紙の本ばかり買っていましたが、デジタルも使い始めました。
紙の本は場所をとってしまうことが、デジタルを使い始めた一番の理由です。
アナログデジタルどちらにも一長一短あるのですが、デジタルはスマホがあればいつでも読めるのが自分の中ではかなりの利点です。
興味のある本が増えて全然減らないのがかなりストレスだったのですが、デジタルで本をコンスタントに読む習慣が付くと、
なぜか自然にアナログの本も消化できるようになってます。いい循環です。

本を読む習慣をつける

本は読みましょう。
本好きの一番の悩みはこれでしょう?
本は読みましょう。


絵は描かないとうまくならないっていうじゃないですか?
本は読まないと積読が減らないのもだいたい同じですよ?


本は読みましょう。


まあ、そうは言っても読めないということに本気で悩んでいるなら、本を読むための本はいっぱい出てるのでそれを本気で読んで本気で実践しましょう。
あるいは、『習慣の力』のような本にかかれていることを応用して、本を読む習慣をつけるのに使いましょう。

自分の持っている問題(テーマ)を解決するような本を読む

自分がいま生きている上でリアルに興味関心を持っていること、心でもやもやしていること、知りたい・理解したいと思っている本を読みましょう。
そういうものはぴったりはまれば直接役に立ちますし、本の主張が納得できなかったとしてもそれが心に残ります。
読んでも役に立ったと思える本に出会うのは難しいですが、このレベルで深く興味がある内容であれば、内容が期待とはずれても自分の心に残りやすいです。


また、期待とはずれた内容だとしても、だからこそ自分の興味の対象をこれまでと違う見方を教えてくれます。
例えば、自分は今「フェミニズム」に興味があって『家庭の誕生』という本を読んだのですが、この本はむしろ従来のフェミニズムの観点で語られてきた「家庭」を
意識的に違う観点で書き進めることが目的の本だったので、「フェミニズム」の側面では満足できなかったわけです。
ですが、「フェミニズム」に拘ってると気が付かないものが得られるわけで、この本に関しては日本人の「家庭」の捉え方の変遷が分かってかなり勉強になりました。*3
もっと言うと、「コミュニティ」も今の興味の一つで、そっちへの学びもあってよかったです。

内容の近い本を連続して読む

理解が深まるので、内容が近い本を続けて読むのはオススメです。
よくあるパターンは、入門書を読んで、そこに書いてある発展的な本を読むというものでしょうか。
発展的な本の方で躓いたときに入門書の方の書き方を見ると、理解が進んだり逆に矛盾を見つけてしまい問いが深まったりして、どちらにせよ学びは深まります。


この方法の裏目としては、同じことばかり読むことになるので飽きる可能性があることです。
自分が本当に興味を持っている内容や、難度に明確に差があるものを読むのが一つの手です。
場合によっては、2冊目が思っていたのと全然内容が違うという場合もあるのでそういう場合は撤退しましょう。
ジャンルで本を選ぶとよくあることなのです。

全部読む必要はない

本は最後まで読み切る必要はないです。
これにこだわると本が溜まっていく一方になります。
期待と違うなって思った本には見切りをつけることは大事です。
また、最初は理解できた本も途中から全然分からなくなってきた場合、一旦中断するのも大事です。

何か目的を持って本を読むなら、読んだページ数ではなく、身についたもののみを考えましょう。途中だったり読み飛ばしたりしても目的が達成できてたら十分なのです。


近いことですが、読めないと思っている本があれば売った方がいいです。読める本に集中しましょう。後で読みたくなったらちょっと後悔しますがそのときに買えばいいです。
電子書籍なら買い直しの損はないので、その点でもオススメです。

アウトプットする

アウトプットはマストです。


アウトプットはマストです。


ただしアウトプットという言葉をかなり広い意味で使っています。

本を読んだからには何かに使えないと意味がないのですが、後で思い返すと読んで役に立ったと思える・覚えている本って自分はかなり少ない(少なかった)です。
なので、こうならないようにアウトプットしましょう。

以下がオススメのアウトプット法です。

人に話す

読んで気が付いたこと思っていることを人に話してみましょう。
相手からの問いに答えられなくて読みの浅さに気が付いたり、理解が不十分な部分に気が付いたり、そもそも何も思い出せなかったりします。
そうすると確認したいポイントが分かるので簡単に読み直すだけでしっかり身に付きます。

人に話すのは本当に役に立つので、一緒に本を読んだり、むしろ誰かが読んだ本の内容を自分が聞く、みたいな関係が築けたら理想ですね。
Twitterとかで交流がある人で、自分が読んだ本の話を誰かに聞いてもらいたい場合は僕に言ってもらえば喜んで聞きます。気軽にどうぞ~。(これ、わりと本気のメッセージです。)

ブログに書く・動画にする

「人に話す」と近いですが、「伝えること」ではなく「人に伝える形式でアウトプットする」こと自体に価値があると思います。
「ブログに書くのは忘れるため」というのは自分のモットーなのですが、この話は長くなるので別の機会で。

せっかくブログなりなんなりで発信するなら、いいフィードバックがもらえるような方法をとるのがオススメです。
例えばTwitterなら問いや疑問を書くとフィードバックがもらいやすかったりします。*4

内容の近い本を連続して読む

(どこかで見た項目な気が。。。)
内容の近い本を読んだときに、前の本の主張と比較したり片方でしか書いてない内容をもう片方に結び付けたり、二冊を矛盾なく自分の中で落とし込む作業をすれば、それは自然とアウトプットすることになります。
個人的にはこういう読みはかなり重要だと思ってますし、アウトプットとして認識するといいと思っています。

メモを取る

メモを取るのは学びのいい方法として取り上げられがちだと思いますが、そんなにいい方法ではないと思ってます。


ただ、「いい本だったけど、身についた気がしない」「要点が分からなくなってきた」みたいな時に、ポイントを書き下してロジックの構造を整理したりするには役に立ちます。

自分の場合、いい本だけどけっこう長い本を読み終わった後、目次で全体像を見直しつつ、本をスキミングして、見るだけで内容が思い出せるフレーズを書き写しておくってのをやったりします。
時間がかからないわりに2回目を読む程度の効果がありますし、ノートを見て復習できますし。

この方法は読みがうまくいかなかったときの最終手段、あるいは、絶対に理解したい本を身につけるための方法だと思ってるので、できるならもっと簡単にできて効果も高いべつの方法をとりたいです。

最近の自分と読書について

最近自分が熱心に本を読んでるのは、専門性は尊重すべきだし大事だと感じるようになったからです。
逆に言えば、そうなってないことに失望しているからです。自他ともに。


一つは、自分のことで、トランスジェンダーについてニュートラルに捉えていると思っていたことが、典型的な偏見であることを本を読んで初めて理解してかなり反省したからです。
「差別についてごちゃごちゃいうせいで差別がより深まるんだ」「知らなければ差別は起こらない」なんていう人がいて*5
それは違うでしょって思っていたのに関わらず、知識がないことから典型的なステレオタイプな考えをニュートラルな考えだと、偏見がないとすら思い込んでたわけです。
これでけっこうへこんで、ちゃんと勉強して考えを持つようにしようと思うようになりました。*6


もう一つはSNSで、思い込みや思いつきだけでの論争・水掛け論*7に辟易してることです。
これに関しては今に始まったことではないし、時代性の部分もあるので仕方がないと思っている側面もあるのですが、自分は片足突っ込まないようにしたいです。


そういったことを自分もいつの間にかやってしまう、そういう時代なので、それを抑えるためにどうしてそうなるのかを考えています。


SNSで不毛な論争になりがちな原因として以下があると思ってます。

  • 自分の思いつき、ロジックだけで結論を出す(自分の知識・興味範囲でしか考えてないので話が逸れがち。問題が合ってても考えの精度が悪い。)
  • ネットで調べて出てきた自分の論調に合ったものを議論に使う
  • そのトピックに関する基本的な考えに矛盾することをいう(場合によっては基本を理解した上でそれを乗り越えることを主張している可能性があるのでよけい議論しづらい。ただ、そもそもその基本を知らないケースがほとんど。)


以上は全部そのトピックについて勉強していれば乗り越えられる、しかも、わりと初歩的なところだったりするので、少し勉強すれば乗り越えられるなと思って、本をたくさん読んでいます。


そんなわけで、最近本を読んでるわけです。
興味あることとして政治的なことばかり上げた気がしますが、自分の興味の半分以上はイラストとか脚本とか映画とか数学とかエンジニアリングなので、そういう本も読んでます。


久しぶりにはてなブログに文章を書きましたが、文章書くの難しいですね。


最後に、最近よく参考にしてるOhama Ruriさんの動画が今回の内容にもぴったりなので、引用して終わります。
www.youtube.com

*1:本を読むのが好きになったのは『ゲーム的リアリズムの誕生』を受験期に読んだのがきっかけ。本屋が好きになったのは多分中高生のときにBOOKOFFで漫画の立ち読みしまくって、参考書とかもついでに見たりしたから。とけっこう自分の中では明確で、BOOKOFFには変な習慣付けさせられたなぁと思っていたのですが、今の時代を考えるとけっこうかけがえのないものだったのかもなとも思っています。

*2:みたいなことを書いていると、今読んでる本よりも名著レベルではもっと名著な本はもっとあるし、そういうの読むべきなのかなという気分になってくる。

*3:個人的には、外国の事情がもっと知りたかったし、この本の目的からしても1章そういう章があった方がより分かりやすくなったと思ってる。

*4:本の感想ではやらないと思いますしそもそも発信すべきことではないですが、対立を助長するような書き方をしたり、もっと悪い場合特定のグループ・個人をけなすようなことを書くとネガティブなフィードバックが返ってくるのがTwitterなので絶対にやらないでくださいね。まあそういう投稿はよく見るし、実際やる人は多いんですよね。

*5:部落問題になるとめっちゃよく聞きますね。この主張。

*6:どういうステレオタイプを持っていたかは書かないですが、表現すること自体が偏見を再生産したり、当事者の問題と関係ないものを押し付けるようなタイプのものです。後者に関しては詭弁の一つとして名前が付いていたはずだけど名前が思い出せない。

*7:人格攻撃とかもありますが、それは今回の話とは別。議論をしてるつもりで議論になってないようなものを念頭に置いてます。

数列の和を計算する方法

突然ですが、なぜ(不定積分は便利なのでしょうか?
それは定積分が計算できるからです。

 F(x) f(x) の原始関数であるとしましょう。つまり、
 
\quad F'(x) = f(x)
としましょう。すると、 f(x) の定積分

\quad \int_a^b f(x) = F(b) - F(a)
と計算できるのでした。これは高校では定積分の定義であって役に立つもなにもないのですが、そういう立場だとしても積分で面積が求まるわけだから役に立つわけです。

こんなわけで、(不定積分が計算できるようにしておくと定積分が簡単に計算できるから、みんな勉強させられるわけです。

実は数列の和も同じ考え方ができるのです。

差分

微分の代わりに差分という作用素を定義します。
関数  f(x) の差分  \Delta f(x)

\quad \Delta f(x) = f(x + 1) - f(x)
と定めます。

例えば、
 
\quad \Delta x^2 = 2x + 1
となります。多項式の差分を取ると次数が下がるのは微分と同じですが、微分と違ってゴミの項が残ってしまいます。

そこで、差分と相性のいい関数を定義します。
階乗関数  x^{[n]}
 
\quad x^{[n]} =
\begin{cases} x (x - 1) \cdots (x - n + 1) &(n > 0)\\1&(n =0)\\ \frac{1}{(x + 1) (x + 2) \cdots (x  + (- n) )} &( n < 0)\end{cases}
と定める。

例えば、
 
\quad x^{[1]} = x\\
\quad x^{[2]} = x(x - 1)\\
\quad x^{[-1]} = \frac{1}{(x - 1)}\\
\quad x^{[-2]} = \frac{1}{(x - 1)(x-2)}
のようになっています。

階乗関数に対しては、
 
\quad \Delta x^{[n]} =n x^{[n - 1]}
となっていることが分かります。多項式は階乗関数の一次結合で書けるので、多項式の計算でも階乗関数の計算に言い換えることができます。

また、指数関数の差分は
 
\quad \Delta a^x =(a-1) a^x
となっている。特に、 a = 2 のとき、 \Delta 2^x =2^x となっています。
(指数関数は差分の固有ベクトルと覚えておくと分かりやすい)

ちなみに、 \Delta f(x) = 0 とは  f(x+1) = f(x) のことなので、周期関数のことになります。
つまり、差分でゼロになるのは定数だけではないことに注意してください。

和分

さて、微分における原始関数と同じものを和分に対しても考えましょう。
 
\quad \Delta F(x) = f(x)
となる関数  F(x) f(x)和分といい、F(x) \sum f(x) と表すことにします。
不定積分積分定数と同様  \sum f(x) は周期関数分の不定性がありますが、以下では重要ではないですし、抜けた議論は個人で簡単に補完できるできると思うので気にしないことにします。

上で見た差分の式により、 n \neq -1 のとき
 
\quad \sum x^{[n]}  = \frac{1}{n+1} x^{[n + 1]}
 a \neq 1 のとき
 
\quad \sum a^x  = \frac{1}{a-1}  a^x
であることが分かる。
ここはややこしいので、和分  \Delta f(x) の差分をとると  f(x) に戻ることを確認するようにするとミスが少ないです。
これは、積分  \int f(x) dx の確認するときには余計なことを考えず、微分して  f(x) に戻ることを考えた方がいいのと同じです。

数列の和を和分で求める

さて、準備が終わりました。数列の和を求める方法を考えます。
 \sum_{k=m}^n f(x) を求めたいとします。このとき、 f(x) の和分が  F(x) だと分かっているとします。
つまり、 \Delta F(x) = f(x) であるとします。すると、
 
\quad \sum_{k=m}^n f(x) = \sum_{k=m}^n (F(x+1) - F(x)) = F(n+1) - F(m)
と計算ができます。


 \sum_{k=1}^n k = 1 + 2 + \dots + n を求める。 k = k^{[ 1 ]} なので、
 
\quad \sum_{k=1}^n k  = \sum_{k=1}^n k^{[ 1 ]} = \frac{1}{2} (n+1)^{[ 2 ]} - \frac{1}{2} (1)^{[ 2 ]}  = \frac{1}{2} ( (n+1) n - 0) =  \frac{1}{2}n (n+1)
となる。

 a \neq 1 に対して、  \sum_{k=1}^n a^k を求める。
 
\quad \sum_{k=1}^n a^k = \sum_{k=1}^n \frac{1}{a-1} \Delta a^k = \frac{1}{a-1} (a^{n+1} - a)
と分かる。
 a = 2 のときは2進数の特殊性を表している気がする。。。)

参考文献

西岡斉治『代数的差分方程式』
この本を読むと、三角関数などもっと多くの例も知ることができます。

AならばBの論理は論理的に難しいのか?


「AならばB」という論理は高校数学で学びますが、具体的な内容になると「BならばA」との混同や対偶との同値性が分からないなど、けっこう難しいものです。
今回は、「AならばB」に関する心理学の話題を紹介します。


数学教育に興味がある人にはぜひ読んでほしいです。


途中で紹介している結果は『進化心理学を学びたいあなたへ』3.2節で論文が引用されているので、気になった方は確認してください。

ウェイソンの選択問題


さっそくですが、ウェイソンの選択課題と呼ばれる以下の問題を考えてみてください。

問題A
カードがあり、片面にアルファベット、片面に数字が書いてるとする。
 ルール: 片面に母音が書かれているならば、もう片面の数字は偶数である
このルールが成り立っているかどうかを確認するには、以下のカードのうちどのカードの裏面を見る必要があるか?
f:id:tetobourbaki:20210220173836j:plain

下に正解を書くので考えてみてください。













正解は
「A」「1」です。
「A」「6」だと思った方も多いと思いますが、これは間違いです。
この正誤に関する解説は、調べれば出るのでここでは説明しません。


実験によると、この問いはだいたい10%程度しか正解する人がいないということが明らかにされています。
これを聞くと、「AならばB」の推論は人間には難しいものであると思われるかもしれません。
しかし、事情はもう少し複雑なのです。

主題内容効果


同じ形式の問題を、2つ連続してお見せします。考えてみてください。
(同じ形式にするため、無理やりカードで問題を作っています。)

問題B
カードがあり、片面にお酒を飲むかどうか、片面に年齢が書いてるとする。
 ルール: お酒を飲むならば、成人でなければいけない
このルールが成り立っているかどうかを確認するには、以下のカードのうちどのカードの裏面を見る必要があるか?
f:id:tetobourbaki:20210220173844j:plain


問題B
カードがあり、噛まれた犬の種類、片面に狂犬病ワクチンをうつかどうかを書いてるとする。
 ルール: 野犬に噛まれたら、ワクチンをうたなければいけない
このルールが成り立っているかどうかを確認するには、以下のカードのうちどのカードの裏面を見る必要があるか?
f:id:tetobourbaki:20210220173915j:plain


問題Bと問題Cは、問題Aと同じ位置のカードが正解のカードです。


問題Aに比べて、問題Bや問題Cの方が分かりやすかったのではないでしょうか?
(問題Aの後なので、分かりやすいのは当たり前ですが、もう一度見返して読み返しても、問題Aより問題Bや問題Cが分かりやすいと感じる方が多いと思います。)


「身近な題材の場合、正答率が上がる」という効果を「主題内容効果」と呼びます。
主題内容効果が生じるとき、正答率は50%~80%になると言われています。
これは、分かりやすさを説明する一つの仮説ですが、身近な話題にも関わらず、正答率が上がらないことがあることも知られています。


今回は別の理由を説明します。

「社会契約」と「予防措置」


問題Bのように、「もし利益を得るならば、そのための必要条件を満たしていなければいけない」という形のルールを「社会契約」と呼びます。
社会契約の選択問題を解くことは、「ルールが破られることを見抜く」=「裏切り者を検知するアルゴリズム」に対応するため、正答率が上がるという仮説があります。
実験により、たしかに社会契約問題は正答率が上がりますが、そうでない問題でも正答率が上がることも知られていました。


問題Cのように、「もし危険が迫ったら、身を守る行動をとらなければいけない」という形のルールを「予防措置」といいます。
予防措置の選択問題を解くことは、身の危険を守ることを意味するため、正答率が上がるという仮説があります。


この社会契約と予防措置が選択問題の正答率が上がる基本的な理由であるという研究があります。
この二つは、恣意的な分類ではありません。


まず、社会契約と予防措置では問題を解くときに働く脳の部位が違うことが知られています。


次に、社会契約が裏切り者を見破る能力に対応し、予防措置が危険予知能力に対応するならば、人の性格によって正答率も変わりそうです。
実際、6因子モデル(HEXACO)による性格分類によって、社会契約と予防措置のルールを違反する傾向の個人差を予測できるそうです。


このように、「AならばB」の推論であっても、その問いの形式によって脳の働き方が違うことが明らかになっているのです。

まとめ


社会契約と予防措置というのは、人間が生き残るうえで有利な思考だからこそ、進化の過程で身についた本能的なものだと考えられています。
よって、「AならばB」の論理であっても、後天的に身につく論理的なものとして捉えては、あまりにも見落としが大きいと思います。
例えば、数学教育でこの視点は大事だと思っています。


今回は、社会契約と予防措置の観点での説明をしました。
心理学の実験として正当なものかどうかを考えるには、もっと細かい表現の問題、例えばルールに「must」が使われているかなど注意しなければいけません。
認知バイアス』という本では、確証バイアスの観点で説明しているので興味があれば読んでみてください。


また、最近のコロナで言えば、「飲食店は20時までしか営業できない」というルールから、「20時前なら飲食店に行っても安全」のように解釈してしまう人がいるようですが、これは社会契約の認知に関する一つの研究になる気がします。

参考文献

進化心理学を学びたいあなたへ』東京大学出版
鈴木宏昭『認知バイアス』Blue Backs

『TIS-100』オリジナルプログラム言語によるパズル

これは以下のアドカレ12/15用の記事です。

adventar.org

今回は『TIS-100』を紹介します。
このゲームはオリジナルプログラミング言語で問題を解くゲームです。
store.steampowered.com

問題例を貼っておきます。
左の数列が上から流れて来るので、ノードで加工しながら下のノードに数列を返します。
この問題の場合は、数字をそれぞれ二倍したものを返すことが出来れば成功です。
f:id:tetobourbaki:20201215195921p:plain

ここで使われるオリジナル言語の仕様を簡単に言えば、「ノードベースのアセンブラ」です。
これが良くできていて、以下の点が特に面白いところです。

  • 一つのノードは、「コードを記述するスペース」と「データを受け渡す経路」の二つの役割がある
  • データは隣接するノードにしか送受信できない(ランダムアクセスメモリがない)
  • ノードに書けるコード量が決まっている


普通の言語にある機能が全然ないので、一から自力で考える必要があるのがこのゲームの面白いところです。
一見むずかしそうに見えますが、実際に難しくて、簡単そうな問題を一問解くのに数時間使ったりします。
逆に言えば、プログラミングの常識が通用しないので、最初のルールさえ覚えてしまえば誰でも楽しめます。


最初は、アルゴリズムをデータを受け渡すという仕組みで実現するところで引っかかると思います。
最後の方になると、一つのノードに書けるノード量の限界で困るようになります。


クリアした結果はランキングが出るのも面白いところです。
使ったノード数や処理実行回数などいろんな指標でランキングが付くので、やり込み要素も豊富です。
f:id:tetobourbaki:20201215200416p:plain


最後に、このゲームにはストーリーがあるのですが、これがどこで判明するのか全然わかりませんでした。
各問題に使えないノードがあるのですが、ここのDEBUGボタンを押すと、変な文字列が表示されます。
実は、問題を解いていくとこの文字列が正しい文章に修正されていきます。
f:id:tetobourbaki:20201215200829p:plain

『SOFT SKILLS ソフトウェア開発者の人生マニュアル』備忘録

『SOFT SKILLS ソフトウェア開発者の人生マニュアル』はすごくいい本なのですが、久しぶりに読み直すと忘れてしまってる内容が多いです。
分量も多いので、特に読み返したい章をメモっておきます。
「ソフトウェア開発者」をターゲットにした本ではあるものの、独立や自分の売り出し方も詳しく書かれているため、イラストや学術系の「クリエイター」も得るところが多い本だと思います。
興味がある人は是非読んでください。


以下、「当たり前だけど忘れがち」「言われるまで気が付かなかった納得できる」事柄が書かれている章のまとめ。
(逆に、自分的には当たり前で身についているものはスキップします。)

第一部 キャリアを築こう

  • 4章 社交術:考えている以上のものが必要だ
  • 6章 雇用形態:三つの選択肢を理解する
  • 7章 あなたはどのタイプのソフトウェア開発者か
  • 11章 自由を得る:仕事の辞め方
  • 18章 テクノロジーに対して頑なな態度を取るな

第二部 自分を売り込め!

  • 19章 コードモンキーのためのマーケティング基礎講座
  • 20章 自分だと気づいてもらえるブランドを確立しよう
  • 22章 最大の目標:他人のために価値を生み出せ!

第三部 学ぶことを学ぼう

  • 31章 メンターを探す:あなたのヨーダを見つける
  • 35章 知識の中の隙間を見つける

第四部 生産力を高めよう

第五部 お金に強くなろう

  • 49章 給料をどのように運用するか

第七部 負けない心を鍛えよう

  • 68章 恋愛と人間関係:コンピュータはあなたの手を握れない

解けるの三様~可積分系を学ぶ際の注意点~

数学において、「~は解ける」「~は解けないと証明されている」などと気軽に言われます。例えば、「三体問題は解けないと証明されている」などです。しかし、「解ける」はいろんな意味で使われることが多く、定義を確認しておかないと、ほぼ情報のない文章になりがちです。

今回は可積分系の分野での「解ける」についてまとめます。根拠がある話ではなく、単に自分の感覚に基づいた説明なので、勉強や研究で使う際には鵜呑みにせず自分なりに考えながら参考にしてください。違和感を感じた場合、逆に、この分類にない考え方を発明してみていただけると面白いかと思います。

「解ける」の三様

今回は微分方程式を扱います。(広い意味での)可積分系あるいは力学系の文脈において、「解ける」は以下の三つのうちいずれかを意味していることが多いです。

(I) 微分方程式自体がいい構造を持つ
(対称性、ラックス形式など)
(II) 解自体がいい性質を持つ
(運動が単純、パンルヴェ性を持つなど)
(III) 解の形が陽に書ける
(初等関数で書けるなど)

可積分系とはこの三つの意味の関係性を調べる分野と捉えてもいいと思います。また、これら三つを混同すると、定理を間違えて解釈してしまうことがあります。これらについて、一つずつ説明していきます。注意として、(I) (II) (III)についても、それぞれで具体的に何を意味するかは状況に応じて定義が必要であることを覚えておいてください。(I) (II) (III)は考え方の分類なのです。

(I) 微分方程式自体がいい構造を持つ

強烈にいい構造を持つ微分方程式は「解ける」と言うことがあります。現在の可積分系の分野は主にここに属していると言っていいでしょう。例えば、「解ける」方程式は背後にある構造を使うことで、線形の方程式に帰着できることが多いです。『可積分系の数理』の中では、中村先生が可積分系の本質を「ビルトインされた線形性」と呼んでいます。詳しく知りたい人にはこの本がオススメです。

具体例として、ハミルトン系の完全可積分性を挙げましょう。ハミルトニアン  H を持つ自由度  m のハミルトン系が完全可積分であるとは、 H を含めた  m 個の関数の組  H_1 (= H), H_2, \dots, H_m が存在して、それぞれがポアソン可換、つまり、 \{ H_i, H_j \} = 0 が成り立つことを言います。 ざっくり言えば、十分な個数のハミルトン系による対称性を持つ、ということができます。

「三体問題が解けない」というポアンカレの証明は、この意味での解けないです。(しかも、細かく言えば、  H_1, H_2, \dots, H_m にもかなり特殊な仮定をおいたものであり、けっこうややこしい。)つまり、「対称性が十分にない」ということを証明しただけであり、「解が複雑」とか「解が書けない」ことを証明したわけではありません。ここを勘違いしている人が多いのですが、まさに三様の混同が原因なんだと思います。残りの概念も見てみましょう。

(II) 解自体がいい性質を持つ

具体例として「解が単純」であることを「解ける」と言うことがあります。逆に、「解が複雑である(カオス)」ことを「解けない」と言うことがある、の方がピンとくるのではないでしょうか?カオスも様々な定義があることに注意してください。

力学系におけるLiouville-Arnoldの定理は、(I)の意味で「解ける」なら(II)の意味で「可積分」であることを主張するものだと捉えることができます。Liouville-Arnoldの定理は、ざっくり言うと、完全可積分なハミルトン系は、トーラス上の線形運動に帰着される、という定理です。線形運動は非常に単純なので(II)の意味で解けることを意味します。(とはいえ、異なるトーラスとの関係は自明ではなく、運動の考察が終わるわけではない。)

三体問題で言えば、(I)の意味で解けないことの証明がされていますが、Liouville-Arnoldの定理を用いても(II)の意味で解けないこと、つまり、解が簡単ではないことを意味するわけではないことに注意してください。しかし、Liouville-Arnoldの定理の対偶を用いれば、解が複雑(カオス)であれば(I)の意味で解けないことが導かれることになります。このように、(I)と(II)の関係だけでもけっこう面白いことが言えるのです。

パンルヴェ方程式の解がパンルヴェ性を持つ」も(I)と(II)の関係を主張するものだと思えます。パンルヴェ方程式について詳しく説明しません。一から勉強するなら岡本和夫『パンルヴェ方程式』がオススメです。他にも新しい本があるのですが、問題意識とか考え方が納得できるように書かれた本は岡本先生の本を除いてないと感じています。(今後に期待!)

(III) 解の形が陽に書ける

たとえば、 \int e^{-x^2} dx は初等関数で書けない、というのは有名だと思います。(この事実については過去の記事で何度も触れています。)このように、解自体が知っている関数で書けるときに、「解ける」と表現することがあります。解の存在定理により、(普通の)微分方程式は局所的には解が存在します。しかも、局所的には微分方程式は線形方程式に帰着することもできます(flow box theorem)。なので、解が「どのような形で書けるか」が常に重要な問題となります。しかし、初等関数や既知関数はかなり人間の捉え方に依存しており、数学として綺麗ではなく、あまり発展していない分野だと思います。

とはいえ、(I)と(III)の関係を研究する分野として「微分ガロア理論」が存在します。微分ガロア群は微分方程式の対称性を表すものであり、(I)に位置するものだと言えます。線形微分ガロア理論の有名な定理として、微分ガロア群(の単位成分)が可換なら、解は初等関数で書ける、という定理があります。つまり、(I)ならば(III)を表す定理です。この定理を応用することで、「 \int e^{-x^2} dx は初等関数で書けない」も証明できます。(実は微分ガロア理論を使わない証明の方が普通。)

最後に

この記事の目的は、「解ける」にまつわる勘違いの原因を解明し、今後間違えないように分かりやすい視点を提供することでした。また、上の説明を読むだけでも、さまざまな数学の研究が(I)(II)(III)の関係を調べているものであることも知ることができるでしょう。今回の捉え方で理解できる他の具体例があればぜひ教えておしいです(できればTwitterで)。また、読者の誰かが(I)(II)(III)の新たな関係を発見し、新たな結果を出していただけると嬉しいです。あるいは、今回の記事を否定し、(I)(II)(III)の関係性に囚われない新しい視点を提示し、新しい数学の分野を開拓してもらえるともっと嬉しいです。

超幾何方程式の特性指数の差をずらす操作について

ガウスの超幾何方程式が代数解を持つものは、シュワルツによりリスト化されています.ここで、リストの右の付加条件が気になります.実はこの条件は方程式を簡単なものに変換するための条件と関係するのです.つまり,整数の差はおおむね無視することができるのです.今回はこの変換について簡単に説明します.

f:id:tetobourbaki:20200329191632p:plain
代数解を持つ方程式のリスト
参考文献 河野実彦『微分方程式と数式処理』(図もこの本から引用したものです)

前提知識


リーマンのぺー関数  \wp (t) は特性指数をもちいて

\displaystyle \quad \wp\left\{
\begin{matrix}
0 & 1 & \infty & \\
\lambda & \mu & \nu &; t\\
\lambda' & \mu' & \nu' &\\
\end{matrix}
\right\}
のように書かれるが,ブログでこれを書くのは大変なので簡略化して

\displaystyle \quad \wp\left\{
\begin{matrix}
\lambda & \mu & \nu\\
\lambda' & \mu' & \nu\\
\end{matrix}
\right\}
と表すことにする. t^{-\lambda} (t-1)^{-\mu} をかけると、
 
\displaystyle \quad t^{-\lambda} (t-1)^{-\mu} \wp\left\{
\begin{matrix}
\lambda & \mu & \nu\\
\lambda' & \mu' & \nu'\\
\end{matrix}
\right\}
=
\wp\left\{
\begin{matrix}
0 & 0 & \nu + \lambda + \mu\\
\lambda' - \lambda & \mu' - \mu & \nu' + \lambda + \mu\\
\end{matrix}
\right\}
となる.そこで,特性指数の差  \alpha = \lambda' - \lambda, \beta = \beta' - \beta, \gamma = \nu' -\nu とおくと、

\displaystyle \quad
\wp\left\{
\begin{matrix}
0 & 0 & \rho\\
\alpha & \beta &\rho +  \gamma\\
\end{matrix}
\right\}
と書ける.ここで、フックスの関係式より, \rho = (1 - \alpha -\beta -\gamma)/2 と定まる.この形の解(つまり、 t = 0,1 の特性指数のうち一つは 0 となるもの)を持つ方程式はガウスの超幾何方程式である.また,特性指数の差  (\alpha, \beta, \gamma) で完全に特徴づけることができることも分かる.ただし,差を取るときの順序はどちらでもいいので, \alpha, \beta, \gamma のどれかに  (-1) を書けても同じ方程式を表してると思える.


さて,独立変数に一次分数変換をほどこすことで,特異点  0, 1, \infty は別の3点に移すことができる.特に, 0,1, \infty を位置を入れ替えてもよく,それは特性指数の差を入れ替えてもいいことを意味する.

基本操作

主結果の証明で使う性質を紹介する.証明は面倒であるが、特性指数が解の先頭項のべきを表していることを思い出せば,成り立つことは納得ができるものばかりである.

(命題)
 
\displaystyle \quad t^{s} \wp\left\{
\begin{matrix}
\lambda & \mu & \nu\\
\lambda' & \mu' & \nu'\\
\end{matrix}
\right\}
=
\wp\left\{
\begin{matrix}
\lambda +s& \mu & \nu -s\\
\lambda' +s& \mu' & \nu' -s\\
\end{matrix}
\right\} \\
\displaystyle \quad (t-1)^{s} \wp\left\{
\begin{matrix}
\lambda & \mu & \nu\\
\lambda' & \mu' & \nu'\\
\end{matrix}
\right\}
=
\wp\left\{
\begin{matrix}
\lambda & \mu +s& \nu -s\\
\lambda' & \mu' +s& \nu' -s\\
\end{matrix}
\right\} \\

この操作を
 
\displaystyle \quad \wp\left\{
\begin{matrix}
\lambda & \mu & \nu\\
\lambda' & \mu' & \nu'\\
\end{matrix}
\right\}
\left(\rightarrow^{\times t^{s} } \right)
\wp\left\{
\begin{matrix}
\lambda +s& \mu & \nu -s\\
\lambda' +s& \mu' & \nu' -s\\
\end{matrix}
\right\} \\
\displaystyle  \quad \wp\left\{
\begin{matrix}
\lambda & \mu & \nu\\
\lambda' & \mu' & \nu'\\
\end{matrix}
\right\}
\left( \rightarrow^{\times (t-1)^{s} }\right)
\wp\left\{
\begin{matrix}
\lambda & \mu +s& \nu -s\\
\lambda' & \mu' +s& \nu' -s\\
\end{matrix}
\right\} \\
のように書くことにする.

(命題)
 
\displaystyle \quad \frac{d}{dt} \wp\left\{
\begin{matrix}
0 & 0 & \rho\\
\alpha & \beta & \rho + \gamma\\
\end{matrix}
\right\}
=
 \wp\left\{
\begin{matrix}
0 & 0 & \rho + 1\\
\alpha - 1 & \beta - 1 & \rho + \gamma + 1\\
\end{matrix}
\right\}\\
\displaystyle \quad - t^2 \frac{d}{dt} \wp\left\{
\begin{matrix}
\rho & 0 & 0\\
\rho + \alpha & \beta & \gamma\\
\end{matrix}
\right\}
=
\wp\left\{
\begin{matrix}
\rho + 1 & 0 & 0\\
\rho + \alpha + 1 & \beta - 1 & \gamma - 1\\
\end{matrix}
\right\}

後者の公式は, t = 1/\tau とおいて  \displaystyle -t^2 \frac{d}{dt} = \frac{d}{d\tau} を思い出せば, 0, \infty を入れ替えて前者の公式を使ったものだと思える.

証明

(主結果)
特性指数の差が  (\alpha, \beta, \gamma) = (\alpha_1 + p, \beta_1 + q, \gamma_1 +r), p,q,r \in \mathbb{Z} と書けるとする.
 p+q+r が偶数ならば,特性指数の差が  (\alpha_1, \beta_1, \gamma_1) となる方程式に変換することができる.
さらに, \alpha_1, \beta_1, \gamma_1 のいずれかが  \frac{1}{2} ならば  p+q+r が奇数でも変換することができる.

(証明)
まず、特性指数の差に  (-1) をかけてもいいことから, p \geq 0 , q \geq 0, r \geq 0 としてもよい.また,特異点の位置を交換することで, p \geq q \geq r \geq 0 としてよい.
 
\displaystyle \qquad \wp\left\{
\begin{matrix}
0 & 0 & \rho\\
\alpha & \beta & \rho + \gamma\\
\end{matrix}
\right\} \\
\displaystyle \quad \left(\rightarrow^{\times t^{- \rho}} \right) \wp\left\{
\begin{matrix}
\rho & 0 & 0\\
\alpha + \rho & \beta & \gamma\\
\end{matrix}
\right\} \\
\displaystyle \quad
\left( \rightarrow^{\frac{d^r}{d \tau^r} } \right)
\wp\left\{
\begin{matrix}
\rho + r & 0 & 0\\
\alpha + \rho + r & \beta - r & \gamma - r\\
\end{matrix}
\right\} \\
\displaystyle \quad 
\left(\rightarrow^{ t^{-\rho - r} }\right)
 \wp\left\{
\begin{matrix}
0 & 0 & \rho + r\\
\alpha  & \beta - r & \gamma + \rho\\
\end{matrix}
\right\} \\
\displaystyle \quad
\left( \rightarrow^{\frac{d^m}{dt^m} } \right)
\wp\left\{
\begin{matrix}
0 & 0 & \rho + r + m\\
\alpha -m & \beta - r - m & \gamma + \rho + m\\
\end{matrix}
\right\} \\
\displaystyle \quad 
\left(\rightarrow^{ \times (t-1)^{-\beta + r + m } } \right)
\wp\left\{
\begin{matrix}
0 & -\beta + r + m & \rho + \beta\\
\alpha -m & 0 & \gamma + \rho + \beta - r\\
\end{matrix}
\right\} \\
\displaystyle \quad 
\left(\rightarrow^{\frac{d^n}{dt^n} } \right)
 \wp\left\{
\begin{matrix}
0 & 0 & \rho + \beta + n\\
\alpha -m - n & -\beta + r + m - n & \gamma + \rho + \beta - r + n\\
\end{matrix}
\right\} \\
\displaystyle \quad 
\left(\rightarrow^{\times (t-1)^{\beta - r - m + n} } \right)
 \wp\left\{
\begin{matrix}
0 & \beta - r - m + n & \rho +r + m\\
\alpha -m - n & 0 & \gamma + m + \rho\\
\end{matrix}
\right\}
以上により特性指数の差が  (\alpha, \beta, \gamma) から  (\alpha - m - n, \beta - r - m - n, \gamma - r) に移る.そこで,

\displaystyle \quad m = \frac{1}{2} (p + q - r) \\
\displaystyle \quad n = \frac{1}{2} (p- q + r)
とおけばいいが, m, n微分の回数だったので非負の整数でなければならない.まず, p \geq 0 , q \geq 0, r \geq 0 より非負であることが分かる.また, p + q+ r が偶数だったので,m,n が整数であることが分かる.以上により, (\alpha, \beta, \gamma) から  (\alpha_1, \beta_1, \gamma_1) へ変換できた.まとめるとここで行った変換は,
 \displaystyle
\quad \frac{d^n}{dt^n} (t-1)^{-\beta + r + m} \frac{d^m}{dt^m} t^{-\rho - r} \frac{d^r}{d\tau^r} t^\rho \wp\left\{
\begin{matrix}
0 & 0 & \rho\\
\alpha & \beta & \rho + \gamma\\
\end{matrix}
\right\} \\
\displaystyle \quad=  \wp\left\{
\begin{matrix}
0 & 0 & \rho +r + m\\
\alpha -m - n & \beta - r - m + n & \gamma + m + \rho\\
\end{matrix}
\right\}
という変換を行っている.

最後に, \alpha = 1/2 の場合で  p+q+r が奇数の場合を考える.
 
\displaystyle \qquad \wp\left\{
\begin{matrix}
0 & 0 & \rho\\
\frac{1}{2} & \beta & \rho + \gamma\\
\end{matrix}
\right\} \\
\displaystyle \quad \left( \rightarrow^{ \frac{d}{dt} } \right)
 \wp\left\{
\begin{matrix}
0 & 0 & \rho + 1\\
 - \frac{1}{2} & \beta - 1 & \rho + \gamma + 1\\
\end{matrix}
\right\} \\
\displaystyle \quad \left(\rightarrow^{\times t^{1/2} }\right) 
 \wp\left\{
\begin{matrix}
\frac{1}{2} & 0 & \rho + \frac{1}{2}\\
0 & \beta - 1 & \rho + \gamma + \frac{1}{2}\\
\end{matrix}
\right\}
すると特性指数の差は,(\alpha, \beta, \gamma) から  (\alpha, \beta - 1, \gamma) と移るので,これから見れば  p+q+r は偶数となり、同じ変換を行うことができる.\square