本文中に Python を用いたサンプル・プログラムを載せた。 以前は C++ を用いていた。参考までそれも載せておく。
個人的には、この手の計算には MATLAB を使うのが好みであるが、 ここでは、C++ でベクトル、 行列に関する演算をするために便利なクラス・ライブラリィである、 Eigen を利用してみる (なお、C++ では、複素数を使うのも簡単である)。
WWWサイトから、 eigen-eigen-5a0156e40feb.tar.gz のような名前のソース・ファイル一式を 入手して、以下のようにインストールする。
MacBook のターミナルで次のようにインストール |
tar xzf eigen-eigen-5a0156e40feb.tar.gz cd eigen-eigen-5a0156e40feb ls(Eigen があることを確認) cp -pr Eigen /include あるいは cp -pr Eigen /usr/local/include アーカイブ・ファイルに含まれていた、Eigen というディレクトリィを、~/include や /usr/local/include の下にコピーしている。 |
(脱線になるけれど、Eigen を用いた、 Runge-Kutta 法のサンプル・プログラム https://m-katsurada.sakura.ne.jp/complex2/ball-bound.cppを紹介しておく。コンパイルの仕方、実行の仕方は、注釈に書いてある。)
,
の場合を解いてみよう。
つまり双正則な
conformalmap.cpp -- 例えばターミナルで
curl -O https://m-katsurada.sakura.ne.jp/complex2/conformalmap.cpp |
/Users/mk/.tex-inputs/conformalmap.cpp
こんな風にコンパイル |
g++ -I/opt/X11/include -I ~/include conformalmap.cpp -L ~/lib -lglscd -L/opt/X11/lib -lX11(GLSC を利用していて、現象数理学科 Mac では、 ~/include, ~/lib にインストールされていることを想定している。 上の手順で、 Eigen も ~/include にインストールしておいた。) |