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

数学とか語学とか楽しいよね。ドイツ語とかフランス語とか数値計算とか勉強したことをまとめます。右のカテゴリーから興味のある記事を探してください。

数値計算

【数値計算】Roe平均の見つけ方 -そのアイディア

1, 保存量 とヤコビアン をあるパラメータ で表現する。2, 保存量とヤコビアンのそのパラメータ に対するヤコビアン を計算する。3,「流束の差=近似ヤコビアン×保存量の差」という関係式 を用いて、パラメータ によるヤコビアン の線積分を考える。4, すると…

【数値計算】ガウスの消去法 C++コード付き

今回は連立一次方程式の直接解法の代表である、ガウスの消去法のC++コードを公開します。しくみはおいおい説明するとして、とりあえずコードをおいておきます。反復がi, j, kと出てきて少々ややこしい形になります。 今回解く連立一次方程式はとあらわされま…

【数値計算】一次元配列で二次元配列を表現しよう C++コード付き

今回はC++において、一次元配列で二次元配列を表現する方法を説明します。二次元配列でコードを書くと非常に読みやすく、理解しやすいものになるのですが、二次元配列は一次元配列に比べて重いです。そこで、よく一次元配列で二次元配列を表現する方法が使わ…

【数値計算】有限要素法の誤差解析ーそのアイディア

有限要素法が様々な分野の問題に適用されている理由の一つに、一般的な「誤差解析が行いやすい」ということがあります。以下にそのアイディアを示します。 Ceaの補題(セアの補題)を用いて、有限要素解と真の解との誤差を、有限要素解と補間関数との誤差の…

【数値計算】数理モデルと離散化の関係とか

今回は「数理モデル」と「離散化」の関係を説明します。いろいろ書こうとするとどうしてもこの二つの概念を説明する必要があることに気づきました。 まず、考えたい(解析したい)現象があります。今回は玉が重力の下で自由落下する運動を考えたい現象である…

【数値計算】単調性保存(monotonicity preserving)

単調性保存(monotonicity preserving)は数値計算のスキームを考える際に必要となる概念です。単調性保存の定義は離散化された方程式のすべての節点 にたいしてならば が成り立つとき、このスキームを単調性保存(monotonicity preserving)である、という…

【数値計算】有限要素法で局所座標の積分公式を証明する際に用いる定積分の公式

今回は、有限要素法で局所座標の積分公式を証明する際に用いる、定積分の公式 を示します。簡単そうに見えますが、計算するのには一手間かかります。 まず、 を以下の式 で定義します。漸化式にして求めます。部分積分を一回して を得ます。同じように を部…

【読書リンク】『数値計算のための解析力学』

今回は陰山聡さん著、『数値計算のための解析力学』のリンクです。現在解析力学と取っ組み合いをしているので、目途が立ったら読ませていただきます。このように誰にでも読める形でまとめて公開していただけると、独学の際とても助かります。http://www.rese…

【数値計算】二次精度風上差分の導出

二次精度風上差分の導出をやります。備忘録みたいなものです。点 を中心に上流側二点の値を使うのが二次精度風上差分です。具体的には、流速が のときは と と の情報を使います。一方、流速が のときは と と の情報を使います。まず、 のときから考えてい…

【数値計算】風上差分の中心差分+数値拡散表示

風上差分の中心差分+数値拡散表示の導出をやります。ポイントは風向きの正負によらない表示です。まず、 を節点 における濃度ないしは熱、 を節点 における流速、 を空間座標としたとき、風上差分は のように書けます。風上側(情報が伝わってくる側)の値を…

【数値計算】流束制限関数とは何だろう?そのアイディア

流束制限関数というのは、数値流体力学において双曲型の方程式を効率良く解くために考案された手法です。以下にそのアイディアを示します。 移流方程式に対して高次精度の差分を使うと衝撃波(解の勾配がきつくなる所) 近辺で数値解が振動してしまう、つま…

【数値計算】一次元非定常拡散方程式を有限要素法で解く C++コード付き

今回は一次元非定常拡散方程式を有限要素法で解いていきます。C++コード付きです。一次元非定常拡散方程式は、前に書いた記事「有限要素法のプログラミングを勉強するときにどの順序で学ぶのがよいか?」で紹介した、有限要素法を学ぶ場合に三番目に解くべき…

【数値計算】一次元定常移流拡散方程式を有限要素法で解く C++コード付き

今回は一次元定常移流拡散方程式を有限要素法で解いていきます。C++コード付きです。一次元定常移流拡散方程式は、前に書いた記事「有限要素法のプログラミングを勉強するときにどの順序で学ぶのがよいか?」で紹介した、有限要素法を学ぶ場合に二番目に解く…

【数値計算】一次元Poisson方程式(ポアソン方程式)を有限要素法で解く C++コード付き

今回は有限要素法の勉強で最初に解くであろう、一次元Poisson方程式のC++コードを公開します。前に書いた記事「有限要素法のプログラミングを勉強するときにどの順序で学ぶのがよいか?」で紹介した、有限要素法を学ぶ場合に、最初に解くべき方程式です。 普…

【数値計算】Gauss-Seidel法(ガウス・ザイデル法)のC++コード

現在「【数値計算】Gauss-Seidel法(ガウス・ザイデル法)の説明 実践編」を準備中ですが、それに先立ってGauss-Seidel法のC++コードを公開します。私はコーディングの専門家ではないのであまり綺麗ではありませんが悪しからず。皆様の勉強に役立てて頂けれ…

【数値計算】Gauss-Seidel法(ガウス・ザイデル法)の説明 理論編

Gauss-Seidel法とは 連立一次方程式を解くための基本的な反復法です。反復法とは一回の計算で解を求めるのではなく、ある決まった手順を何度も繰り返しながら真の解へと近づいていく方法です。数値計算では有限桁までしか表現できないので、得られる解は誤差…

【数値計算】有限要素法のプログラミングを勉強するときにどの順序で学ぶのがよいか?【導入編】

有限要素法のプログラミングを勉強したいと思っている方たくさんいると思います。私も最初はちんぷんかんぷんでした。Poisson方程式やら移流拡散方程式やらたくさん出てきます。有限要素法や数値計算の本を山ほど仕入れてきてうんうん唸っていました。そんな…

数値計算と数学

私は数値計算に興味がありますが、昔は数学者になりたかったので、解析解以外の解、数値解にはまったく魅力を感じなかったのです。受験問題レベルの数学でさえすらすらと解くことができなかったくらいなので、数学者になるのは諦めました。全然向いていない…