線形代数は苦手ですか?

こんにちは。

某メーカーで物理シミュレーションやデータ解析をやっているエンジニアです。

仕事柄、計算手法に関する論文を読んで、その内容を実装して試すということをやるので、このブログでは、自分が「面白いな」と思ったものを紹介できたらなと思っています。

 

それと、もうひとつ。

サイエンス系のエンジニアという仕事をやっていると、当然、エンジニア間にある力量の差が目についてしまいます。(自分が優秀なエンジニアであるということを言う気はないですが)私の目から見て、優秀なエンジニアが共通して持っている資質の一つに、数学に対する理解の深さがあります。

新しい技術についていくことは、エンジニアに求められる重要な能力のひとつですが、これを行うには論文などの文献をすばやく読みこなせる能力が不可欠です。でも、教科書や論文を読んで素早く理解できる人と、できない人がいます。この差を生む要因の一つは、大学の初年度に学んだ数学(解析学線形代数)の理解の差にあるように思います。私の見るところ、微積分に対する理解の差から生まれるギャップよりも、線形代数に対する理解の差が生み出すギャップのほうが遥かに大きそうです。逆に言うと、線形代数を理解していれば大抵のことにキャッチアップできると、私のエンジニアとしての経験から、言えます。

ここで言う線形代数の理解とは、行列の計算ができる、ということではありません。理系の大学を卒業している多くの人は、行列ーベクトル積などの計算はできますし、行列の対角化計算もできます。一通りの計算はすべて出来るのです。でも、やっている計算の意味を理解している人は少ない、というのが私の印象です。

例えば、多くの人が、実対称行列  A の対角化は、 A固有ベクトルを並べて作った行列  U を用いて  U^T A U として計算できるという事実を知っていて、その計算もできます。しかし、なぜ、  U^T A U で対角化されるのかが腑に落ちてないというか、「言われたとおりに計算したら確かに対角行列になるよネ」、といった理解で留まっているいる人も多いと思うのです。

残念ですが、このような人と、  U^T A U の意味がすっかり分かっていて、「対角化されて当たり前」と思える人とには雲泥の差があります。「対角化されて当たり前」という理解に至っている人にとっては、自分の知らない分野であっても、その分野にキャッチアップしようとしている最中に現れる行列操作の意味するところが見えるので、理解が早いです。(線形変換は最も基本的かつ重要な変換であるため、ほとんど全てのサイエンスに現れます。というか、私は、現れないような分野を見たことがありません。)

 

このブログでは、そんな線形代数に関連することも書いていくつもりです。

誰かが面白がってくれますように!