基本的な使い方を説明します。本章では全体の概要を説明します。次章以降では分野ごとに例題を用いて使い方を説明します。5.2を使って実行可能ですので、実際にさわってみることをお勧めします。解説していく予定ですのでそちらもご覧ください。XLPackの構成XLPackは、ワークシート関数ライブラリ、ソルバーおよびVBAサブルーチン/関数ライブラリの3つで構成されています。これらは、プログラミングをせずに数値計算するためのツールとプログラミングをサポートするツールの2つに分けられます。プログラミングせずに数値計算ワークシート関数またはソルバーを使うとプログラミングを必要とせずに計算を行うことができます。ワークシート関数ライブラリワークシート関数はExcelワークシートに直接記述できる関数です。大きく分けると、値を1つ返すものと、ベクトルあるいは行列のようにひとまとまりの値を返すものの2種類があります。前者の主な例は特殊関数で、通常のExcel関数のように数式の一部として使います。他にはデータ入力の数値積分関数があります。FFTがこのような関数となります。これらをワークシートに入力するには、結果を出力するセル領域を選択し、数式バーのfxをクリックするか、「Shift」+「F3」のショートカットを押すと「関数の挿入」が表示されるのでこれを使って関数を選択します。パラメータを設定し終わったら、「OK」をクリックしたり、「Enter」を押したりはせずに、「Ctrl」+「Shift」+「Enter」を押します。XLPackソルバーExcelに標準添付されているソルバーのように、メニュー操作で指定されたセルを参照することにより計算をすすめるアドインです。数式とそれに必要なデータをワークシートに入力するだけで計算を行うことができます。VBA数値計算プログラミングをサポートVBAサブルーチン/関数ライブラリVBAサブルーチン/関数ライブラリはVBAプログラムから呼び出すことができるサブルーチン/関数群です。VBAによる数値計算プログラミングが必要なときにこれらを使うことにより、数値計算の専門的なプログラミングはライブラリに任せて、主に入出力部分だけを作ればいいようになっています。サンプルワークシートをひな形として活用すれば容易に使うことができます。マニュアルには簡単なものを除きほとんどのサブルーチン/関数の使用例が掲載されているので、これを参考にすることもできます。対象とする問題XLPackは一般的な数値計算のほぼすべての分野をカバーしています。偏微分方程式およびその関連分野(大規模疎行列が係数の連立一次方程式など)については開発中です。統計計算は今のところ対象外としています。対数積分、ガンマ関数、ベータ関数、ディガンマ関数、誤差関数などの特殊関数はワークシート関数およびVBA関数が提供されます。えば未知数が2つの場合(2元連立一次方程式)は次のようなものでした。x1とx2が未知数です。b2これを行列を使って表すと次のようになります。解ベクトルといいます。消えて次のようにxを求めることができます。A-1bExcelではMINVERSEという逆行列を求める関数があるので、これを使って逆行列を求め右辺ベクトルbに左から掛けてやることにより解ベクトルxを求めることができます。計算量が多いことと精度が悪くなりやすいことから、逆行列を求めないで直接計算した方がよいとされています。そのため、逆行列を求めないで計算するガウスの消去法にもとづいた解法が広く使われています。係数行列が一般行列の場合にはLU分解、対称行列の場合にはコレスキー分解が標準的な解法となっています。係数行列Aを次のように分解します。三角行列なので、代入操作だけで容易に解を計算することができます。対称行列のコレスキー分解の場合にも同様にして解を計算することができます。前者のサブルーチンはDgesv、後者はDposvです。ワークシート関数はそれぞれ、WDgesv、WDposvです。連立一次方程式を解く際には係数行列の条件数を求めておくと有益です。条件数は次のように定義されます。普通はその間の値となります。条件数は定義どおりに計算すると逆行列を求めなければならず計算量が多くなるため、通常は簡便に計算できる推定値が使わます。これを使って、求められた解xの相対誤差を次のようにして推定することができます。cond(A)・εここで、太字のxは真の解、εは計算機イプシロン(*)です。条件数が非常に大きい場合を悪条件であるといい、条件数が1015程度以上になるとほとんど有効桁がない可能性があることがわかります。WDgesvおよびWDposvでは条件数の推定値を返すようになっています。VBAプログラムの場合には、DlangeとDgeconおよびDlansyとDpoconを使って推定することができます。固有ベクトルといいます。Aがn×n行列の場合にはn個の固有値とそれぞれに対応する固有ベクトルを持ちます。多くの応用において現れるのは対称行列の固有値を求める問題であるため、ここでは対称行列について考えます。Aが対称行列ならば固有値は実数になります。固有値は次式を満たします。0これは特性方程式と呼ばれ、λに関するn次代数方程式になります。そこで、この代数方程式を解いてλを求めればよいように思われますが、数値計算ではもっと効率のよい方法が使われます。この変換は有限回の演算で完了します。次に、三重対角行列の固有値をQR法などの反復法により求めます。三重対角行列だとこの反復法の過程の計算効率がよく、最初から反復法を適用するよりも全体としても優ります。この計算法によるVBAサブルーチンDsyevあるいはワークシート関数WDsyevを使うことにより、対称行列のすべての固有値・固有ベクトルを求めることができます。近似式を求める問題では最小二乗近似がよく使われています。これは実験データへのモデル関数のあてはめと捉えることができます。場合は線形最小二乗法、そうでない場合は非線形最小二乗法で、それぞれ全く違う解法です。mが与えられているものとします。yi)に対して測定誤差(exiおよびeyi)を含んでいます。F(xi)を満たすものとします。f(x)により近似することにします。モデル関数といいます。xj-1すなわち、多項式近似です。cnxn-1多項式近似以外でも一次結合で表すことができれば線形最小二乗法で扱うことができます。(観測方程式といいます)。近似解を求めることにします。2乗が最小になる解を求める(*)方法が最小二乗法です。その場合、解cを最小二乗解といいます。y||2の微分が0になる解として求めることができて、次の方程式の解となります。なるので解くことができます。大きくなりやすく精度が悪くなることがあり、この解法はあまり使われていません。