9.スケーリング/ピボッティング
12.連立方程式の解法(反復法)
固有値計算 | ||
---|---|---|
FuncEigQR(mat1, Optional outFlag, Optional slim, Optional Nres, Optional pivFlag, Optional plim, Optional rlim) | QR法(非対称) | |
FuncEigPow(mat1, Optional outFlag, Optional slim, Optional Nres, Optional rlim) | べき乗法 | |
FuncEigJacobi(mat1, Optional outFlag, Optional slim, Optional Nres, Optional rlim) | ヤコビ法 | |
CalcMatInvIter(matX, ByVal matA, ByVal vecEig, Optional method, Optional slim, Optional Nres, Optional rlim) |
逆反復法(Subプロシージャ) QR法の固有ベクトル算出で用いており、説明は割愛します。 |
戻り値 | 最大固有値とそれに応じた固有ベクトル。 |
---|---|
mat1 | 行列(二次配列)。 |
outFlag |
出力方法の設定(省略可)。 0=固有値のみ(デフォルト),1=固有値+固有ベクトル |
slim | 収束判定閾値(省略可)。 デフォルト値=1e-8。 |
Nres | 反復計算最大回数(省略可)。 デフォルト値=100。 |
rlim | 数値丸め閾値(省略可)。 デフォルト値=2e-12。 |
戻り値 | 最大固有値とそれに応じた固有ベクトル。 |
---|---|
mat1 | 行列(二次配列)。 |
outFlag |
出力方法の設定(省略可)。 0=固有値のみ(デフォルト),1=固有値+固有ベクトル |
slim | 収束判定閾値(省略可)。 デフォルト値=1e-8。 |
Nres | 反復計算最大回数(省略可)。 デフォルト値=100。 |
rlim | 数値丸め閾値(省略可)。 デフォルト値=2e-12。 |
Sub test() Dim tmp As Variant Dim mat1 As Variant ’セル値を配列に代入 mat1 = Range("B3:E6").Value ’べき乗法による固有値計算 tmp = FuncEigPow(mat1, 1) ’結果出力 Range(Cells(3, 7), Cells(3 + UBound(tmp, 1), 7 + UBound(tmp, 2))).Value = tmp End Sub
戻り値 | 最大固有値とそれに応じた固有ベクトル。 |
---|---|
mat1 | 行列(二次配列)。 |
outFlag |
出力方法の設定(省略可)。 0=固有値のみ(デフォルト),1=固有値+固有ベクトル |
slim | 収束判定閾値(省略可)。 デフォルト値=1e-8。 |
Nres | 反復計算最大回数(省略可)。 デフォルト値=100。 |
rlim | 数値丸め閾値(省略可)。 デフォルト値=2e-12。 |
Sub test() Dim tmp As Variant Dim mat1 As Variant ’セル値を配列に代入 mat1 = Range("B3:D5").Value ’QR法による固有値計算 tmp = FuncEigQR(mat1, 1, , 1000) ’結果出力 Range(Cells(3, 6), Cells(3 + UBound(tmp, 1), 6 + UBound(tmp, 2))).Value = tmp End Sub