Math by Code
1. 宣言型と手続き型
2. 素数たち
3. べきと合同式
4. 関数たち
5. グラフたち
6. オイラー
7. 群たち
8. 環たち
9. 体たち
10. 集合たち
11. 視覚アートたち
12. 音の波たち
13. 微分方程式たち
14. ベクトル場たち
15. 複素関数たち
16. 相対論たち
17. 「物質とエネルギー」観たち
18. 量子論理たち
19. Pythonで学ぶデザインパターンたち
Zen Suzuki, 2024. 12. 10.
コードを使って、 数学に関係のあるテーマを追求したり、 しくみの視覚化の仕方をさぐってみよう。 数学とコード(プログラミング)と何か この3者のトライアングルと戯れよう。 その戯れ活動を通して、 数学、コード、何か の3者と、そのつながりについて 新しい視点や気づきが増えるかもしれない。 そして、それをgeogebraのコマンド活用につなげてみよう。 言語はgeogebraに限らず、python, Julia ,Haskell,React(javascript,Typescript),Rustなど 他の言語も使ってみよう。 そうすることで、「geogebraとは何か、どう使えるか。」が逆照射され、 マニュアルだけではわからなかった部分が 見えてくるかもしれませんね。
gegebraのリストを活用して、数の問題、図の問題を表してみよう。 関数プログラミング言語にはHaskellがあるけれど、 Python, Juliaを中心に使って宣言型のコード作成に親しもう。 Python, Juliaの開発環境はjupyter notebookです。のせてあるコードは、インデントが乱れる場合はセルに貼り付けてから調整すれば使えます。 また、Rustを使う場合はVSコードで開発します。コマンドラインでプロジェクトフォルダを作り、そこに移動して実行しよう。main.rsに貼り付けて使えます。
素数にかかわるテーマを通して、手計算や数式だけではなく、コードも使って課題解決の手がかりを探る経験をしてみよう。 Julia, Pythonを使ってコードを開発してみよう。
整数のべき計算と≡記号によって、整数を使った巨大な計算量を削減したり、相互関係や規則性を見つけることにつながっていく。これを、Codeを使って、geogebraでも実装したり、調べられるようにしてみよう。
関数を作ったり、関数を変化させるには、やはり関数的なコードが役立つ。 できるだけ宣言的なコードやリストを使って、関数を扱ってみよう。 また、関数をグラフにして見える化もしてみよう。
グラフは、要素のつながりを明確化してくれる。 グラフの構造を考察することはデータの取り扱い方の発想を豊かにしてくれるでしょう。コードの簡潔さを追求しながらも、関数型にこだわらずに必要ならば順次型のコードをつかいながら、グラフ理論を深めていこう。 この考察が、データ分析や情報処理の視点を増やすきっかけになったらいいですね。
オイラーの数学の発想に関連する内容をコードを使って視覚化したり、 計算することで、理解を深めよう。
群は、要素と要素の2項演算ができる集合で、特定の特徴をもつものです。 ただ、結果の表示が抽象的だったり、演算の実行に手間がかかったりします。 そこで、コードを使って、できるだけ、宣言的、内包的な表現を使うことで、意味がわかり、計算の手間を減らしながら内容理解をめざしましょう。
体というフィールドへの参加ルールをゆるめると、環になる。 環を調べることで、体を学ぶときの助けになるし、群で学んだことの類推によって概念を作り出すことにもなる。コードを使うことで、自分で環を操作できるようになろう。そのためにpythonなどの言語やgeogebraの数式の可能性もさぐってみたいね。
体は、必要なルールにぜんぶ合格した行儀のよい集合です。 でも、有理数、実数、複素数という自然体の優良児だけではありません。体の仲間の多様性と関係性を知り、さらには、体の故郷である群・環との強いつながりに気づくことで、視野がひろがるでしょう。そのために、1言語にこだわらず、コードによる数値計算や視覚化を活用してみよう。
集合の個数(濃度、基数)の大小比較や1対1対応としての写像などの視覚化をコードでやってみよう。コードで実装することで、対応の意味づけを能動的に理解できるようになるでしょう。また、python,julia,geogebraの使い方を広げたり、他の言語での表現の可能性にも触れてみよう。
視覚的なアートと数学の関係は深い。 数学を使うことにおいて、創造性を発揮することが、数学的な経験を豊かにしたり、数学そのものの興味を刺激することができたらいいですね。
音は波だから三角関数にかかわる。音楽は音程が度数だから合同式にかかわる。音は時間の中で進むので、パターンと分数にかかわる。数学を知らなくても音楽はできるが、数学によって、音楽理論に親しむ支援ができるかもしれない。おもにgeogebraを使って、コードと音楽をつなげてみよう。
「微分方程式」の型と解法を通して、 関数と関数の関係性の理解、関数そのものの理解を深めよう。 そのために、コードによるしくみの明確化と視覚化を実行してみよう。
微分・積分をスカラー量からベクトル量に拡張してみよう。 そうすることで、思考の対象を広げることができるはずだね。でも、ベクトル場自体はとらえにくい。そこで、コードを使って、ベクトル場のようすや変化を視覚化してみよう。
複素数の和差と積商の演算にかかわる平面での挙動が 周期性や無限反復性という特徴を作り出す。 基本的な構造の特徴が、関数の特徴に伝播し、 その特徴が微分・積分に伝播する。 「正則」と「特異点」、「極」と「留数」というキーワードのつながりを理解するために、そしてそれらを活用するために、geogebraのコードを使ってみよう。
相対性理論を 特殊、一般の順に図と数式を変化させることで、 理解ができるように支援しよう。 そのためにgeogebraをできるだけ使ってみよう。
現代は目まぐるしい時代の転換期だといえるでしょう。 情報技術の高度化によって、AI・ロボットが従来の人間の労働に置き換わり、超えつつある。 しかし、そのAI・ロボットが動くためには、人間以上に「膨大なエネルギー」を使う。 国際的な協調、環境保護、対話が進み平和に向かうと思われた20世紀から、 「軍事力」の大小、「エネルギー資源」の豊富さを武器にする戦国時代の21世紀になっているようだ。 政治の話は置いといて、「物とエネルギー」というものをどうとらえるかは大切なテーマでしょう。 これから、「物質とエネルギー」をどうとらえるか? いろいろな世界観を学んでいこう。
宇宙の形、そしてミクロの波。私たちはこれまで、世界の仕組みを「幾何学」の視点から紐解いてきた。 一般相対性理論が明かしたのは、時空の幾何学。 量子力学が明かしたのは、波動とエネルギーの幾何学。 そしてこれから挑む量子論理が描き出すのは、いわば「情報の幾何学」だ。物理的な演算子の計算に終始するのではなく、量子たちが織りなす関係性の謎が、いかにして計算を高速化させるのか、そのパズルの核心を探ってみよう。 頼りになるのは数式だけではない。GeoGebraによる視覚化を道標に、目で見える「直観的な納得」を積み重ねていこう。
デザインパターンを学ぼう! 白か黒か、理系か文系か、理学か工学か、 基本か応用か、中心か周辺か、本質的か表層的か、 天才か凡人か、科学的か非科学的か、エビデンスありか無根拠か [b]二元論で物事を語ることは簡単[/b]だ。 [b]数学の特権性、プラトニズム[/b]を信じている人もいるでしょう。 一般相対性理論、量子力学のような現代の物理的な探求からわかることは、 空間の幾何学、波動の幾何学が物質とエネルギーの在り様を規定していることだった。数学の言語を抜きにした、人間から独立した物が素朴に存在しているという素朴実在論はありえない。 同様に、数学的な存在が人間から独立して素朴に理想世界で実在しているという素朴なプラトニズムだってあやしい。 こうして考えると、「プログラミングというデータ処理は、深層にある科学的実在、数学的な実在を語る学びとはレベルがちがう」という発想自体が、無根拠な信仰と思える。 だから、プログラミングの「デザインのパターン」を学び直すことが、[b]科学思考・数学思考を謙虚に映し出す鏡[/b]になるかもしれない。 後期ウィトゲンシュタインが[b]「哲学」を生き方を鏡として映し出して気づきを促すもの。とした[/b]のと同様に。