2012年06月

Linuxでフラクタル図形を書く

フラクタル図形というのは、一般的に、細部を拡大した時に、元の図形と同じようなパターンが現れるような図形のことを言います。厳密な定義は別にあるのですが、説明するのがめんどくさいので、詳しく知りたい人はWikipediaなんかを見て見てください。今回はこのフラクタル図形を簡単に描画することのできるフリーソフト「Fraqtive」を紹介したいと思います。


fractal.png

「Fraqtive」で描画したフラクタル図形の例、マンデルブロ集合


1.Fraqtiveのインストール

Kubuntu12.04の場合、Fraqtiveは、公式のリポジトリに入っているので、端末から

$ sudo apt-get install fraqtive

と打つことによって簡単にインストールすることができます。


2.Fraqtiveの使い方

Fraqtiveを起動すると下のような画面になります。

Fraqtive_004.png

この描画されている図形の上でホイール操作を行うことにより、図形の拡大縮小を行うことができます。中クリックでドラッグすることによって図形を掴んで移動させることができます。また、右側のメニューから図形の色を変えることもできます。

ちなみにデフォルトの状態では、フラクタル図形の一つである「マンデルブロ集合」が描画されています。この図形は、数学的には、
"次の漸化式
676263b74992df4b5a78755cd428a8d7.png
で定義される複素数列 {zn}n∈N が n → ∞ の極限で無限大に発散しないという条件を満たす複素数 c 全体が作る集合"であるそうです。(Wikipediaより)
まあ、数学的な細かい話はおいておいて、このような点の集合を複素平面上に描くと、このようなフラクタル図形が出てくるという事らしいです。
また、この式のパラメーターはソフト上で細かくいじることができます。メニューバーから、「Edit」→「Change Fractal Type…」を選ぶと下のような画面が出てきます。

Fraqtive_005_20120622222244.png

この画面でパラメーターをいろいろにいじることによって、フラクタル図形の形が変化します。画面下の「Formula」の部分に今どのような式の形になっているのかが表示されます。

個人的なおすすめは、「Fractal Set」を「Mandelbrot」に、「Variant」を「Absolute」に、「Exponent」を「Integral」の「3」にセットした時の図形です。なんだか何かの優勝カップのようなものを傾けたような図になっていて面白いです。

Fraqtive_006.png
上記の設定で描画した図

Fraqtive_007.png
細部を拡大した図、なんだか人間の形のようにも見えます

3Dで描画させる

またこのソフトでは、フラクタル図形を3次元的に表示することができます。メニューバーにある3D Viewというボタンを押してみましょう。すると立体的に図形を表示させることができます。

fractal1.png

fractal2.png
黒い部分が谷みたいに見えます


どうでしょうか、普段数学に馴染みがない方でも、図形を拡大するごとに同じようなパターンが次々と現れてくるので見ているだけでも楽しいと思います。それにしても単純な数式だけでこのような不思議で美しい図が描けるというのは、本当に不思議ですね。よく数学者は、「数学はとても美しいものだ」と言いますが、その気持ちがちょっとわかるような気がしました。

最後に、そこそこいい感じに撮れたフラクタル図形を載せておきます。壁紙にでも使ってください

fractal-wallpaper.png
スポンサーサイト

LinuxでSyncTeXを使う

2012-06-21-0000  okular.png



以前、LinuxのLatex用エディタ比較で、いずれのエディタでもSynctexを使えるというようなことを書いたのですが、Kubuntu12.04にもう一度環境を構築した時に、TeXLive2011のページからインストールできるTeXLive2011では、Synctexが使えなかったので、Synctexの導入方法を書いておきたいと思います。

※2014/04/29 Ubuntu13.04以降ではUbuntu公式のリポジトリからapt-getで入手できるtexliveのバージョンが新しくなり、TeXLive公式ページからわざわざインストールしたり下記のtltexliveリポジトリを追加する必要性はなくなりました。SyncTeXを使いたい場合は、TeXLiveインストール後「2.SyncTeXの使い方」以降の操作を行うだけでOKです。


0.SyncTeXとは

SyncTeXというのは、.texファイル上の任意の場所と同じ場所をPDFで表示させたり、逆にPDFファイルの任意の場所へ.texファイル上でジャンプさせたりできる機能です。これによってエディタ上の位置とPDF上の位置を同期させることができ(手動ですが)、特に長い文章を書くときに非常に便利になります。


1.準備 - tlptexliveリポジトリの追加


まずはじめにSyncTeXを日本語環境で使えるようにするために、tlptexliveリポジトリを追加します。
tlptexliveリポジトリというのはTeXlive2011の日本語環境を改善するために作られたリポジトリで、TeXLive2011のリポジトリに追加する形で導入できます。tlptexliveリポジトリの詳しい説明はtlptexlivetlptexliveリポジトリを見てみてください。

導入方法

※注意 今回は、TeXLive2011は予めインストールしてあるものとして話を進めていきます。まだインストールされてない方は、このあたりを参考に、TeXLive2011をインストールしてみてください。

まず、TeXLive2011のパッケージマネージャーであるtlmgrでパッケージの更新を確認します。端末から

$ sudo tlmgr update --self --all

と打ちます。次にtlptexliveリポジトリを追加します。端末から

$ sudo tlmgr --repository http://www.tug.org/~preining/tlptexlive/ update --all

と打ちます。
以上でSyncTeXを使う準備が整いますが、一応最後に、日本語環境用に修正されたパッケージを入手します。端末から

$ sudo tlmgr --repository http://www.tug.org/~preining/tlptexlive/ install pmetapost pxdvi uptex

を実行します。
以上の操作を行うことで、日本語環境でもSyncTeXを使うことができるようになります。

2.SyncTeXの使い方

SyncTeXを有効にするには、platexコマンドを実行するときに、オプションで、-synctex=1をつけるだけです。これによって、コンパイル時に、dviファイルやログファイルとともに~.synctex.gzというファイルが生成されます。この中にTeXファイルとPDFファイルの文字の位置をつなぐ情報が格納されます。

2012-06-20-1
こんな感じです。

実際の挙動は使うエディタによって違うのですが、ここでは例としてKileとOkulrを使ったSyncTeXによる相互参照の方法を紹介します。

0.KileとOkularのインストール

Kubuntu12.04であれば、KileとOkularはともに公式のリポジトリに含まれています。(それどころかOkularはKubuntuの標準のPDFビュワーです)。なので、導入は簡単で端末から

$ sudo apt-get install kile okular

を実行することでインストールすることができます。ただしここで注意点ですが、Kileのインストールは、TeXLive2011のインストール後、ダミーパッケージを作成、インストールをしてからおこなってください。そうしないとKubuntuの公式リポジトリに含まれているTeXのパッケージが追加でインストールされてしまい、めんどくさい事態になります。



1.Kileの設定

まずは、Kileのコンパイル時の設定を編集します。「設定」→「Kileの設定」→「ビルド」と開き、「LaTeX」の欄を選びます。そこで、「コマンド」の欄を「platex」に、オプションを「-synctex=1 -interaction=nonstopmode '%source'」に変更します。

2012-06-20-02
こんなかんじです。

なお、コンパイル時にQuickBuildを使う場合は、QuickBuildのモードを「LaTeX+DVItoPDF+ViewPDF」のようなモードに切り替えておくと便利だと思います。(おすすめはLaTeX+DVItoPDF+ForwardPDF」です)

2012-06-20-4
私のQuickBuildの設定

これでKileの方の設定は終わりです。次にOkularの設定を変更します。

2.Okularの設定

Okularの設定は簡単で、「設定」→「Okularの設定」→「エディタ」と選び、エディタをKileに変更します。デフォルトではKateになっていると思います。

2012-06-20-3


以上で準備が出来ました。これでSyncTeXが使えるようになります。

Kile上のメニューバーから、LaTeXボタン→DVItoPDFボタン→ViewPDFボタンと押してコンパイルした後、(あるいはQuickBuildを使ってコンパイルした後)、「ForwardPDFボタン」を押すことによって今Kile上でカーソルのある位置にOkular上のPDFの位置が移動します。
逆にOkularからKileへのジャンプは、Okular上のジャンプしたい場所でShift+左クリックから行うことができるようになります。

※ちなみに現在は、生成したTeXファイルのファイルパスに日本語(マルチバイト文字)が入っているとSyncTeXが使えないようです。

どうでしょうか、これによって、エディタ上の部分と閲覧部分が別々になってしまうというTeXの欠点(利点でもある)が多少はましになると思うのですが…
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。