@menu
* Introduction to minpack::
* Functions and Variables for minpack::
@end menu

@node Introduction to minpack, Functions and Variables for minpack, , 
@section Introduction to minpack

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

@opencatbox
@category{Numerical methods}
@category{Share packages}
@category{Package minpack}
@category{Package minpack}
@closecatbox

@node Functions and Variables for minpack, , Introduction to minpack,
@section Functions and Variables for minpack

@deffn {関数} minpack_lsquares @
@fname{minpack_lsquares} (@var{flist}, @var{varlist}, @var{guess}) @
@fname{minpack_lsquares} (..., 'tolerance = @var{tolerance}) @
@fname{minpack_lsquares} (..., 'jacobian = @var{jacobian})

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

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

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

@table @code
@item 0
不適切な入力パラメータ。
@item 1
アルゴリズムが平方の和の相対誤差がせいぜい@code{tolerance}と見積もります。
@item 2
アルゴリズムがxと解の相対誤差がせいぜい @code{tolerance}と見積もります。
@item 3
info = 1と info = 2の条件が両方とも成立します。
@item 4
fvec が機械精度のjacobianの列に直交的です。
@item 5
iflag = 1が100*(n+1)に至るfcnへのコールの回数
@item 6
tolが小さすぎます。平方の和の更なる減少は不可能です。
@item 7
tolが小さすぎます。近似解xの更なる改善は不可能です。
@end table

@example
/* 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] 
@end example

@example
/* 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]
@end example

@end deffn

@deffn {関数} minpack_solve @
@fname{minpack_solve} (@var{flist}, @var{varlist}, @var{guess}) @
@fname{minpack_solve} (..., 'tolerance = @var{tolerance}) @
@fname{minpack_solve} (..., 'jacobian = @var{jacobian})

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

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

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

@table @code
@item 0
不適切な入力パラメータ。
@item 1
アルゴリズムが解の相対誤差がせいぜい@code{tolerance}と見積もります。
@item 2
iflag = 1でfcnをコールした回数が100*(n+1)に達しました。
@item 3
tolが小さ過ぎます。平方和の中で換算がこれ以上不可能です。
@item 4
繰り返しがよい進捗を産んでいません。
@end table

@example
@end example

@end deffn

@c Local Variables: 
@c mode: texinfo
@c TeX-master: "include-maxima"
@c End: 
