仮想計算機構

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

2020-01-01から1年間の記事一覧

デルタ関数と階段関数のシミュレーション【Sage】【Python】

デルタ関数 小出昭一郎『量子力学(Ⅰ)』の3章7節よりで定義される関数の極限をとるとデルタ関数になる。SageShellを立ち上げて、関数 f を下記で定義する。 x,a = var('x,a') x0 = 1 f = lambda x,a:sqrt(a/2/pi)*exp(-a*(x-x0)*(x-x0)/2) a を 1 から 50 …

y=x のフーリエ級数展開を可視化する【Sage】【Python】

はじめに 小出昭一郎『量子力学(Ⅰ)』(p.60)より周期 2l の関数 f(x) は以下のように展開できます。 複素フーリエ級数 複素フーリエ係数 とし、 の場合についてシミュレーションを行います。計算や可視化はSageShellを使います。 プログラム について、自…

楕円の速度ベクトル、加速度ベクトル

楕円 の速度ベクトル、加速度ベクトルのアニメーションを作る。可視化に必要な関数を下記で定義する。 sage: t = var('t') sage: x = 9*cos(t) sage: y = 4*sin(t) sage: vx,vy = x.derivative(),y.derivative() sage: ax,ay = vx.derivative(),vy.derivativ…

1次元調和振動子の可視化 その2

はじめに 前回のつづきです。今回も数値計算っぽいことをやります。小出昭一郎『量子力学』のp.53より の期待値はとなります。前回と同様 とし、これを数値計算で確かめます。 方法 から をサンプリングして、 の平均値をとれば が計算できます。 からサンプ…

1次元調和振動子の可視化

小出昭一郎『量子力学(Ⅰ)』のp.51にある1次元調和振動子のグラフを再現します。可視化するのは以下の関数です。この関数は下記の方程式を満たします。ディラック定数 はそのまま使うと都合が悪いので とおいて下記の関数を使います。 def X(n,M,w): A = sq…

箱の中の自由粒子を可視化する

前提 この記事では固有関数の可視化を行います。数式などは小出昭一郎『量子力学(Ⅰ)』の2章5節にしたがいます。時間を含まないシュレーディンガー方程式に対し、 : 固有関数、 : 固有値 縦横高さがそれぞれ である箱の外では と書ける とします。方程式を解…

SageMathで固有振動のアニメーションを作る

固有振動 n=1,2,...に対して基準振動を下記で定義します。 は弦の長さ、 は弦を伝わる横波の速さを表します。 を変化させた場合のアニメーションをSageMathで作ります。 SageMath - Open-Source Mathematical Software System プログラム main.sageを作成し…

SageMathによるカラビヤウ多様体の可視化

はじめに 面白いブログ記事を見つけました。 カラビヤウ多様体の可視化については色々情報がありますが、一番とっつきやすい情報源だったので、思いっきり活用させていただこうかと思います。引用元ではJavaScriptを使っているようです。今回はSageを使いま…

SageMathで複素数を扱う

複素数 の宣言 sage: a=CC(1,1) sage: a 1.00000000000000 + 1.00000000000000*I実軸との成す角度(ラジアン) sage: a.arg() 0.785398163397448実軸との成す角度(度数法) sage: a.arg()*180/3.14 45.0228246533569実部 sage: a.real() 1.00000000000000虚…

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

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

ボグダノフ写像の可視化

ボグダノフ写像は以下で定義されます。 シミュレーション Wikipediaにならってパラメータを に設定しました。下記の範囲に点を20x20=400個配置し、各点の軌跡を描画します。 結果は以下のとおりです。 プログラム <html> <body> <script type="text/javascript" src="bogdanov.js"></script> </body> </html> /* Bogdanov Map */ const WIDTH = 6…

レスラー方程式

レスラー方程式は以下で定義される連続力学系です。ここでドット記号は時間 t での微分を表すこととします。連続時間ではシミュレーションできないので時間を0.02ずつ増やしてシミュレーションしました。また、パラメータは としました。以下シミュレーショ…

ジンジャーブレッドマン写像

ジンジャーブレッドマン写像は下記の式で定義される離散力学系です。二次元の点(x, y)を50x50=2500個用意して、各点がどのような軌跡を描くのかやってみました。点は座標に応じて色づけしています。具体的にはHLS色空間の色相Hを以下のように計算していま…

MathJaxの数式表示を後から変えてみる

下記サイトを参考に、MathJaxで数式を表示し、あとから数式の表示を変えてみます。 Webの数式表現 javascript - 数式をJavascriptから読み込んでHTML上に表示させたい(MathML+MathJax) - スタック・オーバーフロー 最初の表示は で、画面をクリックすると に…

Canvasに描いた線をフーリエ級数で表現する

フーリエ級数を用いて絵を描くという試みをいろんなところで見かけます。 一番有名なのは以下の動画でしょうか。 初音ミクを描いちゃったという方もいらっしゃいます。 Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜車輪の再発明でいいじ…

ダイクストラ法の可視化

ダイクストラ法の実行過程を可視化しました。 以下、実行の様子です。 サイトからも実行の様子を見れます。 http://riverta.net/gallery/optimization/index.html 参考文献・参考サイト アルゴリズム IT Text 数理最適化 | Ohmsha JavaScript Infinity - Jav…

【自分用メモ】さくらVPSで設定した常時SSLを無効化したい

さくらVPSを使い始めて、一通りの設定は完了済み。 以下のコマンドでリダイレクト設定などもしてしまっている状態。 $ certbot --apache -d XXX.comssl.confの名前を変えたが、それだけではだめそう。 apacheやcertbotでの設定が必要。Let's Encryptで取得し…

Beautiful Trigonometryが美しいので再現してみた

↓の動画が面白かったので自分で実装しました。 ↓ここで見れます。 http://riverta.net/gallery/trigonometry/beautiful_trigonometry/main.htmlコードは以下の通りです。 <html> <body> <script type="text/javascript" src="trigonometry.js"></script> </body> </html> const WIDTH = 500; const HEIGHT = 500; const canvas = document.createElemen…

【日記】PythonでOpenCVが使える環境を構築した。

筆者の環境 OS : Windows 10 CPU : Intel Core i5 2.60GHz IDE : VSCode 1.46.1 シェル:Powershell 画像処理とかをやりたいので環境構築。 以下のobikata氏による手順を踏みました。 まずは Git をインストール 今回は Git for Windows v2.27.0 を以下から…

【日記】npmのお勉強

下記サイトのサンプルを動かした。 npmパッケージを使ってみよう! | プログラミングの入門なら基礎から学べるProgate[プロゲート]がっつり勉強するのはもう少し先にしよう。。。

【日記】Node.jsをインストールした

0.筆者の環境 OS : Windows 10 CPU : Intel Core i5 2.60GHz 1.下記サイトにアクセス。 ダウンロード | Node.js 2.Windowsインストーラーをダウンロードする。 3.インストーラーを起動。 これを進めていくと数分でインストール完了。 4.インストール完了の確…

Tempesti loop:自己複製しながら文字を描くセルオートマトン

はじめに 自己複製するオートマトンには様々なパターンがあり、Wikipediaには簡易的な比較表があります。 Langton's loops - Wikipedia 比較表のうち、Langton's loopとByl's loopは実装しました。 今回はTempesti loopと呼ばれるセルオートマトンを実装しま…

圧縮されたルールテーブルから元のルールテーブルを復元する

セルオートマトンはセルの次の状態を決めるために遷移規則を必要とします。例えば Tempesti loop であれば以下のページにあるルールを使います。 ruletablerepository/Tempesti.table at gh-pages · GollyGang/ruletablerepository · GitHubこのページを見る…

JavaScriptによるチューリングマシン その1

丸岡章氏による著作「計算理論とオートマトン言語理論」のp.148には正しい括弧を受理するチューリングマシンの例があります。ちょっと勉強がてら実装してみます。この本ではテープの記号とマシンのヘッドを1行に並べて表示する「様相」という方法が出てきま…

CanvasによるByl's loop

はじめに プログラム 結果 参考文献・参考サイト オートマトン プログラム 動画 デザイン はじめに 先日はCanvasを使ってラングトンのループを再現しました。 今回はよりシンプルな構造をもつ自己複製オートマトン、Bylのループを実装します。 Bylループ Byl…

CanvasによるLangton's Loops

はじめに プログラム 結果 参考文献・参考サイト 自己複製子 動画 デザイン JavaScript はじめに aidairyさんの記事↓に刺激されて自分でも作ってみたくなったのでラングトンのループを再現してみます。 ラングトンの自己複製オートマトン - 人工知能に関する…

CanvasによるLorentzアトラクタの可視化

はじめに Lorentzアトラクタを可視化しました。ただ軌道を描いた画像を作るのはつまらないのでアニメーションにしています。奥村晴彦さんの本を参考にしているのでx-z平面の可視化となりますが本当は3次元です。 動画 録画ツールとしてScreencastifyを使用…

Schemeで複素関数の可視化

今までやってきたこと 複素関数の可視化 プログラム 実行結果 今後参考にしていきたいサイト 今までやってきたこと グラフィックスの下準備 その1 - 仮想計算機構 グラフィックスの下準備 その2 - 仮想計算機構 線を丁寧に描くよ - 仮想計算機構 円を丁寧…

バブルソートの可視化

バブルソート可視化。 ソートの過程でswapした要素も可視化しています。 www.youtube.comScreencastifyで動画とったのでとやたら画質が悪いですね。 動画のとり方は今後工夫したいところです。

基数ソートをカラフルな円で可視化する

In-placeではない基数ソートの可視化。 以下、Screencastifyで作った動画になります。 www.youtube.comコードはぐちゃぐちゃですが一応↓にあります。 jsfiddle.net 参考文献・参考サイト アルゴリズム 基数ソート - Wikipedia 奥村晴彦『C言語による標準アル…