よい例に触れて計算し倒す
数学の遊び方・勉強の仕方はたくさんあります. これは今まで以上に例を取り出して, とにかく計算するコンテンツを紹介します.
現代数学探険隊と銘打ったシリーズの解析学編では, 解析学と物理, 特に量子力学への応用を見据えて例や応用をたくさん紹介しました. 特に重要な例をはぐれメタルのような存在と位置づけ, 何度もいろいろな角度から紹介しています. 一通り基礎講座を組み終えたあと, 物理への応用はもちろん, 数学的な理解を深めるためにも, もっとたくさんの例に触れて理解を深め, 数学・物理の現実と戦うべく計算力を鍛え上げてもらうべく計算系のコンテンツを整備してきました. 今回, たくさんの例に触れつつ計算力を鍛えるためのコンテンツを一般公開します.
計算と言ってもいろいろあります. 解析学での不等式処理もあれば, ホモロジー代数での可換図式に関わる計算もあります. 最近ではプログラミングでの大規模な数値計算も以前より遥かに手軽にできるようになりました. Google Colaboratoryのような環境も整っています. いわゆる数式処理や記号計算もあります. さらには物理や諸工学で重要な近似計算もあります.
ここでは次の三点を重視しています.
計算メインの命題・定理の証明も取り上げていますし, 物理でよく出てくる直観的で, 厳密には間違っている証明さえ載せています. 物理での証明は物理だけではなく, 数学的な直観を養うためにも役に立つからです. 私がこれまで作ってきた厳密な数学を大事にするタイプのコンテンツには混ぜにくいため, この計算コンテンツで紹介することにしました.
上で書いたように世の中にはいろいろな計算があり, それぞれに対応した計算力があります. 数学を勉強するためにも, 数学で遊ぶためにも, 数学を応用するためにも目的や対象に応じた計算力が必要です.
教科書を読んで理論を勉強しているだけではなかなか計算力は鍛えられません. 修士・博士で研究をはじめるときも, 最終的には具体例を計算しきる計算力が重要な局面がたくさんあります. 私自身は修士までの経験しかありませんが, 博士まで進学した人の話を聞くと, 今まで以上に具体例に慣れ親しんで計算しきる剛腕が重要だとよく言われます. 極めて優秀な研究者に対して「類稀な計算力が彼の最大の特質だ」と言われるのを目にしたこともあります.
はじめに書いたようにいろいろな勉強の仕方があります. 時期や状況に応じていろいろな方法を組み合わせる必要があります. 細かな理屈や理論の構造を重視すべき時もあれば, 具体的な計算を重視すべき時もあり, それらをバランスよく組み合わせるべき時もあります. 理論にしても簡単で特殊な場合に特化した勉強が効果的な時があります.
何にしろ徹底的な計算とそれを遂行しきる力が困難を打開するときは少なくありません. それを鍛えるのがこのコンテンツです.
むしろこれこそ一番に強調すべきかもしれません. 理論には理論の楽しさがあります. それと同じで計算には計算の楽しさがあります. 上でくり返し書いたように計算と計算力はとても大事です. そしてそれ以上に徹底的な計算の最果てで見える世界があります. この計算の楽しさとその最果てで見える世界を一緒に探険しましょう.
私がこれまで数学と物理に触れてきて, これは面白い・これは大事だと思った計算を収録しています. まだ2022-01時点では1000ページ程度のボリュームがあります. 日々少しずつ例をためていて計算問題も日々増えています.
今後, 解析学編や幾何学編に載せた例も必要に応じて移動・再録する予定です. 以下でコメントするように, 計算するべき対象として設定していたいろいろな例があります. それらも今後どんどん追加します.
私は特に中高生向けの総合的な理工系教育を考えつつ実践していて, その中で目で見えるモノ, 特にグラフ・アニメーション利用も重要だと考えています. 視覚と直接に関わるのは幾何ですし, 改めて幾何を鍛えようと思って再勉強しています. そしてほしいグラフやアニメーションは(中高生自身が)自作できればよりよいだろうと思い, プログラミング利用の数学・物理も考えています. 既にコンテンツを一つリリースしている程度にはプロジェクトを進めています.
まずは幾何に関して日頃から私が困っていることを説明します. 改めて勉強していて圧倒的に困るのはやはり具体的な計算です. いろいろな事情で思うように時間が取れず, 飛び飛びの時間で勉強していると計算上重要な定義や定理も頭から抜けてしまいます. そして定義や定理を思い出しやすく, かつ忘れにくくする上で大事なのは具体例です.
「数学では暗記よりも理解が大事」と言われます. 確かにある程度まで理解が進めば, その理解からあるべき定義を導けるようになります. そのときに鍵になるのが具体例です. 手と頭になじんだ例がいくつかあればそれだけで格段に勉強しやすくなりますし, 理解の深さも幅も広がります.
ある程度定理や理論を広く知らないとそもそも何も見えないため, この数年は浅く広くいろいろな本を読んでいました. これまで軽く眺めるに留めていた重要な例を徹底的に計算するべき時が来たと感じたのが, このコンテンツの第一段をリリースするにいたった経緯です.
そして何より中高生に計算させたり, グラフやアニメーションのためのプログラムを書くときには面白い例が必要です. 私は学部が物理, 修士での数学も解析学専攻です. いい加減, 幾何に対する具体例への親しみ, そして絶対的な計算量不足に正面から向き合うべきときが来ました. このコンテンツ制作を通じてさらにたくさんの計算をして, 幾何とプログラミングで遊び倒すつもりです.
私自身本格的な具体例の計算をしたことがないホモロジー・コホモロジーの計算もたくさん収録する予定です. 他の誰でもなく, これがないとまず私が困るのです. 当然数学を勉強したいと思うあなたにとっても大事です.
もう一つ, プログラミング学習での実感も紹介します. プログラミング環境は日々変化・発展していて, 半端なモノを作るとすぐにコンテンツが腐って使いものにならなくなります. いろいろな人に向けた多彩なコンテンツを作るのに集中したいため, 単純なバージョンアップに伴うメンテナンスに時間をかけたくありません.
そこで中高生向けのプログラミングのコンテンツとしては, データ構造やアルゴリズムを目下のテーマにしたいと考えています. これは競技アルゴリズムのような実用性まで兼ね備えた遊べるテーマ・環境があるからでもあります. もちろん数値計算アルゴリズムの開発といったテーマがあり, 数学や物理にも直接役立つテーマでもあります.
情報科学で重要なこのテーマ, いま改めて再勉強を進めています. 本を読めば一般的な理屈はわかります. しかし最終的には実際にプログラムを書いてきちんと動かしきらなければ意味がありません. 本当に数学や物理に役立つ計算がしたいからです. そして自分の実装力(広義の計算力)の低さにいつも難儀しています.
いまだに素因数分解プログラムを何も見ずバグなしで一発でさっと書けません. 決定的な理由の一つは, この手のプログラムを組んだ経験が浅く絶対的な演習量が足りない点にあります. さらに次のような問題もあります.
プライベートでも仕事でも大小のシステム・プログラム・スクリプトを読み書きする機会はたくさんあります. いわば役に立つプログラムならある程度の話はできます. しかしここで問題なのは数学・物理に役立つプログラムです. 真っ先に思いつくのは微分方程式ですが, これは商業的な展開もあるほど絶望的に難しい問題です. 私自身, 数学・物理の勉強にとって適切な問題を探る必要があります. 先程も書いたようにその成果の一部は既にコンテンツ化してあります.
さて, 数学, 特に私の専門に近い線型代数や関連する解析学では, 理解の勘所になる例をたくさん知っています. 必要に応じてその場で臨機応変に作ることもできます. しかし2021-12時点で, 私は幾何の大事な例を知ってはいても, 細かいところまで計算しきる力や技術を持ちません. そもそも基本的な例を知らない・見えていないのも課題で, そこをおさえるために一般論をがんばって勉強していたのがここ数年の状況です.
これはプログラミングやアルゴリズムでも同じです. 少し問題文が変わっただけでその裏にある構造を見抜けなくなり, 適切なプログラム・アルゴリズムを思いつくまでに時間がかかります. アルゴリズムも言われればその手順がわかるだけで, いつどこでどんなアルゴリズムをどう使えばよいか全く肌感覚として身についていません.
小規模データならいわゆるbrute forceで解を見つけられても, 本当にほんの少しデータ量が増えただけで同じアルゴリズムでは一日かかっても計算が終わらなくなるのはよくあります. そしてこれこそまさに競技プログラミングの面白いところです.
これがどれだけ大事だったのか, アルゴリズムの再勉強で改めて痛感しました. 時々「何を使えばいいかわかっている状況での計算練習には意味がない」と言う人もいるようです. しかしいま私が直面している問題の一つは次の通りです.
この訓練が足りていないのです. まさに小中高といろいろな科目で積んできた訓練です. プログラミングでもやはり同じ訓練が大事です. 質もさることながら量も重要です.
数学でも同じです. 学生時代から知っている人が最近は助教や准教授になってきて, 教育に携わりはじめています. 彼ら・彼女らも計算練習や計算力の重要性を強調しています. ちょうどこの間「卒論・修論やセミナーで, せっかく微分積分や線型代数の計算にまで問題を落とし込めても, それらの計算力がないせいで躓いている学生がいる」という数学教員のツイートも見かけました. プログラムでの計算力は実装力にあたり, 知識を的確に使いこなす運用力にもあたります.
私がプログラミングで出くわした問題に, 数学で出くわしている方も多いはずです. これを読んでいるあなたもきっとそうです. 何より私自身が幾何を勉強する中で全く同じ苦労をしています. 何度でも書きますが, 学部では物理を, 修士では数学を出ていて, どう控え目に言っても人並み以上の数学的耐性を持つ私が苦労している問題です. どのような形であっても数学に触れようとしているあなたに無関係であるわけがありません. この問題を解決するコンテンツがこの例と計算編です.
まずは現在既に収録している例や計算の項目をリストアップします.
微分幾何は視覚的な曲線や曲面のテーマもあれば, 微分積分と線型代数の交点としても重要なため, 教育的なテーマとして一時期精力的に計算していました. 光学迷彩と微分幾何に関しては, 理論物理学者の松尾衛さんから次のようなコメントも頂いています.
数学的に厳密な解説と, 物理屋がよくやる計算の両方をカバーしてあり, 非常に勉強になった. 何より応用家の応用に向けた気持ちだけではなく, 数学的にきちんとした議論も知りたい気持ちに配慮してもらえていて, 本当にありがたくためになった.
もちろん, 私自身が両方にまたがる興味関心があります. どちらの言い分も理解できないと困るので, がんばって数学・物理両方の立場から計算を書きました. まさに届けたい人に届き, その意義を認めてもらえたことはコンテンツを作る励みでもあり, 方向性が間違っていない自信にもなっています.
上記以外にも次のような項目を鋭意収録・執筆中です.
これらは微分積分と線型代数の交点として, 物理・解析学・幾何学・代数学の全てで重要です. そしてそうした視点からいろいろな例を紹介しつつ計算します.
これは黒木玄さんの資料を元に, 実際に理工系の博士持ちの人を含めた統計学の勉強会で取り組んだ内容でもあります. スターリングの公式と近似の様子など, 学部一年から知っている内容であっても改めて数値計算で視覚的にも確認してみると感慨深いものがあると皆で話していました. プログラミング利用の計算・計算練習の意義をも実感した計算です.
微分積分に関してはリー群・リー環とも絡めた例が最近とても気になっています. 例えば行列変数の指数や対数が出てきます. 特にテイラー展開を通じて行列の指数関数や対数関数が定義されます. 行列変数でも\(\exp \log A = A\)などの等式が成り立つのですが, 実変数では定義からの直接の帰結で証明することはありません.
しかしテイラー展開を通じた行列変数の定義ではこの関係式は非自明です. いろいろな証明法があるようです. 例えば級数展開を直接計算・整理して示す方法もあれば, 途中で実変数での関係を使う方法もあります. 前者は級数展開を整理しきる剛腕が必要です. 後者は計算を楽にするための数学的な工夫が必要です. 他に関数解析や偏微分方程式論でも重要な行列変数の指数関数の定式化もあり, それらと絡めて計算するのも重要です.
行列変数の関数は微分積分の基本的な計算練習, 線型代数の続編, 多彩な応用を持つリー群やリー環との関係, 関数解析や偏微分方程式論との接続など多種多彩な側面があります. 計算を通じてこれらに慣れ親しむのも重要です.
学部レベルの数学・物理に関わる例は広く収録する予定です. ここでは直近取り組む予定の例を順に紹介します.
最終的には学部レベルの数学・物理のテーマは一通り揃える遠大な目標があります. 自分なりに再構成しながら少しずつ進めているため, 亀のような歩みになるでしょう. それでも日々, 少しずつ地道に・愚直に進めてコンテンツを充実させる予定です. 私自身, 次はどんな計算をしようか, どんな風に私自身の理解も深まっていくだろうかと日々楽しみです. プログラム利用もさらに進めようと考えています.
2022-01時点では14,800円で提供します. 今後コンテンツの追加に合わせて価格も上げる予定です.
このコンテンツは買い切りです. そしてこのコンテンツは今後, それこそ日々アップデートしていく予定ですが, その更新分も含んだ料金です. つまり一度買ったら追加分のコンテンツもずっと手に入れられ続けます. これは現代数学探険隊の解析学編と同じ扱いです. 面白いと思った例や計算は全て共有したいからです.
2022-01時点で既に1000ページを越えています. これだけでも既に遊び尽くすには相当の時間がかかります. 人によっては一年以上は軽く遊び倒せる量のはずです.
次はコンテンツの中でお会いしましょう.