趣味で計算流砂水理

趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

pythonで気付いたこと

会社のプロキシ抜け

うちの会社の環境では,コマンドプロンプトで以下を実行するとOKでした.

condaも問題なく使えるので環境構築が可能です.

csvファイルのreadの速度

数100万のデータになるので結構時間がかかります. 読み込む方法は,pandasの.read_csvが圧倒的に速いです.

参照Python §12 : グラフのためのデータ処理 高速なファイル処理ができるpandas | hitochan007のブログ(Pythonの勉強ブログ)

列の抽出なども速いので,便利でした.

matplotlibのベクター貼り付け

いつの間にかemf出力がなくなっており,ベクター出力は,eps,pdf,svgの三択です. epsは環境依存も有り,今後あまり使うことはないかと思います. TeXだとpdfがいいと思いますが,wordだったのでsvgを使いました.直接は貼れないので,IllustratorInkscapeから貼り付けました.

matplolibが遅い

特に塗りつぶし系が遅いです.ちなみに論文のコンター図は描画に15分かかります.

と苦労していたのですが,今日色々調べていたら,pcolorではなく,contourfで書いたら,100倍くらいので速度で書けました. なので,pcolorは大きなデータでは辞めたほうが良いかもしれません.

jupyterなしでは...

jupyter使いまくりです.無いと無理です. jupyter notebookの次世代として,jupyter labというものが出るらしいです.

Jupyter Notebookの次世代版、JupyterLabのこれが凄いポイントの紹介 - のんびりしているエンジニアの日記

そろそろgithubを立ち上げて,python系のソースコードはjupyterで書いたものをgistに上げて,それをブログにあげようかなと思ってます.

今週からちょこちょこブログも書きます.

インテル® Distribution for Python

という名前のようですね.

インテル® Distribution for Python* の紹介 | iSUS

ただ,私達が趣味で一般的に使う環境だと全然速くなっていないようです. 下図の一番左がscipyの速度比較ですが,シングルコアだとubuntupythonと同速度です.

http://www.isus.jp/wp-content/uploads/DPD-PythonDist-speedup-version-2.png

ゴリゴリのマトリックス計算をxeonとか使ってやる人でpythonのライブラリを使いたい時には良いかもですね.

お久しぶりです

いろいろ書けなくてすみません。

最適化数学

最適化数学の場合、以下の書籍を読んでました(過去形)。

入門者の本です。

http://www.kyoritsu-pub.co.jp/bookdetail/9784320017863

ただどちらかというと、線形計画のみピックアップした読み方をしてたので、 無制約の部分が使えるかどうかは不明です。

計算時間がクリティカルって面白いですね。 Fortranでやってもかなり計算がかかるものなのでしょうか?

Fortranで問題なければ、エクセルからDLLをキックすれば行けそうな気がするのですが。

グラフ

  • すごいです。綺麗に収束してますね(感動)。
  • 中のアルゴリズムが気になりますが、面白い研究で実用も使えて良いものだと思います。
  • なんかちゃんと理論立てて、数学を使えばちゃんと上手くやれるんですね。当たり前ですが・・・。

Flux Upwind Scheme

  • 2次元版を書いてみましたが、振動が入ってるっぽくて、どこか間違ってるようです。
  • 今度教えてください。
  • Parabolic Bowl でも試してみます。

f:id:SedimentHydraulics:20160911110429p:plain

VR

  • VRよりはARが流行りそうかなと思ってます。
  • ここら辺だと、ゲーム関連をやってる人だと詳しそうです。

Deep Learning

  • どうも、深層学習は画像しか上手くいっていないみたい、な話が出ました。
  • 画像は、JPGであれば、フーリエ変換を応用したものを使っており、親和性がもともと高いのではないかということです。

無制約最適化問題

ぜんぜん書けなくてすいません。完全に執筆モードです。

無制約最適化問題

ここのところ、夢中になっているアジョイント法ですが、ポイントの一つに降下法の解法があります。 基本は、共役勾配法(正確には、非線形共役勾配法)を使ってますが、ステップ幅の問題があり、準ニュートン法(正確には、記憶制限準ニュートン法)にしたいなと思ってます。

このような話って、無制約最適化問題の反復法による解法に当たると思いますが、良い教科書的な本ってご存知ですか? なかなか見つからなくて困ってます。

ジョイント法ですが、実河川スケールに拡張した場合、行列が大きくなり過ぎて、降下法の演算に時間がかかり過ぎます。なんとかしないとまずい感じです。

勉強会のテーマについて

ちょっと本業がバタバタしており、あまり準備ができそうにないのですが、私からは以下のような準備をしています。

  • 平面二次元の話

    • Upwind Flux Schemesの境界条件を教えて下さい。
    • Upwind Flux Schemesの離散化について
    • parabolic bowlの話
  • 久しぶりに断面準二次元の話

    • 今後の展開について私から報告です。
  • その他

こんな感じでしょうか。他に思いついたら準備しておきます。

Linuxとか

書き込み遅くなりました。

Linux

サーバーで動かすという場合であれば、CentOSが多いような気がします。 WebもCentOS(もしくはFree BSD)が多いようです。

チェック用であれば、VMwareでも良いかと思いますが、 実際に稼働するサーバーと同じ環境にしておいたほうが良いかと思います。

また、ライブラリを利用しているようでしたら、そこらへんにも気を使う必要があるかと思います。

個人的にはCentOSをネイティブに用意しておくのも悪くないと思います。

なお、個人PCにCent OS 6は入れてます(Win7とのデュアルブート)が、最近使ってません・・・。

Parabolic bowl

これでチェックできそうですね。 まだ回せていませんが、Python良いです。 リスト内包表記は強烈です(笑)

中身は後ほど確認します。

Pythonでプロトタイプを作って回しますが、 結局中身が肥大化して遅くなるので、結局Fortranに書き換えたくなります。。。 この前教えてもらったFortranでのDLLを試してみたいと思います。

最近

いろいろあって、波動方程式とかシェルスクリプトとかPythonとか仕事で使いそうです。 まあ、WinなのでCygwinですが・・・。