このクラインの壷の式は、ある物理学者がGnuplotを解説されているページから拝借したものです。
http://www.gnuplotting.org/tag/pm3d/
以下は私の解釈です。
曲面は、u, v の2変数で記述されていて、u がチューブの円周方向の、v がチューブの軸方向の曲面位置を記述しています。v について、条件分けがあって、4つの部品から構成されています:
Forum wide moderators
このクラインの壷の式は、ある物理学者がGnuplotを解説されているページから拝借したものです。
http://www.gnuplotting.org/tag/pm3d/
以下は私の解釈です。
曲面は、u, v の2変数で記述されていて、u がチューブの円周方向の、v がチューブの軸方向の曲面位置を記述しています。v について、条件分けがあって、4つの部品から構成されています:
クラインの壷の練習。
x[u_, v_] := If[v < 2 Pi, (2.5 - 1.5*Cos[v])*Cos[u],
If[v < 3 Pi, -2 + (2 + Cos[u])*Cos[v],
-2 + 2 Cos[v] - Cos[u]]];
y[u_, v_] := If[v < 2 Pi, (2.5 - 1.5 Cos[v])*Sin[u],
Sin[u]];
z[u_, v_] := If[v < Pi, -2.5*Sin[v],
If[v < 2 Pi, 3 v - 3 Pi,
If[v < 3 Pi, (2 + Cos[u])*Sin[v] + 3 Pi,
-3 v + 12 Pi]]];
ParametricPlot3D[{x[u, v], y[u, v], z[u, v]}, {u, 0, 2 Pi}, {v, 0,
4 Pi}, Exclusions -> None, PlotStyle -> Opacity[0.2],
Boxed -> False, Axes -> None, MaxRecursion -> 15, PlotPoints -> 100,
PlotTheme -> "ThickSurface"]
v が一周してきたところに継ぎ目が出来てしまうのは、仕様?みたい。
@riffraff さん
言葉は難しいですね。
Drawingは Drawing自身を含むのである!
x[u_, v_] := If[v < 2 Pi, (2.5 - 1.5*Cos[v])*Cos[u],
If[v < 3 Pi, -2 + (2 + Cos[u])*Cos[v],
-2 + 2 Cos[v] - Cos[u]]];
y[u_, v_] := If[v < 2 Pi, (2.5 - 1.5 Cos[v])*Sin[u],
Sin[u]];
z[u_, v_] := If[v < Pi, -2.5*Sin[v],
If[v < 2 Pi, 3 v - 3 Pi,
If[v < 3 Pi, (2 + Cos[u])*Sin[v] + 3 Pi,
-3 v + 12 Pi]]];
ParametricPlot3D[{x[u, v], y[u, v], z[u, v]}, {u, 0, 4 Pi}, {v, 0, 4 Pi}, Exclusions -> None,
PlotStyle -> Opacity[0.2], Boxed -> False, Axes -> None]
訂正:
マルチプルアライメントという用語の使用に誤りがありましたので、ここに訂正します。アライメントを用いて、データベースから類似の配列を検索するのにBlastを常用します。このとき複数の配列がアライメントされます。しかし、これは、クエリー配列(調査したい配列)と、データベース中の配列の、2つの配列のアライメントを行い、その結果、ある以上の類似が見付かった配列を複数並べたものです。マルチプルアライメントというのは、3つ以上の配列を同時に比較することを指すので、Blastをマルチプルアライメントのツールと呼ぶのは正しくないと思います。これまで Blast の説明に用いたのは、マルチプルアライメント→アライメント と読み替えて下さい。マルチプルアライメントには、専用の別のプログラム(アルゴリズム)を使います。
追加)ここまでの理解:
2つの配列のアライメント=ペアワイズ・アライメント
3つ以上の配列のアライメント=マルチプル・アライメント
ペアワイズ・アライメントを動的計画法で行うと、2次元の表が必要になる。
http://www.dna.bio.keio.ac.jp/lecture/jikken/data/kadai2/pair_align.pdf
3つの配列のアライメントを動的計画法で行うと、3次元の表が必要になる。だから、マルチプル・アライメントでは、「表が三次元以上必要になる」。
追加2)三次元
重大なミスに気がついたので修正しました:
0_1524366714368_yamane-77.png
マルチプルアライメントに常用されるBlast の開発者の一人の Myers 博士の、初期の配列比較アルゴリズムの古典的論文があります:
"An O(ND) Difference Algorithm and Its Variations",
Eugene W. Myers, 1986
です。この論文の図1はこんなでした:
配列のアライメントを、「エディット・グラフ」と呼ぶものの、道順の問題に置き換えて考えるというアイデアみたいです。むむむ。
「ダイナミック・プログラミング」という言葉の分かりにくいところは、この手法はコンピューター・プログラミングの世界で使われますが、前者のプログラミングの意味は、「コンピューター・プログラミング」のことでないことだと思います。その元であるところの、より広い意味の言葉だと言うこことです。...何を言っているのか分かりにくいですね。
「ダイナミック・プログラミング」の「プログラミング」とは、日本語訳にあるような、《計画》や《やりくり》みたいな意味だと思います。例えば、「演奏会のプログラム」と言って、演奏会の進行表・計画表のようなものを渡されます。そのプログラムの意味だと思います。
辞書では、
というのが第一の意味として載っていて、2つめに、もう少し狭い意味の、「麻薬撲滅プログラム」「コンピューター・プログラム」などに相当する意味が載っていました。
言葉(用語)の理解は難しいことが多いですが、理屈の理解や相互理解の、根幹にあるものだと思います。教科書を読んでいて分からなくなるのは、たいていは、言葉が分からないことに起因すると思います。そうして、私の場合は、既に前の章に説明があった言葉を、いい加減に見過ごしていることが原因みたいです。
Fainting In Coilsで @ソム さんが発言 :
drawing と sketching の違いって何だろう?
最近は、抽象的な単語が分からないときは、まずGoogle画像検索しています。集合知的なイメージが出てくるからです。「Learn English: 300% Faster」という英会話学習の本で勧められていた方法です。
"drawing" と "sketching" の結果はかなり似ていました。しかし、微妙に傾向に違いがあるようにも見えます。難しいです。@riffraffさんのヒント にあった、drawing ⊃ sketching という理解は、辞書的には正しそうです。
←こういうのは、なんて呼ぶのでしょうか? painting でもないし、sketching でもなく、...???
@Hannibal さん
やったー正解?でした。分かった後に出てきた疑問は、
これらのうち、最後は分かるのですが、drawing と sketching の違いって何だろう?とういことです。それから、watercolor painting をどうしてウツボ先生は教えてないのか?ということです。海の中なので、出来ないのでしょうか?(笑
さて、「かばん語」というのは知りませんでした。これも「不思議の国のアリス」が元ネタのようですね。キマイラ先生に聞けば「的を得た」解答がもらえそうです。「喧喧諤諤」の議論をまきおこすかもしれませんが。 ←(訂正)既出でした。
@マーモセット さん
イマジネーションが刺激される楽しいお題と解説ありがとうございました。答えも分からず(笑)解説もまだ見ることはできませんが、きっと素晴らしい謎解きが書かれているのでしょう! 解ける日はそのうち来るはずなので、開けるときを楽しみにします。
「ダイナミック・プログラミング(動的計画法)」は、階段の昇り方もそうですが、問題がより小さな問題の重複から出来ている場合に有効な方法ですね。https://ja.wikipedia.org/wiki/動的計画法 をいまあらためて見ていたのですが、「マルチプルアラインメントのように表が三次元以上必要になると」というところにピピピと来ました。皆さんが話されている「次元」とは何かと思って居たのですが、関係ありそうです。マルチプルアライメントは、バイオ系では、DNAの塩基配列やタンパク質のアミノ酸配列の比較に日常的に用いられています。よく似た配列同士(例えば異なる動物種で、対応する遺伝子など)をできるだけ一致するように沿わせて並べる行為のことです。Blastというソフトウェア(アルゴリズム)が効率的で有名です。世界中で使われています。またこの行為を文章などの文字単位、あるいは、行単位で行うことは、情報処理の世界では基本的な行為で、Diff というソフトウェアが有名です。しかし、マルチプルアライメントで動的計画法が利用されていることは知りませんでした。「三次元以上必要になる」表とは何か? ヒントになりそうです。ちょっと勉強してみます。
アルファベットを使った、マルチプルアライメントの例
配列1 ABCDEFG
配列2 BBCDEFG
配列3 BBC―EFG
配列4 ―BCCEGG
「―」は並べるときに対応する文字がないので、すき間を空けているところです(階段を一段飛ばした?ところです)。
@riffraff さん
それで分かりました! 音がやや苦しい気もしますが、振り返って見ればウツボ先生の3教科というのがヒントだったのかもしれませんね。