見出し画像

科学における抽象化

抽象化と抽象的の違い

科学、特に数学における抽象化がよく分からないと言う方がいます。

抽象化とよく似た言葉に、抽象的という言葉があります。

この抽象的という言葉は二つの意味があります。

恐らく、よくわからないと言うのは、下記の(2)の意味を引きずっておられるのかと思います。

(1)複数の事象から共通なものを抜き出して、それを一般化すること。

(2)物事や態度がはっきりとしない、あやふやであること。具体性に欠けること。

抽象的という言葉は、一般的な会話で特に否定的な意味で使われる場合、(2)の意味です。

ところが、数学で言う抽象化は、(1)の行為や思考を指す意味でしかなく、(2)の意味ではありません。 また、抽象化の過程では、ある特定の要素を抜き出してそれを切り捨てる(捨象)ことが行われます。 抽象化が苦手な方は、この捨象がうまくできない人が多いようです。 余計なものは考えないのですよ。

共通のものを抜き出すと言うところは、帰納によく似ていますが、抽象化では切り捨てが必須です。

つまり、抽象的の(2)の意味の類義語として、あやふや、曖昧、漠然がありますが、数学の(1)での意味ではこの点、真逆で、多くのものの共通点ですから、より、単純・明確になります。

言語における抽象化

言語というのは、人々の間で意思疎通(コミュニケーション)をするための手段です。 未来の自分に対するものもあります。

意思疎通をするためには共通認識が不可欠です。 しかし、共通認識と言っても個人個人の能力や経験により異なり、言語となると所属する集団や地域によって変わってきます。

学問においては、とりわけ、最初に呈示した、純粋論理を扱う言語である数学においては抽象化が重要になります。 抽象化には具体的なものから共通認識を引き出すため、捨象(しゃしょう: 余計な属性を捨て去ること)が必要になります。

数学における抽象化(捨象)

早い人なら、虚数ではなく、自然数の足し算でも捨象に失敗し躓く人もいます。

「りんご1個とみかん1個があります。 合わせていくつありますか?」

1+1=2 と言う算数の回答に対して、「りんご」と「みかん」は違うとか、「りんご」とか「みかん」ではなく、泥団子であれば、一つが引っ付いたり、別れたりすることがあるので、そうはならないとか、そもそも「=」 の意味がわからん、と言うのは、具体的なものにとらわれすぎて、捨象に失敗している例です。

かの有名な発明王 エジソンもここで足踏みしました。 しかし、ここは、十分時間をとってよく考え、乗り越えるイメージを作る努力するしかありません。

数学はさらに、整数、分数、有理数、実数、虚数(複素数)、四元数(しげんすう)、八元数、または 加減乗除、演算子、ベクトル、線形代数の公理、群論、圏論と先に進むと、より高度な捨象が必要になってきます。

物理・数学を志す者でも、多くの人がこれらの関門で捨象が手間取り躓きます。

時間はかかるでしょうが、乗り越えれば新しい世界が開けます。 ただし、示したように次から次へと関門はあります。

虚数に限らず、先に掲げた、四元数、ベクトル、行列、群論などは、自然界における複雑に見える現象・複雑な論理を、シンプルで矛盾のない隠れた共通の論理の仕組みとして考え出された人類の知恵です。 これらの理論を理解する上で、抽象化(捨象)は非常に重要な過程です。

「虚数」の例

「虚数が何の役に立つのか」と質問されたとき、理系の人でなければ答えられない方か多いでしょう。

「虚数」と言うネーミングから、口が付いただけで「嘘」の数という連想が湧くことから、仕事や趣味?で、日常生活で虚数を扱わない人にとっては、有用性という実感が湧かないのだと思います。 ※以下、本段では(純)虚数$${bi}$$に実数$${a}$$が加わった複素数$${a+bi}$$のことをまとめて特に断らない限り、「虚数」と記しています。

高校数学で虚数(複素数)を習うのですが、負数の平方根の定義から始まり、二次方程式の解の拡張(虚根の導入)として用いられます。 その後理系の教育課程などでは、ガウス平面(複素平面)などが導入され、三角関数を交えて幾何学に応用されます。 $${z = r(cosθ+isinθ) }$$と言う表現がそれを典型的に表しています。 その後、理系の大学や専門学校では、電気・電子・制御理論から量子力学まで複素関数論は基礎として使われます。

日常生活における「虚数」

「虚数」は、多くの自然科学の分野で利用され、身近な例としては、我々が生活で使う一般家電製品の電源や回路の設計に使う交流理論がありますがそこには「虚数」が当たり前のように頻繁に現れてきます。 「電気製品における定格でVA(ボルトアンペア)とW(ワット)の違いが何故出てくるのか?」などの本質的な理解には複素数が便利です。 電気代や購入する電気機器の特性、住宅の電気系設備の規模に直接関わってきます。

アマチュア無線を趣味にして、日頃、電波(電磁波)を扱っている私にとっては、送信機とアンテナとのインピーダンスのマッチングが非常に重要です。 インピーダンスは複素数で、周波数によって異なります。 インピーダンスが不整合ですと、送信出力がアンテナに伝わらず跳ね返されます。 その結果、電波が飛ばないどころか、電波エネルギーが周囲に撒き散らされ電波障害の原因になったり、最悪、高価な無線機が焼損します。

プログラミングにおける抽象化

C++など、継承があるプログラミング言語では、クラスの抽象化を含めて実装されたコードが実行可能なものとして動作しますので、抽象化とは何かということが、実感しやすいです。 ただし、抽象クラスのインスタンスは作ることができませんが、それを継承したクラスのインスタンスを作ることができます。

例えば、猫とと言う抽象クラスを作り、そこから三毛猫、ロシアンブルーの継承クラスを作ります。 さらに、それぞれ、三毛猫のタマ、ミーコのインスタンス、ロシアンブルーのメイのインスタンスを作ります。

猫全体としてループ処理したい時は、ループ変数(これをイテレータと呼ぶ)として猫をえらべば、簡単にすべての猫に対してループさせることができます。

この記事が気に入ったらサポートをしてみませんか?