仮想計算機構

IT業界と無縁な派遣社員のブログ

坪井俊「多様体入門」問題1.2.6の再現

坪井本p.8の問題1.2.6に出てくるR^3の部分集合(1)-(3)をそれぞれ可視化してみます。使うソフトウェアはSageです。インストールしなくてもブラウザで試すことができます。

式は面倒なので書きません。ぜひ教科書を参考にしてみてください。

(1)

ブラウザで試すときは以下の画面で行います。
f:id:riverta1992:20201202160926p:plain
上の空欄にコードを打ち込み、Evaluateボタンを押すと結果が返ってきます。
コードはいたってシンプルです。

var('x,y,z')
implicit_plot3d((x^2+y^2-z^2), (x,-5,5), (y,-5,5), (z,-5,5),plot_points=150)

第1引数は部分集合を定義する式です。第2引数から第4引数では可視化の範囲を指定しています。plot_pointsは可視化する図のきめの細かさと考えてください。結果は以下のとおりです。

f:id:riverta1992:20201202160717p:plain

さすがにシンプルすぎて、この図だけだとSageを使う必要は感じませんね。

(2)

次に以下のコードを打ち込みます。

var('x,y,z')
implicit_plot3d((z^2+(x^2+y^2-1)*((x+3)^2+y^2-1)*((x-3)^2+y^2-1)*(x^2+y^2-25)), (x,-10,10), (y,-10,10), (z,-10,10),plot_points=200)

じゃっかん結果が返ってくるまでに時間がかかると思います。

f:id:riverta1992:20201202155728p:plain

はい。ダメでした。つながっておりません。z 軸方向に長すぎる集合のため、途中でぶった切った図になってしまいました。z 軸方向に縮めるため、以下のように z を 60z で置き換えます。

var('x,y,z')
implicit_plot3d(((60*z)^2+(x^2+y^2-1)*((x+3)^2+y^2-1)*((x-3)^2+y^2-1)*(x^2+y^2-25)), (x,-10,10), (y,-10,10), (z,-10,10),plot_points=200)

実行結果は以下のとおりです。坪井本p.98の図がうまく再現できたかと思います。

f:id:riverta1992:20201202154027p:plain

横からみるとこんな感じです。なかなか可愛いフォルムをしていらっしゃいます。

f:id:riverta1992:20201202154131p:plain

(3)

最後に以下のコードを入力します。

var('x,y,z')
implicit_plot3d((z^2+((x+1)^2+y^2-1)*((x-1)^2+y^2-1)),(x,-3,3),(y,-3,3),(z,-3,3),plot_points=200)

結果は以下のとおりです。

f:id:riverta1992:20201202162247p:plain

(2)に比べると式から図を想像しやすいですね。