1.行列計算ライブラリの使い方

Excelにも行列計算用の関数が準備されています(詳細はExcel/関数/行列ページを参照ください)。しかし、Excel関数では扱える行列成分の数に制限があったり、より高度な数値計算には対応しきれなかったりと、不自由さがあります。 そこで、幅広い数値計算に対応できるよう、Excel用の行列計算ライブラリ “calcmatrix_rev*.xlsm”(暫定版)を作成しました。 例えば、最小二乗法や主成分分析といった統計計算や、有限要素法(構造解析)、有限体積法(流体解析)などで用いる連立方程式の計算などにも対応可能です。
無料公開ですのでご自由にお使いください。なお、本ライブラリの動作保証はしませんが、中身の書き換え等は自由に行っていただいて構いません。

Excel用の行列計算ライブラリ“calcmatrix_rev*.xlsm”(暫定版)は、主に次のような使い方が可能です。

1.1.Excelファイルをそのまま使用

Excelファイル“calcmatrix_rev*.xlsm”を開くと、次の画面が表示されます。

C列に記述されている項目を計算できます。
また、D~F列には以下の設定を入力します。
選択 計算したい項目に“1”を入力すると、その計算を実行します。
pivFlag 前処理を実施したい場合、指定します(設定省略可)。 LU分解とQR分解では設定が異なります。
LU分解時:0=部分行ピボット、1=行ピボット、2=スケーリング+行ピボット、3=完全ピボット、4=スケーリング+完全ピボット
QR分解時:0=部分列ピボット、1=列ピボット、2=スケーリング+列ピボット
plim ピボット処理判定閾値を指定します(設定省略可)。 省略時、plim=2e-12。


行列サンプルを“sample_matrix”シートに掲載していますのでご活用ください。
以下に計算例を挙げます。

(1)LU分解ガウス消去法

行列を下三角行列L、上三角行列Uに分解します。

計算結果は次のように表示されます。


(2)連立方程式QR法ハウスホルダー

ハウスホルダー変換を用いたQR分解を用いて連立一次方程式を解きます。


計算結果は次のように表示されます。


(3)固有値QR法

QR法を用いて、固有値と固有ベクトルを計算します。


計算結果は次のように表示されます。

1.2.マクロをコピーして使用

開発されているツールなどに行列計算ライブラリの関数を使いたい場合、次の方法でライブラリを取り込みます。 なお、本ツールのプロシージャは複雑に参照し合っていますので、使用する場合はすべてのモジュールをコピーすることをお勧めします。

(1)Visual Basic Editorを開いてモジュールをコピー


モジュール構成、モジュール名は自由に設定してかまいません。

(2)各モジュールをエクスポートし、開発されているツールにインポート



次に、出力したモジュール(.basファイル)を開発されているツールなどにインポートします。

インポート後、モジュール名は変更してかまいません。

※利用にあたっての注意点

本ツールには、グローバル変数が定義されています。

これらの宣言は必ず取り込むようにしてください。
不要な場合は、次のようにします。 pivlim、roundlim、reslim、itaMaxについては、置換コマンドを使って数値に置き換えてください。

円周率piの文字列は、他の変数などに含まれている可能性があるため(例えばpivlimのpi)注意して置換してください。
また、errFlagはエラー処理用のフラグとして使用しています。 不要な場合は、面倒ですが検索を掛けながら、errFlagを含むコード部分を削除していってください。

参考文献