何かを書き留める何かスマートフォン用の表示で見る何かを書き留める何か数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。Mathematics無何有の郷へPythonには複素数を計算するための函数を収めた標準モジュールcmathが存在する。ドキュメントドキュメントにはこのような一節がある。mathと同じような関数が選ばれていますが、全く同じではないので注意してください。機能を二つのモジュールに分けているのは、複素数に興味がなかったり、もしかすると複素数とは何かすら知らないようなユーザがいるからです。いった人たちはむしろ、math.sqrt(-1)が複素数を返すよりも例外を送出してほしいと考えます。常に複素数を返すので注意してください。複素数に興味がないプログラマ、複素数を全く知らないプログラマはそれぞれ存在するのか気になるところである。日々の業務において実数向けの数学モジュールmathすら使う機会がない。最近必要に迫られてmath.cosを利用したぐらいである。一方で、複素数に興味があるプログラマ、複素数体が代数的閉体であることを知るプログラマも存在する。Fourier変換やLaplace変換が必要となるエンジニア、正則函数と戯れたい数学者がもつだろう。彼らが行いたいことを満たすにはcmathは力不足である。彼らが必要なのはNumPyやSciPy、SymPyなどの科学計算ライブラリ、Mathematicaなどの専用のソフトウェアである。興味がないプログラマには不要の長物であり、必要とするプログラマには機能が足りない。荘子の逍遥遊篇に次の一説がある。荘子が恵子に無用の用を説く場面である。今、子に五石の瓠あり。何ぞこれ以て大樽を為りて江や湖に浮かぶことを慮えずして、其の瓠落して容るる所なきを憂うるや。夫子には猶ほ蓬れたる心有り」と。Hack-a-thonのテーマであった。実数と複素数は似ている要素もあるが違う要素もある。似ている要素としては、体をなす(四則演算ができる)こと、位相を入れることができる(収束や連続という概念が定義できる)、がある。位相を入れることができるのでcmathには指数函数や三角函数が存在するのである。一方で、決定的に異なる要素としては全順序を定義できない、つまり自然な大小関係を定義できないことである。Pythonもこの事実を受けて、複素数同士を比較すると例外が送出される。complex()異なる性質を持つので、実数と複素数を分けて考える必要がある。今回は、複素数が実数平面上の点として表せることに着目して、ある種の画像変換に活用することにした。画像のピクセルを座標とみなして、適当に生成したランダムの複素数を掛け算して画像に何かしらの処理を加える。画像の枠からはみ出ると面白くないので無理やり枠内に収める処理を入れてある。トーラスっぽくなっている。実際に興味があったのは複素積分である。まともにやると手も足も出ない積分が複素積分だと鮮やかに解けるのを学部2年で知った。それを再体験したいのであるが、どうやってプログラミングで行うのか見当もつかない(線積分となるので)。そこで、適当な大学入試問題を解くことにした。2002年一橋大学の入学試験の数学の問2である。問題文をTeX形式で入力するのは骨が折れるので適当なサイトを参照されたい。(1/a))sympy.simplify(f)最後に解くべき不等式を導くところまでできた。SymPyで不等式を扱う方法がイマイチ理解できず最後は手計算で解いた。使わない場合はcmathはmathをC言語で実装した高速版ではなく複素数向けであることを理解する、複素数を本格的に使いたい場合は科学技術計算ライブラリを検討する、が現実的な解である。私は恵子のように固定概念に囚われているようである。#1それ、Pythonで簡単にできるよ?と言いたかった。Ha...2017-06-20cmathとmatplotlibでMandelbrot集合を描画する。»プロフィールid:XaroCydeykn数学や計算機、読んだ本について書くブログのような何かです。(1)最近人気の記事はてなブログをはじめよう!XaroCydeyknさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。