手習ひデジタル信号処理(193) Scilab、{Scilabデモ}、ブラックホール?に似た

Joseph Halfmoon

信号処理素人老人がScilabの「信号処理のデモ」からカテゴリ脱出。前回は支点の移動する振り子のデモを鑑賞しました。今回は「ブラックホール」です。相対論的なシミュレーション?かとトキメキましたが、どうもそんなことはありません。フツーの重力ポテンシャルのミニュチュア的なモデルみたいです。事象の地平面など登場しませぬ。

※「手習ひデジタル信号処理」投稿順 Indexはこちら

※Windows11上の    Scilab2024.0.0を使用させていただいております。(Scilabについては御本家 Scilab 様へ)

「流れシミュレーション」

今回鑑賞させていただくのは、以下のScilabのデモ選択画面から起動するデモ、

    • Black hole
    • Cylinder
    • Sphere

の3つです。selectBlackHole

最初、2つめのカテゴリ選択が「流れシミュレーション」ということで、流体のシミュレーションなの?圧力とか粘性とか出てくるやつなの?と勝手に想像してました。しかし、流体のシミュレーションではなかったです。

また、1個目のBlack holeというデモタイトルからは、みんな大好きブラックホールか?とも一瞬思いましたが、動かしてみるとどうもそんなことはないみたいです。ありがちな重力ポテンシャル風の曲面の上で点を転がした、という感じのシミュレーションです。ポテンシャルを与える曲面の拘束のもと、点の位置と速度から常微分方程式を解いてシミュレーション(アニメーション)しているみたい。まったく摩擦とか抵抗とか無いようなので速度を落とすこともなく、所定の期間(ハードコードされてます)動作をつづけます。まあストップボタンもあるけど。

速度が遅ければポテンシャルの井戸の底の方に落ち込んで回っているけど、速度が速ければアニメーション範囲を逸脱して外へと飛び出していきます。後は野となれ山となれ?違うか。そこには事象の地平面など登場しませぬ。

Black holeデモ

デモは3つとも同様なファイル構造です。ブラックホールのケースを代表例として説明します。デモファイルの在処は、

Scilabのインストールフォルダ\modules\differential_equations\demos\flow\

です。ブラックホール・デモの場合、トップのファイルは

blackhole.dem.sce

です。そこから呼び出される実際の関数は以下の3ファイルに格納されてます。

    1. create_interface.sci、スライドバーとかスイッチとかGUIを作成する関数どもを格納しているファイル。3種のデモに共通。
    2. blackhole.sci、ブラックホールの重力井戸風のポテンシャル内での軌道を計算するための関数(ODEで解いている)を含むファイル。
    3. blackhole_interface.sci、初期設定とGUI設定値をモデルに反映し、実行のトップ関数を呼び出す。

起動すると現れる画面は以下のようです。BlackHoleSIM

3次元空間の中の曲面として「ポテンシャル」を表しているみたいっす。下のシミュレーションパラメータで初期位置 r とθ(円筒座標)、初期速度speedとその平面的な方向directionを指定します。指定によって赤矢印の位置や長さ、方向が変ります。設定したところでStartボタンを押すとシミュレーション開始。

デフォルト値で実行した場合が以下に。BlackHoleSIMdef1

デフォルト設定では結構速度が速いみたいで、中央の急激に凹んでいる部分のかなり奥まで入りこんでも、また表面付近の平に近いあたりまで戻ってきます。

一方、速度を遅くすると凹部分の奥の方に落ち込んだまま、その辺で釣り合ってしまうみたいです。また、速度を速くして外側に向けるとアニメーション範囲を逸脱して脱出していきます。一方、真っすぐに凹の中心に向けると、真下にどこまでも落ちていくみたい。底はないんか?ブラックホールだもんな。

まあ、ブラックホールというのは言い過ぎ?だけれど、重力井戸の中の軌道を模擬した感じ。見ていてあきませぬなあ。

Cylinderデモ

お次は運動を束縛する曲面の形が変わり、スノボ競技の「ハーフパイプ」のような形状です。走らせてみたところが以下に。Cylinder

スノボといっても空中に飛び出して何回転かして着地するみたいな技は繰り出されることはありません。拘束曲面を外れるような速い初速を与えると外へ飛び出してそれきりです。なお、このデモのトップのスクリプトは以下です。

cylinder.dem.sce

Sphereデモ

次は半球形の内側で、くるくると回るもの。どちらかというとお椀の中で回しているような雰囲気です。Sphere

こちらのスクリプトのトップは以下です。

sphere.dem.sce

アニメーション表示は、とっても面白いのだけれど、実際に記述するとなると面倒っす。数百行くらい記述すればできるんだが、お惚け老人はきっと根気が続かない。。。

手習ひデジタル信号処理(192) Scilab、{Scilabデモ}、支点が移動する振り子 へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です