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

数学とか語学とか楽しいよね。ドイツ語とかフランス語とか数値計算とか勉強したことをまとめます。

【単語帳】"woe"

今回は"woe"「悲哀、苦悩」という意味の英語の単語です。


"she took Rapunzel and put her in a waste and desert place, where she lived in great woe and misery."

(彼女(魔女)はRapunzel(ラプンツェル)を連れていき、荒れた不毛の地へ置いて行ってしまいました。Rapunzelはそこでひどく悲しくみじめに暮らしました。)


という、Grimm童話の "Rapunzel"(ラプンツェル)に出てきました。たしかディズニー映画になっていたような気もします。もとはGrimm童話です。


語源は、古英語の悲しみをあらわす間投詞 "wa!" から来ているようです。日本語だと「嗚呼」とかですね。どうやらいろんな言語でも似たような悲しみをあらわす間投詞を使うようです。例えば、ラテン語 "væ"、古典ギリシャ語 "οὐαί (ouaí)"、ドイツ語 "weh" 、デンマーク語 "ve"、フランス語 "ouais" などです。特に、ドイツ語では、"weh" は「痛い」という意味の形容詞でもあり、"Heimweh"(ホームシック)などとも言います。


昔から覚えられなかった "woe" を暗記するとっかかりを見つけることができました!うれしい。


文章の出典

語源の出典

https://en.wiktionary.org/wiki/woe#English

【行列】自分自身に転置行列をかけてできる行列は、正定値行列になる

「自分自身に転置行列をかけてできる行列は、正定値対称行列になる」ということを証明したいと思います。この命題は、行列の反復解法であるGauss-Seidel法を考える場合に役に立ちます。


例えば、正則であり正定値でない  n × n 行列  A n 次元ベクトル  x b に対して連立一次方程式


 
\displaystyle 
\begin{eqnarray} 

Ax = b

\end{eqnarray}

を考えます。ここで、 x が未知数、 A b は既知であるとします。Gauss-Seidel法は行列  A が正定値行列でなければ収束しないことが知られているので、このままでは上記の連立一次方程式は解けません。そのような場合は左から転置行列  A^t をかけます。すると


 
\displaystyle 
\begin{eqnarray} 

A^t Ax = A^t b

\end{eqnarray}

となります。この新しい連立一次方程式の  A^t A は実は正定値行列になっており、Gauss-Seidel法で解を得ることができるのです。もちろん元の連立一次方程式の解と新しい連立一次方程式の解が同じであることは明らかです(新しい連立一次方程式の左から  (A^t)^{-1} をかければ元に戻る)。

そんなわけで「自分自身に転置行列をかけてできる行列は、正定値行列になる」を示しておきたいのです。


まず、正定値行列の定義です。

 n × n 実対称行列  M が正定値 (positive definite) であるとは、 n 個の実数を成分に持つ零ベクトルでない任意の列ベクトル  x に対して、二次形式  x^t M x が必ず正となること、すなわち

 
\displaystyle 
\begin{eqnarray} 

x^t M x > 0

\end{eqnarray}

となることである。


次に証明の中で出てくるので、半正定値行列の定義も載せます。正という条件が緩められ、非負になっただけです。

 n × n 実対称行列  M が半正定値 (positive-semidefinite) であるとは、 n 個の実数を成分に持つ零ベクトルでない任意の列ベクトル  x に対して、二次形式  x^t M x が必ず正となること、すなわち

 
\displaystyle 
\begin{eqnarray} 

x^t M x \geq 0

\end{eqnarray}

となることである。


それでは「自分自身に転置行列をかけてできる行列は、正定値行列になる」を証明しましょう。もとの行列を  A とします。行列  A は正則である、すなわち逆行列が存在すると仮定します。 A が正則でないと証明しようとしている事柄は成り立ちません。注意しましょう。また簡単のために、 n 次元ベクトル  x に対して


 
\displaystyle 
\begin{eqnarray} 

Ax = b

\end{eqnarray}

となるような  n 次元ベクトル  b を導入しておきます。証明しようとしている事柄は、「 A^t A が正定値行列である」なので、 A^t A の二次形式  x^t A^t Ax を考えます。ここで、 x は零ベクトルでない任意の  n 次元ベクトルとします。このとき


 
\displaystyle 
\begin{eqnarray} 

x^t A^t Ax &=& (Ax)^t Ax \\
                  &=&  |Ax|^2 \\
                  &=& |b|^2 \geq 0

\end{eqnarray}

となります。これで  A^t A は少なくとも半正定値行列であることがわかりました。


次に、正定値行列であることを示すために、二次形式が0となる場合、すなわち  x^t A^t Ax = |b|^2 = 0 を考えます。このとき、 b=0 なので、 Ax = 0 がわかります( Ax = b だから)。 A は正則なので逆行列が存在します。なので、逆行列を左からかけると  x=A^t 0 =0 となり、二次形式  x^t A^t Ax が0になるのは  x = 0 であるときだけであることがわかりました。つまり、 x = 0 でなければ二次形式  x^t A^t Ax が0になることはないことがわかります。これで  A^t A が正定値であることがわかりました(正定値行列の条件は任意の非零ベクトルに対してなので)。


参考 

行列の定値性 - Wikipedia

【解析学】『大学での微分積分Ⅰ』

藤田宏著、『大学での微分積分Ⅰ』を読み終わりました。実は私、大学の微分積分をきちんと勉強したことがありません。そんなわけで一度腰を据えて勉強しようと思ったのでした。


微分積分の参考書は星の数ほどあるので悩みましたが、応用や定義の意味に重点を置く、『大学での微分積分Ⅰ』を読みました。上巻の『大学での微分積分Ⅰ』で一変数の微分積分をやり、下巻の『大学での微分積分Ⅱ』で多変数の微分積分をやるという構成です。上巻は173ページと大変コンパクトにまとまっていてよいです。このシリーズの特徴は「定義や定理の意味が分かるように書いてある」ということです。このように親切な本は意外と少ないものです(最近着実に増えてきています)。結局この定理は何を意味するのか?、どうやって使うのか?、どうしてこのように定義するのか?、初心者はこうしたことが絶望的なほど理解できません。このシリーズは上記の事柄をしっかり説明してくれています。さらに簡単に確かめることができ、かつ意義のある例が提示されているので理解がすすみます。大学一年生の私に対して教えてあげたい本の一冊です。当時はもっとわかりやすく説明してくれている本を探すべきでした。


特に勉強になったのは、平均値の定理を用いてTaylor展開を誘導する件です。Taylor展開における剰余項の存在の意味がわかります。さらにCauchyの平均値の定理もわかりやすいです。


注意すべきなのは、実数の連続性や位相に関する事柄は下巻にまわされているということです。この部分は他の本でカバーしたほうがよいかもしれません。


次は『大学での微分積分Ⅱ』を引き続き読んでいきます。


理解から応用へ 大学での微分積分〈1〉

理解から応用へ 大学での微分積分〈1〉

理解から応用へ 大学での微分積分〈2〉

理解から応用へ 大学での微分積分〈2〉

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

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


Cea補題(セアの補題)を用いて、有限要素解と真の解との誤差を、有限要素解と補間関数との誤差の問題にすりかえる

有限要素解と補間関数の誤差はBramble-Hilbertの補題(ブランブルーヒルベルト補題)等を用いて評価する


まず我々が知りたいのは「有限要素解と真の解との誤差」です。ここで、「有限要素解」とは有限要素法により求まる解のことを、「真の解」とは解きたい微分方程式の解のことを言います。「Cea補題」を用いると、これを調べることは「有限要素解と補間関数との誤差」に帰着します(詳しく言うと誤差の上限がわかります)。ここで、「補間関数」とは「元の無限次元の解を折れ線関数等で近似すること」と考えてもらえば大丈夫です。「有限要素解と補間関数との誤差」を調べる方法にはいくつかありますが、「Bramble-Hilbertの補題」が有効です。


今後は「Cea補題」や「Bramble-Hilbertの補題」を説明しつつ、有限要素法における誤差解析の実例を示したいです。

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

今回は「数理モデル」と「離散化」の関係を説明します。いろいろ書こうとするとどうしてもこの二つの概念を説明する必要があることに気づきました。


まず、考えたい(解析したい)現象があります。今回は玉が重力の下で自由落下する運動を考えたい現象であるとしましょう。Newton以来、こうした問題に対しては微分方程式によるアプローチが有効であることがわかっています。つまり、微分を含む式(方程式)で現象を記述します。この式のことを「数理モデル」と呼びます。今回の場合、この数理モデルはNewtonの運動方程式

 
\displaystyle 
\begin{eqnarray} 

\frac{dv}{dt} = -g

\end{eqnarray}

で記述されることがわかっています。ここで  v は速度、 t は時間、 g は重力加速度です。式で現象を記述(表現)したものが数理モデルと考えてもらえば大丈夫です。特にそれは微分方程式になることが多いです。


構築した数理モデルを解くことにより、現象を予測することができます。今回の場合は両辺を一回積分することにより簡単に解くことができます。時刻  t=0 v = 0 とすると

 
\displaystyle 
\begin{eqnarray} 

v (t) = -gt

\end{eqnarray}

となります。これで自由落下する玉の速度を計算することができます。


しかし、このように微分方程式数理モデル)が解けることはめずらしいことで、ほとんどの場合は解くことができません。その場合は、数値計算により解を求めることになります。パソコンは四則演算しかできないので微分方程式数理モデル)を四則演算へと帰着させる必要があります。この操作のことを「離散化」といいます。


この離散化手法にもいろいろ種類があり、代表的なものを挙げると、「差分法」、「有限要素法」、「有限体積法」、「スペクトル法」、「境界要素法」、「粒子法」などがあります。もとの微分方程式の性質に合わせてどの手法を用いるか決めます。


ここでは、差分法を用いてNewtonの微分方程式を離散化してみましょう(これは別の記事で説明します)。離散化された式は

 
\displaystyle 
\begin{eqnarray} 

\frac{v^{n+1} - v^{n}}{\Delta t} = -g

\end{eqnarray}

となります。ここで  \Delta t は微小な時間幅で  v^{n} は時刻  n \Delta t における速度をあらわしています。 n をタイムステップと呼びます。この式のことを「離散化式」と呼びます。 n での速度  v^{n} がわかれば  n+1 での速度  v^{n+1} が求まる、という寸法です。つまり、パソコンは連続を扱うことができないので離散点(各タイムステップ)でのみ値を求めようというのが離散化の考え方です。時間幅を十分に小さくとれば、任意の時刻における速度を求めることができます。


もとの微分方程式は連続(点がびっしり詰まっている)であるのに対して、離散化された式は離散的な点(飛び飛び)でのみ値が与えられています。パソコンは連続をそのまま扱うことはできないのです。

今までの流れを整理しましょう。


考えたい(解析したい)現象

数理モデル

離散化式

最初の矢印がモデル化で二つ目の矢印が離散化をあらわしています。


注意してもらいたいのが、元の現象から離散化式にたどりつくまでに二回近似が入っている、ということです。一回目の近似が現象をモデル化するときです。現象は式でそのまま書けるわけではなく、ある種の理想化を行っています。例えば自由落下する玉の場合、空気抵抗を無視してモデル化しています。もちろん空気抵抗の効果を入れることもできますが、そうするとどんどん数理モデルが複雑になっていき、取り扱いづらくなってしまいます。なので時にはあまり現象に対して影響を与えない要因は切り捨てるということも必要になってきます。二回目の近似は微分方程式数理モデル)を離散化するときです。連続のものを離散として取り扱うので、かなりの注意が必要です。


以上から、現象を正しく解析するためには、現象を妥当な微分方程式数理モデル)で記述し、その微分方程式を妥当な離散化手法を用いて離散化する必要がある、と言えます。

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

単調性保存(monotonicity preserving)は数値計算のスキームを考える際に必要となる概念です。

単調性保存の定義は

離散化された方程式のすべての節点  i にたいして
 
\displaystyle 
\begin{eqnarray} 

u^{n}_{i} \geq u^{n}_{i+1}

\end{eqnarray}
ならば
 
\displaystyle 
\begin{eqnarray} 

u^{n+1}_{i} \geq u^{n+1}_{i+1}

\end{eqnarray}
が成り立つとき、このスキームを単調性保存(monotonicity preserving)である、という。

です。要するに、ある時刻で単調に減少しているとき、それより先の時刻でも単調に減少していることを言っているだけです。

図で見るとわかりやすいです。

f:id:mutsumunemitsutan:20180419211824p:plain

ある時刻  n において、値が単調減少  u^{n}_{i} \geq u^{n}_{i+1} とします。このとき、次の時刻  n+1 u^{n+1}_{i} \geq u^{n+1}_{i+1} となっていれば単調性保存です。

あるスキームが単調性保存になっているといろいろとよいことがあるのでこんな概念があります。それはまた今度。


参考 棚橋隆彦著、『はじめてのCFD』p.104

はじめてのCFD―移流拡散方程式

はじめてのCFD―移流拡散方程式

【読書リンク】ラテン語読本

ラテン語の勉強で使えそうな読本を見つけました。本の後半にあります。
やはり読本はあればあるほどよいです。


前田越嶺著、『羅甸語初歩独修』
国立国会図書館デジタルコレクション - 羅甸語初歩独修

島田耕一編、『羅甸語処方文例 : 附・羅甸文法通解』
国立国会図書館デジタルコレクション - 羅甸語処方文例 : 附・羅甸文法通解