Next: , Previous:   [Contents][Index]

66 minpack


66.1 Introduction to minpack

Minpackは Netlibから得られるFortranライブラリ MINPACKの (f2clを介した)Common Lisp翻訳です。


66.2 Functions and Variables for minpack

関数: minpack_lsquares
    minpack_lsquares (flist, varlist, guess)
    minpack_lsquares (..., 'tolerance = tolerance)
    minpack_lsquares (..., 'jacobian = jacobian)

リスト flistの関数の平方の和を最小化する 点を計算します。 変数はリスト varlistの中にあります。 最適点の初期推測はguessで供給されなければいけません

オプションのキーワード引数 tolerancejacobianは アルゴリズム上のある制御を提供します。 toleranceは平方の和に関する相対誤差を見積もられます。 jacobianはJacobianを指定するのにつかうことができます。 もし jacobianが与えられず、l (デフォルト)true なら、 flistから計算されます。 もし jacobianfalseなら数値近似が使われます。

minpack_lsquaresはリストを返します。 最初の項目は見積もられた解です; 二番目は平方の和で, 三番目はアルゴリズムの成功を示します。 可能な値は以下の通りです。

0

不適切な入力パラメータ。

1

アルゴリズムが平方の和の相対誤差がせいぜいtoleranceと見積もります。

2

アルゴリズムがxと解の相対誤差がせいぜい toleranceと見積もります。

3

info = 1と info = 2の条件が両方とも成立します。

4

fvec が機械精度のjacobianの列に直交的です。

5

iflag = 1が100*(n+1)に至るfcnへのコールの回数

6

tolが小さすぎます。平方の和の更なる減少は不可能です。

7

tolが小さすぎます。近似解xの更なる改善は不可能です。

/* Problem 6: Powell singular function */
(%i1) powell(x1,x2,x3,x4) := 
         [x1+10*x2, sqrt(5)*(x3-x4), (x2-2*x3)^2, 
              sqrt(10)*(x1-x4)^2]$
(%i2) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4], 
                       [3,-1,0,1]);
(%o2) [[1.652117596168394e-17, - 1.652117596168393e-18, 
        2.643388153869468e-18, 2.643388153869468e-18], 
       6.109327859207777e-34, 4] 
/* Same problem but use numerical approximation to Jacobian */
(%i3) minpack_lsquares(powell(x1,x2,x3,x4), [x1,x2,x3,x4], 
                       [3,-1,0,1], jacobian = false);
(%o3) [[5.060282149485331e-11, - 5.060282149491206e-12, 
        2.179447843547218e-11, 2.179447843547218e-11], 
       3.534491794847031e-21, 5]
関数: minpack_solve
    minpack_solve (flist, varlist, guess)
    minpack_solve (..., 'tolerance = tolerance)
    minpack_solve (..., 'jacobian = jacobian)

n個の未知数に関する n個の方程式系を解きます。 n個の方程式形がリスト flistで 与えられます。 解の初期推測はguessの中で提供されます。

オプションのキーワード引数、 tolerancejacobianは アルゴリズム上のある制御を提供します。 toleranceは、平方の和に関して宣言された見積もられた相対誤差です。 jacobianはJacobianを指定するのに使うことができます。 もしjacobianが与えらないか、true(デフォルト)なら、 Jacobianをflistから計算します。 もしjacobianfalseなら、数値近似が使われます。

minpack_solveはリストを返します。 最初の項は見積もられた解です; 最初のエスティマート解であることが解されます。 最初の解が、最初の項は未つられた解と一緒なranmpolが渡り気味。 リストを返します。 評価された解の最初の案件はリストを返します。

0

不適切な入力パラメータ。

1

アルゴリズムが解の相対誤差がせいぜいtoleranceと見積もります。

2

iflag = 1でfcnをコールした回数が100*(n+1)に達しました。

3

tolが小さ過ぎます。平方和の中で換算がこれ以上不可能です。

4

繰り返しがよい進捗を産んでいません。


Next: , Previous:   [Contents][Index]