数学とか語学とか楽しいよね

フランス語、ドイツ語、ロシア語、アラビア語、オランダ語、英語、スペイン語、ラテン語とか数学とか数値計算(有限要素法、有限体積法、差分法、格子ボルツマン法、数理最適化、C++コード付き)とか勉強したことをまとめます。右のカテゴリーから興味のある記事を探してください。最近はクラシックの名演も紹介しています。Amazonアソシエイトを使用しています。

C++

【有限体積法】Keller-Segel方程式を有限体積法で解く C++コード付き

はじめに 今回はKeller-Segel方程式を有限体積法で解いていきます。半年前ぐらいに作ってどうも動かなくてしばらく放置していましたが、やっと動きました!!!Keller-Segel方程式とは粘菌の凝集をモデル化した非線型連立方程式です。走化性モデルとして有名…

【C++】2次元vectorいろいろ

C++

はじめに 今回は2次元vectorのいろいろをまとめたC++コードを置いておきます。いつも配列を使っておりvectorの使い方を忘れてしまうので備忘録です。 C++コード #include <iostream> #include <cmath> #include <fstream> #include <iomanip> #include <string> #include <sstream> #include <vector> using namespace std</vector></sstream></string></iomanip></fstream></cmath></iostream>…

【有限要素法】1次元移流方程式をSUPG法で解く C++コード付き

はじめに 今回は1次元移流方程式をSUPG(Stremline Upwind Petrov Galerkin)法で解いていきます。今までずっとやろうと思いながらも放置してきましたが、やっとやりました。1次元移流方程式とは のような一階の偏微分方程式のことをいいます。ここで、 は溶…

【確率微分方程式】確率微分方程式を数値計算してみよう C++コード付き

はじめに 今回は確率微分方程式を数値的に計算するC++コードを紹介しようと思います。パスがランダムに進展していく様は見ていて非常に興味深いです。 確率微分方程式とは? 一般論 のような式のことを伊藤の確率微分方程式(Stochastic Differential Equati…

【最適化】準ニュートン法(BFGS公式とアルミホ条件による直線探索)C++コード付き

はじめに 今回は無制約最小化問題に対する数値解法(反復法)である、準ニュートン法(BFGS公式とアルミホ条件による直線探索)のC++コードを公開します。例題として2変数関数を考えます。最適解は です。反復法とは、適当な初期値 を定め、という漸化式によ…

【最適化】多変数ニュートン法 C++コード付き

はじめに 今回は無制約最小化問題に対する数値解法(反復法)である、多変数ニュートン法のC++コードを公開します。例題として2変数関数を考えます。最適解は です。反復法とは、適当な初期値 を定め、という漸化式によって値を更新していき、最終的に最適解…

【最適化】1変数ニュートン法 C++コード付き

はじめに 今回は無制約最小化問題に対する数値解法(反復法)である、1変数ニュートン法のC++コードを公開します。例題としてを考えます。もちろん、最適解は です。反復法とは、適当な初期値 を定め、という漸化式によって値を更新していき、最終的に最適解…

【最適化】最急降下法(アルミホ条件による直線探索)C++コード付き

はじめに 今回は無制約最小化問題に対する数値解法(反復法)である、最急降下法(アルミホ条件による直線探索)のC++コードを公開します。例題としてを考えます。もちろん、最適解は です。反復法とは、適当な初期値 を定め、という漸化式によって値を更新…

【格子ボルツマン法】格子ボルツマン法で2次元拡散方程式を解きます(D2Q4) C++コード付き

今回から2次元に入っていきます。2次元拡散方程式を解くC++コードを作りました。D2Q4です。どうやら拡散方程式を解く分にはこれで十分みたいです。参考にしたのは"Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes…

【格子ボルツマン法】格子ボルツマン法で1次元バーガース方程式を解きます(D1Q2) C++コード付き

LBMで1次元バーガース方程式を解くC++コードを作りました。D1Q2でやってます。参考にしたのは"Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes"の2-5章、Appendixのコード(まったく洗練されていないが故に読みや…

【格子ボルツマン法】格子ボルツマン法で1次元移流拡散方程式を解きます(D1Q2) C++コード付き

LBMで1次元移流拡散方程式を解くC++コードを作りました。D1Q2でやってます。参考にしたのは"Lattice Boltzmann Method: Fundamentals and Engineering Applications with Computer Codes"の2-4章、Appendixのコード(まったく洗練されていないが故に読みやす…

【格子ボルツマン法】格子ボルツマン法で1次元拡散方程式を解きます(D1Q2) C++コード付き

幅を広げようと思い、格子ボルツマン法(Lattice Boltzmann Method, LBM)の勉強を始めました!LBMは流体の方程式に対する離散化手法です。そこで、取りあえず1次元拡散方程式を解くC++コードを作りました。D1Q2というやつです。Dの後の数字が次元で、Qの後…

【浅水流方程式】ダム崩壊問題(dam break problem)の解析解を計算するC++コード

【浅水流方程式】サイトマップ(ここから関連記事が探せます) 浅水流方程式にはいくつか解析解が出る問題があり、テスト問題としてスキームの精度を調べるのに活用されています。その中で一番有名なのがダム崩壊問題(dam break problem)です。真ん中にダ…

【プログラム】C++でバブルソートをつくりました

自分のC++力の低さに気付き、勉強しています。それと同時にアルゴリズムとデータ構造も勉強しています。その一環でバブルソートをつくりました。テンプレートも勉強で入れています。 #include <iostream> #include <cmath> #include <fstream> #include <iomanip> #include <string> #include <sstream> using nam</sstream></string></iomanip></fstream></cmath></iostream>…