数値計算パッケージ
NumericalCalculus`コンテキストで定義されている関数は,微積分関係の問題の数値解を見付けるサポートを提供する.
極限の数値計算
組込み関数Limitは記号的・解析的方法を使って極限を計算する.NumericalCalculusパッケージに含まれている関数NLimitは,引数が指定した点に近付くときの関数値の短い列を数値的に評価することで作用する.この計算の結果は,極限の近似を求めるためにウィン(Wynn)のイプシロン(ϵ)法か,一般化されたオイラー(Euler)変換を用いるルーチンに渡される.
NLimit[expr,x->x0] | x が x0に近付く際の極限を数値的に求める |
オプション名
|
デフォルト値
| |
WorkingPrecision | MachinePrecision | 使用する精度桁数 |
Scale | 1 | 最初の刻み幅 |
Terms | 7 | 列で生成された項の総数 |
Method | EulerSum | 評価法.EulerSumかSequenceLimit |
WynnDegree | 1 | ウィンのメソッドで用いる度数 |
NLimitのオプション
級数の収束を速めるための特別な技法は数多くある.収束が速いということは,数値評価において所望の確度の結果を得るための項数が少なくてもよいことを意味する.EulerSumで使われているオイラー変換はこのような技法のひとつである.
EulerSumは交代級数と項が という形を持つ級数(ここで は の多項式である)に特に有効である.これは組込み関数のNSumの有効な補助手段であり,一般的なアルゴリズムで効果的になるように設計されている.
オプション名
|
デフォルト値
| |
WorkingPrecision | MachinePrecision | 使用する精度桁数 |
Terms | 5 | 外挿前に生成される項の総数 |
ExtraTerms | 7 | 外挿プロセスで用いる項数.最低でも2 |
EulerRatio | Automatic | 変換に用いる固定比率 |
EulerSumのオプション
関数の導関数を解析的に計算するのが困難だったり不可能っだったりすることがある.そのような場合には,組込み関数Dの代りに関数NDを使って導関数を計算するとよい.
オプション名
|
デフォルト値
| |
WorkingPrecision | MachinePrecision | 使用する精度桁数 |
Scale | 1 | 評価に使用する刻み幅 |
Terms | 7 | 列で生成される項の総数 |
Method | EulerSum | EulerSum(商差の数値的限界)かNIntegrate(コーシーの積分公式)のどちらかの評価法 |
NDのオプション
EulerSum,NLimit,NDに使用されるアルゴリズムは,不可解な例題が多ければ誤った答えを与えることがあるので注意が必要である.ほとんどの場合,オプション設定の変更に対する敏感さで答をテストすることができる.
留数の数値解析
Wolfram言語の関数Residueは,複素平面上の点における式の留数を記号的に求める.本来記号的なものなので,結果が得られないこともある.
NResidueはResidueの数値バージョンである.この関数は留数を求める点を中心とした小さな円の周りを数値的に積分する.このアプローチの明らかな欠点は,これが実際には円の中に含まれるすべての点の留数の和を求めてしまう点である.円の半径を十分に小さく取ることで,問題としているもの以外のすべての特異点を除くことができる.
NResidue[expr,{x,x0}] | 点 x=x0において expr の留数を数値的に求める |
Radius | 積分する円の半径を指定する |
PrecisionGoal | NIntegrateで用いるPrecisionGoal |
WorkingPrecision | NIntegrateで用いるWorkingPrecision |
NResidueのオプション
級数展開の数値解析
Wolfram言語の関数Seriesは,導関数を評価することで任意の点における関数のベキ級数展開を求める.しかし,級数の数値近似のみが必要で,導関数を評価するのは難しい場合がある.NDを用いて導関数を評価することもできるが,これは各導関数で繰返しが多い作業である(すなわち,関数自体を複数の点で評価しなければならない).関数が解析的であり複素平面上で評価することが可能であれば,NSeriesを使用することで問題は解決する.
NSeries[f,{x,x0,n}] | x=x0付近において項(x-x0)-n から(x-x0)n までを含む f の級数展開を数値的に近似する |
NSeriesはまず,展開点を中心とする円上の離散点で関数を評価する.次にInverseFourierを用いて,その各々を円の周囲で積分するには取るにたらない直交基底関数の和として表す.コーシーの積分公式により,InverseFourierは基本的に必要とされてる級数係数を与えると思われる.NSeriesがすべてをやってくれるので追加的な操作は殆ど必要ない.これはコーシーの積分公式に基づいているので,サンプル点の円内で関数の特異点が発生しないように注意する必要がある.
オプション名
|
デフォルト値
| |
WorkingPrecision | MachinePrecision | 計算で使う算術の精度 |
Radius | 1 | 関数のサンプルを取る円の半径 |
NSeriesのオプション