はじめMath! Javaでコンピュータ数学

第39回 行列の数学 ベクトルのスカラ倍と乗算

この記事を読むのに必要な時間:およそ 3 分

のこぎりを使い始めた小学生の頃は,2cm角の角材一本切るのにも苦労しました。押す,引くの感覚がよく分りませんから,闇雲にごしごしと動かして,すぐに疲れてしまいました。まるで魔法のようにあっという間に板や棒を切断する父親と,自分の違いに歯がゆく思ったものです。今では私も角材数本を縛ってまとめて4本切ったりします。経験が積み重なると,要領良い方法を自然と思いつくものです。また,要領よくしないと仕事として成り立ちません。

しかし,下手に効率を良くしようとすると,かえって結果は芳しくありません。専門家,プロと呼ばれる人々は,仕事をいかに要領よく,かつ抜かりなく行うことが出来るかを追求した人たちだと言えます。

現在学んでいる行列の数学は,単純計算を,いかに効率よく抜かりなく行うことが出来るかを追求したものです。更にそれをコンピュータに行わせることが出来れば大変な省力化につながります。今回もシンプルな内容です。

初めてのこぎりを手にした時のような初心に返って,取り組んでみてください。

図39.1 プロの仕事は要領よく抜かりなく

図39.1 プロの仕事は要領よく抜かりなく

ベクトルのスカラ倍

スカラ倍とは,定数倍のことです。具体的には,2倍や3倍にするということです。ベクトルに掛けられた定数値をベクトルの全ての成分に掛け合わせます。

ベクトルのスカラ倍の一般的な形を紹介します。ベクトルAのスカラ倍を式39.2であらわしています。

ベクトルのスカラ倍には,数値同士の乗算と同じように,交換法則や結合法則が成り立ちます。表39.1にベクトルのスカラ倍に関する法則一覧を掲載します。

表39.1 ベクトルのスカラ倍演算法則一覧

法則名演算の例
交換法則cA=Ac
結合法則c(dA)=cdA
分配法則(c+d)A=cA+dA
c(A+B)=cA+cB

ベクトルのスカラ倍の具体例

お年玉のポチ袋に10円玉を5枚,100円玉を3枚入れたとしましょう※1)。このポチ袋に入っている硬貨の枚数をベクトルで表すと,次のように書くことが出来ます。

今日は親戚の子供達が7人※2やってくるとします。するとポチ袋が7枚必要です。中身も同じでないと,けんかの種になってしまいます。さて,それぞれの硬貨を何枚用意しなければならないでしょうか。

それぞれの硬貨が何枚必要か,計算する式は,ベクトルを利用すると次のようにシンプルに書けます。

10円玉は35枚,100円玉は21枚必要だとわかりました。

ベクトルには,計算式を大変シンプルに記述できる利点があります。この考え方をプログラミングに利用すれば,集計・統計処理に大きな力を発揮しそうなことが予想できるでしょう。

※1)
え?少ないって?あ,いや,これはたとえ話ですから・
※2)
これは大変です。

ベクトルの乗算

ベクトル同士を掛け合わせることをベクトルの乗算といいます。乗算の結果はベクトルではなくスカラ値(定数値)になります。

以下にベクトルの乗算の一般的な形を紹介します。

ベクトルの乗算の具体例

ベクトルを掛け合わせるとスカラ値になる,というのは,具体的にどんな場合が例に挙げられるでしょうか。

それを考えるために,先ずベクトルの乗算がどのように行われるか見ておきましょう。ベクトルの乗算の前提条件は,次元が同じことです。次元が異なるベクトル同士の乗算は出来ません。

次のような具体例が考えられますよ。式39.8のベクトルAはあるスーパーで販売する商品の単価を表すとします。たとえば,しその葉1枚3円,たくあん1切れ5円といった具合です。式39.9のベクトルBは1パックに納めるしその葉とたくあんの数を表すとしましょう。今回のパックには,しその葉2枚,たくあんが4切れ入るということです。この商品ひとパックの値段は,式39.11のように,ベクトルの乗算を行うことで計算できます。

大変単純な計算ですが,品数が増えた場合はどうでしょうか?スーパーでは膨大な数の商品を取り扱いますよね。商品の売り上げのうちの,消費税分はいくらになるだろう,なんて計算は単純そうですが,数が多くなると大変です。そんなときこそ,コンピュータの出番です。データを入力し,計算方法を指示すれば,コンピュータは文句を言わず計算をしてくれます。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。

コメント

コメントの記入