超音波流体屋のプログラム備忘録内検索 / 「バターワースフィルタ定数」で検索した結果

検索 :
  • バターワースフィルタ定数
    Matlab / Octave のbutter関数を手実装したかったので。 アルゴリズムのみ記述する。理論的背景は参考URLを参照すること。 バターワース多項式 伝達関数$H(s)$は下記のバターワース多項式の逆数である[1]。(mは整数) $\L B(s) = \prod_{k=1}^{n/2} \left[ s^2 -2s \cos\left(\frac{2k+n-1}{2n}\pi\right) +1 \right]$ (for n=2m) $\L B(s) = (s+1)\prod_{k=1}^{(n-1)/2} \left[ s^2 -2s \cos\left(\frac{2k+n-1}{2n}\pi\right) +1 \right]$ (for n=2m+1) 例えば5次では下記の通り。 $B(s) = (s+1)\left[s^2 -2s\cos(6\...
  • メニュー
    ...ベッセル関数の実装 バターワースフィルタ定数 有限要素法 有限要素法・導出 積分前係数行列の導出 三角形要素・四面体要素 四角形要素・六面体要素 有限要素法・アルゴリズム 有限要素法・付録
  • 有限要素法・アルゴリズム
    六面体要素の例でアルゴリズム処理の並びを整理する。 プログラム上での便宜のために導出で用いなかった記号を用いる。 定数行列の準備 ${\cal C}_{ijkl} = \lambda \delta_{ij}\delta_{kl} + \mu (\delta_{ik}\delta_{jl} + \delta_{il}\delta_{jk}) $ $ S_{kn} = \left[ \begin{array}{cccccccc} 1 -1 -1 1 1 -1 -1 1 \\ 1 1 -1 -1 1 1 -1 -1 \\ 1 1 1 1 -1 -1 -1 -1 \end{array} \right]$ メッシュ 以下のように作成済みとする。 $ x_{ip} = \left[ \begin{array}{c...
  • 分布点音源法(DPSM)
    分布点音源法(Distributed Point Source Method, DPSM)とは、線形(音)場の解析手法の一つである。 手法としては、球面波の重ね合わせで音場を再現する点音源法に、境界要素法的な音場散乱の勘定が加わったものである。 複雑な定式化を有する境界要素法に比較して、原理・背景の理解が平易な計算手法であるので、 境界要素法の入門代わりに使うのも良いかもしれない。 多分2015年の現時点で日本語の教科書は無いので、興味があればページ末の英語の教科書を参照されたい。 このページでは流体中の線形音場について記述するが、 固体内の音場伝播やら線形空間微分方程式なら解けることになっているので必要に応じてページ末の教科書を参照すること。 本ページではMatlabまたはOctaveで実行可能なサンプルプログラムを付す。 https //github.com...
  • 積分前係数行列の導出
    前 有限要素法・導出 にて省略した質量行列の作り方とか。 積分前の係数行列 $ [M] =\left[ \iiint \{N_n\} {}^t\{N_n\} dV \right] = \iiint [\tilde{M}] dV $ $ [K] =\left[ \iiint \{\nabla N_n\} {}^t\{\nabla N_n\} dV \right] = \iiint [\tilde{K}] dV $ $ [{\cal M}] = \iiint [\tilde{\cal M}] dV $ $ [{\cal K}] = \iiint[\tilde{\cal K}] dV $ における、$[\tilde{M}], [\tilde{K}], [\tilde{\cal M}], [\tilde{\cal K}]$を扱います。 数値積分については各要...
  • cuda3.2のあれこれ
    実行中凍る ディスプレイ兼用で長時間カーネルを走らせると凍るのは仕様。 計算用にもう一本GPUを用意するか、実行時間が少なくなるようカーネルを分割する。 unspecified launch failureについて cudaMemcpyとかの行に出現するけど、大半の原因は直前のカーネル実行。 大体2タイプあってsegmentation faultタイプとstack overflowタイプがある。 そして区別がつかない。 ひとまずカーネルで範囲外配列参照とかぬるぽとかしてないか前者の確認。 後者の対応はよく分からない。 GPUサイドのスタックはCPUのスタックよりかなり小さい印象。 ローカル変数とか関数呼び出しとかをできるだけ少なくするアルゴリズムにするぐらいか。 __device__ staticで扱っていた定数を__constant__に切り替えると直ったり MPI連携で外と...
  • 三角形要素・四面体要素
    形状関数 $N= ^t \{ N_1, N_2, \cdots, N_n \}$の中身、その1。高次要素はやりません。 一次補完 ある物理量$f$を一次関数で補完する。 $f= ax + by + cz + o = \{x\ y\ z\ 1 \} \left\{ \begin{array}{c} a \\ b \\ c \\ o \end{array} \right\} = {}^t\tilde{\bf x} {\bf a} $ 二次元空間上なら3節点、三次元空間上なら4節点あれば係数$o, a, b, c$を決定できる。 四面体で導出するが、三角形は$c, z$を削るだけなので問題ないはず。 $ \left\{ \begin{array}{c} f_1 \\ f_2 \\ f_3 \\ f_4 \end{array} \right\} = \left[ \b...
  • MPICH2 (mpd, hydra)
    代表的なMPIソフト、MPICH2での並列計算方法の構築手順など。 CentOS Linux 6.5, mpich2 1.2.1。 ネットワークで繋がった複数の独立マシン間を通信する場合について扱う。 主にmpdの場合について扱うけど、バージョンが新しいhydra使うタイプのがずっと楽なので、 yumが対応してない場合は自分でビルドしたほうが良いかも。 1.双子マシンを準備する 最低限、Linuxのディストリビューションは揃える。 (CentOSとFedraで試したら、MPIライブラリの関係で駄目だった。) ユーザー名も共通の物を準備しておく。 2.MPICH2のインストール 全マシンに。バージョンも揃えたほうがよい。 gcc, gfortranで良いなら、yumで mpich2とmpich2-develを取ってくる。 インテルやPGIのコンパイラを使いたけ...
  • CLapack
    インストール (on CentOS 64bit 6.2) yumから以下をインストールする。 blas, blas-devel, atlas, atlas-devel, lapack, lapack-devel, arpack Linux で CLAPACK バージョン 3.2.1 のビルドとインストールに従ってclapack.tgzを落としてくる。 make.incの変更点は以下のとおり CC = gcc -DNO_BLAS_WRAP -m64 -fPIC -fomit-frame-pointer -O3 -fno-tree-vectorize -fexceptions -march=native -fopenmp (64bit, core-i7のため, 32bitとからなら -m64含めた先は不要らしい) LOADOPTS = -L/usr/lib64/atlas BLASLIB =...
  • Fortran
    Matlabが遅いよってことで一から勉強するよ Hello Worldまで コンパイラだけなら、linuxは常備(なかったらyumなどで)。 [Windows] OctaveかMingGW環境で手に入る。 Windowsならインストール後"C \Octave\Octave3.6.4_gcc4.6.2\mingw\bin"と"C \Octave\Octave3.6.4_gcc4.6.2\mingw\msys\1.0\bin" または、"C \MinGW\bin"と"C \MinGW\msys\1.0\bin"にパスを通しとくのを忘れないこと。 (LAPACKを使う予定があるならOctaveをいれておくこと) [Mac] macportsやhomebrewなどで、gfortranをインス...
  • 有限要素法・導出
    テンソル演算の嵐なのであまり入門用でないです。 あまり参考にしないように。 微分方程式 有限要素法使って解きたい支配方程式ってだいたいこの辺だろうか。 このページでは3式並列で離散化する。 物理的意味ではなく数理的意味が把握できたら他の微分方程式も応用が効くんじゃないかな。 弾性運動方程式 $\rho \ddot{\bf u} = {\rm div}{\bf \sigma} + \rho {\bf f} $ ポアソン方程式 $\nabla^2 \varphi = - \varrho/\varepsilon $ 波動方程式 $\nabla^2 \phi - (1/c^2)\ddot{\phi} = q$ 重み付け(仮想仕事の式) 上の式で厄介なのは、空間微分$\nabla$が関わった項。 これを処理する上での有限要素法のトリックは、両辺によくわか...
  • 雑多なメモ
    新しいページを作るまでもない些細なPC関係のメモ Linux HDD追加 (2017年06月20日) サイズ・認識確認 # parted -l 編集 (gptを指定) # parted /dev/sdb (parted) mklabel (gptを選択) (parted) mkpart (ext4, 0%, 100%) スワップを新規追加したければ linux-swap フォーマット # mkfs.ext4 /dev/sdb1 # mkswap /dev/sdb2 マウント # mkdir /work # mount -t ext4 /dev/sdb1 /work # swapon /dev/sdb2 その後、fstabへの登録 その後swapをファイルとして追加したければ スワップをファイルとして追加したければ # ...
  • Linux計算サーバー構築メモ
    Ubuntu 20 LTS ベースで計算サーバーとして運用する初期設定など インストール時 4K以上高解像度スクリーンは認識しないことがある (safeグラフィックでインストールする。) NFS環境を想定する場合はuid/gidを振りなおす。 UID/GIDは1000番以下は予約されているので2000番台を使うとあまり干渉しない。 変更対象からログアウトした後 groupadd group -g GID usermod user -u UID -g GID ドライバ関係 NVIDIAグラフィックカード BIOS/UEFIからsecure bootを無効化する。 aptに普通はあるのでドライババージョンを調べてインストールする。 (.runはaptと干渉することが多い) lspci | grep NVIDIA https //...
  • 四角形要素・六面体要素
    形状関数 $N= ^t \{ N_1, N_2, \cdots, N_n \}$の中身、その2。高次要素はやりません。 四角形要素・六面体要素は三角形・四面体のように腕ずくで形状関数を出すというよりかは、 四角形や六面体を予め形状関数が分かっている、(正規)正四角形・立方体にマッピングし直すことで形状関数を導出します。 最終的なK, M行列では体積分が必要であり、数値積分をする必要があるが座標変換のお陰でずいぶん単純になります。 座標変換 四角形や六面体を区間[-1, 1]の正方形・正六面体に座標変換することから始めます。 $\L (x,y,z) \rightarrow (\xi, \eta, \zeta)$ $\L x_i = N_n x_{ni}$ 座標変換後の形状関数ははじめから用意されていて、 $\L N_n = \prod_k \frac{...
  • bash
    条件分岐 elifが特徴。" [ ", " ] "の前後には半角スペースを忘れずに。 i=0if [ $i -eq 1 ]; then echo $ielif [ $i -eq 2 ]; then echo $ielse echo $ifi if 文と test コマンド[1] ループ for i in 1 2 3; do echo $i done i=0while [ $i -ne 10 ]; do echo $i i=`expr $i + 1`done 無限ループ while [ 1 -eq 1 ]; dosleep 10done 置換 後方置換 (拡張子変換など, %で最短・%%で最長マッチ) for f in `ls *.dat`; do mv...
  • matlab-octave
    条件分岐 インタラクティブだと動かないかも。 if condition statementelseif condition statementelse statementend インタラクティブで動かすなら三項演算子的に var = (condition)*x + (!condition) *y ループ できるだけ行列演算で済ます方が賢い for I=1 col A( , I) = dat((I-1)*row+1 I*row);end ファイル読み書き データをスクリプト言語で行列に整えてload saveして結果をスクリプト言語処理が楽。 Cとほぼ同関数・フォーマットの入出力も可能 fid = fopen( filename , rb )...
  • CentOS Linux 6.2への引越
    Windows7の入ったThinkpad T420sが来たので、引越しでやったことまとめ。 Linux領域の確保まで CentOSのisoを落としてきてDVDに焼いておく(DVD1,2と2枚あるものを選んでくること) 仮想化環境を使いたいならBIOSの設定をしておくこと。 GPUまわりの詳細設定やCUDAを使うことを考えるなら、NVIDIA OptimusもBIOSの時点で切っておくこと。 初期状態は160GB SSD中, MBR(?)100M, 20Gリカバリ, 残りwin7 リカバリ領域をDVDへ 管理ツール→コンピュータの管理でC を70Gに縮小 リカバリ領域は削除 インストール 領域が80Gくらいしかないのと、sda5までしかできないらしく、 特殊な何かがいるのでパーティションはインストーラ任せ そのあと適当にサイズ調整 /boot 500M /swap ...
  • CULA Sparse (S5, CUDA 5.5)
    CULA Sparse はCUDA上で動作する疎行列用の線形システム反復解法ツール。 おまじないが20行くらいあって非常に煩雑であるため、 疎行列でも1000x1000くらいかそれ以下ならDense使ったほうがラク。 アカデミックならフリーで使える。ダウンロードは以下からID登録してから。 http //www.culatools.com/downloads/sparse/ linuxは落としてきた.runを管理者権限でbashで実行。 使用例 一次元ポアソン方程式を解く CULA Sparse 使い方の一例として、疎行列の代表例であるラプラシアンを含む微分方程式を解く。 行列の導出はこのページの最下部を見てもらうとして、こんな形状の行列を解く。 結果のyは上に凸の放物線になる。 $\left[ \begin{array}{cccccc} 2 -1 ...
  • TeX
    参考文献 \begin{thebibliography}{9} % 参考文献が10以上ある場合は{99}とする \bibitem{journal} authors "Title" journal vol page (year) \bibitem{book} authors "Title" publisher (year) pages \end{thebibliography} ソースコード等入力通りの出力 一行 \verb+ printf("hoge"); + 複数行 \begin{verbatim} for(...
  • OpenMPI
    環境的な問題でOpenMPI ver.1.6.5をインストールした時のメモ インストールなど OpenMPI現行バージョンは ver.1.10.2のため、yumでインストールすると 古いバージョンでコンパイルされているプログラムが動かない。 古いFedoraなど近いバージョンが入るなら良いが、CentOS 6.7の yumもver.1.8程度なので自分でインストールする。 mpif90をifort下で使用し、mpich2との競合を考えてデフォルトprefixはさける。 tar xvfz openmpi-1.6.5.tar.gz cd openmpi-1.6.5 export MPIROOT=/usr/lib64/openmpi ./configure --prefix=$MPIROOT FC=ifort make su make install sudo ma...
  • 有限要素法・付録
    有限要素法・導出の付録部分。 積分形 今回の導出で使わないと思うが、積分形ならこんな形をしてる。 (弾) $ \iint {\bf \sigma} d{\bf S} = \iiint \rho (\ddot{\bf u} - {\bf f}) dV $ (ポ) $ \iint \nabla \varphi d{\bf S} = - \iiint \varrho/\varepsilon dV $ (波) $ \iint \nabla \phi d{\bf S} = \iiint (\ddot \phi/c^2 + q) dV $ 総和規約 このページでは、テンソル演算において総和記号$\Sigma$は使わない。 $\delta{\bf \epsilon} {\bf \sigma} = \epsilon_{ij} \sigma_{ij} = \sum_{...
  • CULA Dense (R17, CUDA 5.5)
    (CUDA 5.5, CULA Dense R17 版の情報です。) アカデミックならFull Editionが使える。 ダウンロードは以下からID登録してから。 http //www.culatools.com/downloads/dense/ linuxは落としてきた.runを管理者権限でbashで実行。 ソース R14の時のcutilが使えなくなったので、そのへんを修正。 参考 CUDA5.5+Fedora19 CUDA™ 5.5 開発環境をインストールする (Linux版) CULA使い方の一例として、連立方程式 Ax = bを解く話。 んで今回はMatlab記法で A=ones(10 000, 10 000)-eye(10 000); b=ones(10 000, 1); 対角成分だけ0、後は1の行列。解は確か全部 1/9999。 ...
  • CULA (R14, CUDA 4.4)
    CUDA 4.1, CULA Dense R14 版の(古い)情報です。 → CULA Dense (R17, CUDA 5.5) → CULA Sparse (S5, CUDA 5.5) CULA free editionならfloat, float complex限定、連立方程式・最小二乗法・LU分解あたりが使える。 ダウンロードは以下からID登録してから。 http //www.culatools.com/downloads/dense/ linuxは落としてきた.runを管理者権限でbashで実行。 今回はCULA Dense R14 free editoinを使用。 要CUDA 4.1だったので、CUDAも4.1にバージョンアップ。 ソース CULA使い方の一例として、連立方程式 Ax = bを解く話。 んで今回はMatlab記法で A=ones(...
  • PETSc
    PETScとはC/Fortranで使える、反復解法スパースソルバで有力なオープンソースコード。 PETScの入門的な使い方として、連立方程式の求解の計算例を示す。 https //www.mcs.anl.gov/petsc/index.html インストール https //www.mcs.anl.gov/petsc/documentation/installation.html make installがないので、使用予定の場所に解凍する。 (2016/10/20編集) OpenMPI環境で$MPI_ROOTにインストールされている場合下記が多分よい。 (追記)blas,lapackがyumで手に入っているなら--downloadの部分も不要。 その際libblas.soおよびliblapack.soにアクセスできるよう、適切なシンボリックリンクを貼ること。 ./...
  • Lapack
    Fortran環境下で連立方程式を WindowsならMinGW前提で。 インストール linuxならrpm等から、WindowsはOctaveのディレクトリの中にあるのを流用する、 MacはXcodeのDeveloper s kitについてくるveclibが流用できる。 [Windows] dllがあるフォルダ"C \Octave\Octave3.6.4_gcc4.6.2\bin"にパスを通しておき その際liblapackがlibopenblasを求めるくせに無いので、 libblas.dllを複製してlibopenblas.dllとし、同フォルダにおいておく。 リンク Eclipse Photranを使っているなら [Windows] プロジェクトのプロパティ→Fortran Build→設定 ツール設定タブ→Fortran Li...
  • NLopt
    NLoptは非線形(勾配利用型)最適化ライブラリ。 http //ab-initio.mit.edu/wiki/index.php/NLopt MATLAB用インストール MATLAB(Linux)で使いたいときは ./configure --enable-shared MEX=/usr/local/MATLAB/R2012b/bin/mex MEX_INSTALL_DIR=~/bin/nloptなど MATLAB(Windows版)は、http //ab-initio.mit.edu/wiki/index.php/NLopt_on_Windows MATLABで使用する場合は,要Visulal StudioでDLLから.libを生成したのち mexでコンパイルする必要がある。手順は下記の通り。 1.nlopt-2.4.2-dll64.zipの解凍、C \bin\...
  • 複素数引数ベッセル関数の実装
    (2015/03/27編集, 前の関数は遠方で発散するので) cuda上で複素数入力のハンケル関数(complex Bessel function, Hankel function)を扱いたかったんでメモ。 四角い車輪の再発明なので用途に困ったとき以外は素直にboostライブラリの関数や、fortranライブラリの流用を検討すること。 complex_bessel GitHub scipy.special.hankel2 SciPy Cyclic Hankel Functions boost.org amos http //www.netlib.org/amos/ 計算式 $\L J_n(z) = \sum_{m=0}^{\infty} \frac{(-1)^m}{m!(n+m)!} \left( \frac{z}{2} \right)^{2m+n...
  • @wiki全体から「バターワースフィルタ定数」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

目安箱バナー