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を含むコード部分を削除していってください。