雑感等

音楽,数学,語学,その他に関するメモを記す.

プログラミング

pythonでレスラー方程式の解軌道を描画(ルンゲクッタ法)

pythonでルンゲクッタ法を実装した. レスラー方程式を与えて描画する.プログラム内関数のdxdt, dydt, dzdtを書き換えれば別の微分方程式も解ける. 下記プログラムはローレンツ方程式を解くようにも書き換えられる. import numpy as np def dxdt(a, b, c,…

pythonで自己MIC(相互情報量)関数を計算

自己相関関数では,ある信号sig(t)とその信号を時間kだけ遅延させた信号sig(t+k)との相関係数を計算するが, ここでは相関係数の代わりに相互情報量(MIC)を求める関数automicを示す. MIC自体はminepyで計算する.下記プログラムを実行すると,グラフが2つ表…

matlabで振幅スペクトルの表示(fft)

matlabで高速フーリエ変換し,振幅スペクトルを表示する. function showfft(sig,fs) %sig:信号.1次元配列 %fs:信号のサンプリング周波数 N=length(sig); % 信号のサンプル数 plot(fs*(0:N-1)/N,abs(fft(sig)/N)) %振幅スペクトルの描画:縦軸が振幅,横軸が…

haskellで逆引き辞書ソート

単語を羅列したファイルから『逆引き広辞苑』みたいにソートする. import System.IO main :: IO () main = do hin <- openFile "test_words.txt" ReadMode -- 読みこむファイル:単語リスト hout <- openFile "reverse_idx.txt" WriteMode -- 書き込むファ…

フラクショナルブラウン運動の生成するmatlabプログラム(Vossのアルゴリズムによる)

function sig=voss(hurst,len) %Vossのアルゴリズムによってフラクショナルブラウン運動を生成する. %husrt:Hurst指数 %len:出力するデータ長 %2^n+1>=lenとなる最小のnを求め,その長さでfBmを生成する lenFbm=2^ceil(log(len-1)/log(2))+1; %初期化 fBm=z…

フラクショナルブラウン運動の分散特性のプロット

matlabプログラムで分散特性に対する時間間隔を両対数グラフにプロットする.Hurst指数がHのフラクショナルブラウン運動(fBm)の信号に対して分散-時間間隔をプロットすると, 両対数グラフ上で傾きが2Hの線形となる範囲が現れる.フラクショナルブラウン運動…

フラクショナルブラウン運動の生成プログラム

正規分布に従う乱数を分数階積分してフラクショナルブラウン運動を生成し,csv形式に出力するプログラム. 下記のC++11のコンパイラで動作を確認 Embarcadero Technologies Inc. bcc32c version 3.3.1 Microsoft Visual Studio Community 2015 Version 14.0.…

minicondaで環境作成とパッケージインストールに失敗する場合(Windows 10)

OS: Windows 10 プロキシサーバ経由でネット接続 minicondaで環境作成に失敗した. cmdから"conda create -n py36 python=3.6"を実行した結果urlopen error [WinError 10060]が出る. 対処:proxy設定(.condarcファイルを作成)して,proxy設定が有効なpyth…

jupyter実行時のエラー:markupsafeの入れ直しで解消

下記ページと同様の対処をしてjupyterが実行できるようになった. oboe2uran.hatenablog.com表示されたエラー: C:\WINDOWS\system32>jupyter notebook Traceback (most recent call last): File "c:\python\lib\runpy.py", line 193, in _run_module_as_mai…

haskellでテトレーションを計算

を求める関数. tetration x y= foldr1 (^) $ take y $ repeat x

常微分方程式の数値解法:ルンゲ=クッタ法,クッタ=シンプソンの方法(1/3法則)

文献が示すルンゲ=クッタの公式を整理する. 文献の"表 8.3 ルンゲ-クッタの公式"と"表 8.4 ルンゲ-クッタの公式(連立方程式)"をもとにする. 文献 藪忠司, 伊藤惇. “8.2 ルンゲ-クッタ法”. 数値計算法. コロナ社, 2002, p.100-101, (機械系教科書シリーズ…

Haskellプログラミングの考え方

データ変換の連鎖 理想的なHaskellのソースは, 欲しいデータの性質を記述したもの? データの変換手順だけを記述したもの? 「Emacs Lisp 脳と Haskell 脳」(http://www.mew.org/~kazu/material/2010-func.pdf) 関数型つまみ食い: 関数型とはプログラミン…

問題の解き方・考え方―Haskellプログラミングと力学の問題

Haskellプログラムを書いていて感じたことがある. それは, Haskellでプログラムを書くこと 物理の文章題を解くこと が似ていることだ. 両者の考え方の共通点として感じたのは 最も大事なことが,何の値を求めたいのか明確にすること 問題の条件を「数式」…

haskell do構文

失敗 import System.Environment main::IO() main= do args<-getArgs argsl<-length args --Couldn't match expected type ‘IO a0’ with actual type ‘Int’ (print.show) argsl 成功 import System.Environment main::IO() main= do args<-getArgs let argsl…

Haskell ポイントフリー

Prelude> (3*(4-))$ 2:38:1: error: ? Non type-variable argument in the constraint: Num (a -> a) (Use FlexibleContexts to permit this) ? When checking the inferred type it :: forall a. (Num (a -> a), Num a) => a Prelude> (3*).(4-)$ 2 6