数値関数

初等関数

ArcCos, ArcCosh, ArcSin, ArcSinh, ArcTan, ArcTanh, Cos, Cosh, Exp, Log, Sin, Sinh, Sqrt, Tan, Tanh, XSin, XSinh

Log

ArcTan

特殊関数

現在までに備えられている特殊関数は以下の通りです。ご覧の通りあまり豊富ではありませんが、実際の要求に応じて整備します。これらは原則として複素数にも適用可能ですが、実数のみに限定されるものもあります。もし、複素数引き数が必要な場合は要求され次第対処します。以下で引き数が u, v, w, z, a math image で表わされているのものは複素数を受け付けます。また、これらの関数はリストに対してはその要素に並列に作用します。

BesselI

BesselJ

BesselJZero

BesselK

BesselY

Gamma

Factorial

LegendreP

LogGamma

LogGamma1

GammaRegularizedQ

GammaRegularized

GammaRegularizedP

a math image

Erf

Erfc

数値関数

SAD には以下の数値関数が備わっていいます。

複素数演算

Complex

ComplexQ

フーリエ変換

Fourier

InverseFourier

行列演算

以下でべクトルは1階の、行列は2階のリストで表現されます。この場合行列は行べクトルのリストであるとみなします。SAD には以下の行列演算の関数が備わっています。

Eigensystem

Det

Dot, .

IdentityMatrix

Inner

LinearSolve

Outer

SingularValues

Transpose

疑似乱数

2008/02/24以降の実装は以下の通り。

Random

GaussRandom

PRNG (Psuedo-Random Number Generator)

ListRandom[]

ParabolaRandom[]

SeedRandom

UniformRandom[]

UniformRandom0[]

UniformRandom1[]

UniformRandom01[]

方程式の近似解

FindRoot

FindRootオプション

オプションデフォルト値効果
AccuracyGoal数値a math image2乗残差の両辺の2乗の最大値に対する相対精度
MaxIterations数値50探査中に方程式を評価する最大回数

非線形回帰

Fit

Fitの結果を表すシンボル。ここでn,mはそれぞれデータ点、パラメータの数を表わします。

シンボル意味
パラメータ1, ...実数値各パラメータの最適値
ChiSquare実数値a math image
GoodnessOfFit実数値a math image
ConfidenceInterval要素数 m のリストパラメータ1, ... の推定域
Covariancatrixma math imagem 行列共分散行列

PolynomialFit

Spline

NIntegrate

Options
  • 以下のオプションを取る事が出来る。
  • AccuracyGoalはRelative accuracyでdefault値は AccuracyGoal->1e-13
  • InitialPoints は積分する際に積分区間の分割数の初期値。default値は20個。
  • Spline->True or False

関数の最小化

DownhillSimplex[]

Options
  • VariableRange->{min1,min2,...,minn},{max1,max2,...,maxn}}. defaultはマイナス無限大からプラス無限大まで。
  • MaxIteration->nで最大のイタレーション回数を指定する。defaultはMax[100, 10*(n+1))].
  • Output->fn 途中結果を出力するファイルナンバーを指定する。defaultは6です。
  • Tolerance->tol local minimumかどうか判断するtolerance値を指定する。もし、(fmax-fmin)/(abs(fmax)+abs(fmin))がtol値より小さくなれば、iterationループを終える。 defaultは1E-6である。
  • 初期値は上昇順にソートしたものを与える必要がある。

Example

FFS;

d0={{-11.5, {-14,-35,-17.5,-20},
    {-18.0, {-14,-20,-17.5,-40},
    {-18.5, {-14,-40,-15.0,-40},
    {-22.8, {-15,-20,-15.0,-20},
    {-22.4, {-15,-40,-15.0,-40}};

initial=Sort[d0];    ! 初期値はSortしておく

f=[{r1_,r2_,r3_,r4_}]:=(Print["r=",{r1,r2,r3,r4}];Read[5,Real]);
                        ! 関数値を端末入力待ちになる。
                      ! この代わりにsimulation結果を入れてやれば良い。

result=DownhillSimplex[initial,f,MaxIteration->5];
end;

<実行例>-----------------------------------------------------------------
r={-15,-25,-13.75,-10}  ! この変数に対応する関すうちが要求されている。
-20                     ! 端末から値を入力
{ -22.80000, -22.40000, -20.00000, -18.50000, -18.00000}       ! 1回目の更新
r={-15.5,-42.5,-11.875,-35}
-17                     ! 端末から値を入力
r={-14.375,-25.625,-16.09375,-23.75}
-23                     ! 端末から値を入力
{ -23.00000, -22.80000, -22.40000, -20.00000, -18.50000}       ! 2回目の更新
r={-15.6875,-15.3125,-14.921875,-6.875}
-25                     ! 端末から値を入力
r={-16.53125,-2.96875,-14.8828125,9.6875}
-30                     ! 端末から値を入力
{ -30.00000, -23.00000, -22.80000, -22.40000, -20.00000}       ! 3回目の更新
r={-15.453125,-19.296875,-16.73828125,-27.03125}
-19                     ! 端末から値を入力
r={-15.11328125,-23.57421875,-14.4970703125,-14.2578125}
-29                     ! 端末から値を入力
{ -30.00000, -29.00000, -23.00000, -22.80000, -22.40000}       ! 4回目の更新
r={-15.509765625,3.916015625,-15.23681640625,15.83984375}
-31                     ! 端末から値を入力
r={-15.7646484375,25.8740234375,-15.355224609375,43.759765625} ! 5回目の更新
                                              !MaxIterations->5なのでこれで終了
end;

In[2]:= result
Out[2]:= {{-31,{-15.509765625,3.916015625,-15.23681640625,15.83984375}},
 {-30,{-16.53125,-2.96875,-14.8828125,9.6875}},
 {-29,{-15.11328125,-23.57421875,-14.4970703125,-14.2578125}},
 {-23,{-14.375,-25.625,-16.09375,-23.75}},{-22.8,{-15,-20,-15,-20}}}
In[3]:=

Example2

f:=Apply[Function[{x,y},((x^2+y^2)-1)*(x^2+y^2)-(x-.5)/3.],#]&; ! 関数を定義する
v={{1.,1.},{0.,-1.},{0.,1.}}; ! 初期値
limit={{-0.5,-1.5},{0.65,1.5}}; ! 探索範囲を指定
p=Sort[Map[{f[#],#}&,v]]; ! 初期値をソートする
 
DownhillSimplex[p,f,MaxIteration->100,
    Tolerance->1e-4,VariableRange->limit]; !極小値を探索する

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-10-16 (金) 13:04:39