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

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

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

有限要素法のプログラミングを勉強したいと思っている方はたくさんいると思います。私も最初はちんぷんかんぷんでした。Poisson方程式やら移流拡散方程式やらたくさん出てきます。有限要素法や数値計算の本を山ほど仕入れてきてうんうん唸っていました。そんな悪戦苦闘を通して、最近有限要素法がだんだんわかってきました。有限要素法を効率よく勉強するためには、以下の問題に対するプログラムを作成していくのが一番効率がよいと思います。


1次元Poisson方程式(1次元Laplace方程式でも可)

1次元定常移流拡散方程式

1次元非定常拡散方程式

1次元非定常移流拡散方程式

1次元非定常Burgers方程式

まずは1次元から始めるのがよいと思います。もちろん有限要素法が威力を発揮し始めるのは2次元以上ですがシンプルなものから勉強するべきです。

1次元Poisson方程式

そこで最初に1次元Poisson方程式を解くコードを作ります。これは拡散項のある定常問題を解けるようにするためです。ソース項のないLaplace方程式でも可です。ここで大規模な連立一次方程式の解法も学びます。私はGauss-Seidelを愛用していますが、Gaussの消去法も押さえておきましょう。TDMAでもokです。前者が反復法の代表で、後者が直接法の代表です。

1次元定常移流拡散方程式

この問題で拡散項と移流項が存在する定常問題の解き方を学びます。

1次元非定常拡散方程式

この問題では、拡散項だけが存在する非定常問題の解き方を学びます。陽解法、陰解法ともに作ります( \theta 法で離散化するとよいです)。

1次元非定常移流拡散方程式

次に非定常拡散方程式に移流項を足した問題の解き方を学びます。陽解法、陰解法ともに作ります。これが出来たら線型はもう大丈夫です。非線型問題を解くことは、線型問題を繰り返し解いていくのと同じなので線型問題が解けることは非常に重要です。

1次元非定常Burgers方程式

最後が1次元非定常Burgers方程式です。この問題では、非線型問題の解き方を学びます。Burgers方程式の場合は移流項が非線型項になります。将来Navier-Stokes方程式を解くときにも役立ちます。陽解法、陰解法ともに作ります。陰解法の場合は適当な反復法(Newton法とかPicard反復とか)が必要なのでそれも学びます。


導入なのでざっくりとしか書いていませんが流れはこんな感じです。このあとは風上化編に続きます(執筆中)。コードを書く際に参考になる文献の紹介や各問題の詳細な解説はまた別の記事でやります。

注 1次元移流方程式はリストに入れていませんが、これは風上化を導入した後に解くべきなのであとまわしになっています。

【語学学習】Wikipediaを使った中・上級者向けの英語学習法

中・上級者にとって一番大事なことはどんどん原文を読み進めていくことと単語をどんどん覚えることです。ただ単語を覚えるといっても無味乾燥な例文で単語を覚えるのが苦手な方も多いと思います。さらに、中級のうちは英語ならば単語集もありますが、上級になってくるとちょうどよい単語集というのは見当たらなくなってきます。そこで原文(例えばWikipedia英語版の自分の興味のある記事)を読みつつ、出てくる未知語を暗記していくと、非常に効率よく学習を進められます。未知語の暗記にはスマホアプリのAnkiを使います。

http://mathlang.hatenablog.com/entry/2017/09/18/202602


では早速やり方を解説していきます。例えばWikipedia英語版の森鴎外のページを読んでいて知らない単語"acrimonious"が

He divorced her the following year under acrimonious circumstances that irreparably ended his friendship with Nishi.

このように出てきたとします。まずは、Weblioで未知語の意味を調べます。次に未知語と用例、そしてその意味を以下の写真のようにAnkiに打ち込みます。用例はWeblioのものを使ってもよいですし、私は記憶残りやすさから実際の読んでいた文章を用例として使っています。私も毎日この方法でわからない単語、熟語をどんどんAnkiに放り込んでいきます。ノートを使って暗記していたころは、未知語が出てきてもどうせ覚えきれないだろうと考えてやる気がなくなっていましたが、今はAnkiに放り込みさえすればいつか覚えられるので英文をどんどん読み進めることができます!

Wikipediaだけでなく、TimeやBBC Newsを読むのもおすすめです。なかなか高級な語彙が出てきて楽しいです。

ちなみにAnkiで復習する際、私はどうしても単語だけでは思い出せない時だけ用例を読むことにしています。こうすることにより、スピーディな復習ができます。

さらに、この方法は英語などと違って、ちゃんとした単語集のないようなマイナー言語を勉強するのにも適しています。Wikipediaならだいたいのマイナー言語をカバーしています。

【語学学習】基本語5000辞典

ここ二年ほど、毎朝ドイツ語単語帳『ドイツ語基本語5000辞典』を1ページづつ覚えています。この白水社の『基本語5000辞典』にはドイツ語の他に、フランス語、ロシア語、スペイン語とあるのですが、ほぼ全ての単語に例文とその和訳がつけられているという素晴らしい代物です。私もスペイン語以外持っています。もう絶版ですので見つけたら必ず押さえてください。絶対に役に立ちます。私はドイツ語とフランス語は神保町で、ロシア語はAmazonで押さえました。いまだに時々見かけます。飲み会一回パスすれば買えます!

ドイツ基本語5000辞典

ドイツ基本語5000辞典

フランス基本語辞典

フランス基本語辞典

ロシア基本語辞典

ロシア基本語辞典

スペイン基本語5000辞典

スペイン基本語5000辞典


単語の覚え方は木田元のやり方を使っています。

人生力が運を呼ぶ

人生力が運を呼ぶ

闇屋になりそこねた哲学者 (ちくま文庫)

闇屋になりそこねた哲学者 (ちくま文庫)


これについては、他の記事で詳しく解説します。私はこの方法によって大幅に語彙力を増強しました。やはり語彙力が無いと洋書を読み進めるのはしんどいです。

【数学】集積値

集積値には以下のような定義があります。同値性はほぼ自明なので省略します。

数列 {x_n} のある部分列が a に収束するならば、この a を集積値と呼ぶ。

または

a のどんな近傍にも数列  {x_n} の項が無限に多く存在するとき、この a を集積値と呼ぶ。


参考

田島一郎 『イプシロン-デルタ』P.80あたり

イプシロン-デルタ (数学ワンポイント双書 20)

イプシロン-デルタ (数学ワンポイント双書 20)

数値計算と数学

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

しかし、代わりといってはなんですが数値計算に出会いました。最初はただの近似にすぎないと思っていたのですがなかなかどうしてこれが奥深い。当時はコンピュータに数式を打ち込めば勝手に計算してくれるものだと思っていたのですが、そんな単純なものではないのです。数式(支配方程式、主に偏微分方程式)と数値解の間には「離散化」という創造的かつ興味深いプロセスが横たわっています。それはアナログとデジタル、連続と離散の間を繋ぐ架け橋です。

その離散化の方法を考える際に効いてくるのが数学なのです。こんなところで(考えてみれば当たり前なのですが)数学に出会うとは少々驚きました。数学、特に線型代数解析学関数解析などが強力かつ必要不可欠なツールとなっています。私もこれらを習得しようとあっぷあっぷしている最中です。

離散化手法には色々あって、私が知っている手法を列挙すると「差分法」、「有限要素法」、「有限体積法」、「境界要素法」、「スペクトル法」、「粒子法」、「個別要素法」とかたくさんあります。最初の3つは説明したいけれども残りはあまり私も理解していないので勉強していきたいです。

何を書いていこうか?

色々と書くことがたまってきました。もう少し勉強してからまとめようと思っていたのですが、そんなことをしているとまとまるものもまとまりませんので勉強しつつまとめます。

私が特に興味を持っている「数学」、「流体力学」、「数値計算」、「外国語」について書いていきます。数学は解析学流体力学は非圧縮性流体、数値計算偏微分方程式、外国語はインド・ヨーロッパ語族を中心に、となりそうです(私にもわかりません)。あとおもしろい本も紹介できれば上々です。

どれも下手の横好きなので粗が目立つと思いますが、細かい議論よりも「結局何が言いたいのか」を説明できれば幸いです。世の中には優れた書物がたくさんありますが、それらを読むためにはたくさんの前提知識が必要です。なぜなら、著者らは自分が理解できるようになったプロセスを忘れてしまい(または十分に優秀であるから)、簡素で不親切な記述に走りがちだからです。しかし、「結局何が言いたいのか」をあらかじめ把握しておけば(初心者にはこれが原理的に不可能なのです!)、それらの書物を読みこなすことも可能になります。どこまで出来るかわかりませんがちょっとやってみます。