このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
fsolve
非線形方程式系を解く
構文
説明
は、点 x
= fsolve(fun
,x0
)x0
を開始点として、方程式 fun(x) =
"0" (ゼロの配列) の解を求めようとします。
メモ
追加パラメーターの受け渡し は必要に応じて他のパラメーターを関数 fun(x)
へ渡す方法を説明します。詳細は、パラメーター付き方程式の求解を参照してください。
は x
= fsolve(fun
,x0
,options
)options
で指定された最適化オプションを使用して方程式を解きます。optimoptions
を使用してこれらのオプションを設定してください。
例
入力引数
出力引数
制限
解かれる関数は連続でなければなりません。
うまく実行できた場合、
fsolve
は 1 つの根のみを出力します。既定の Trust-region-dogleg 法は方程式系が合致する、すなわち、方程式の数が未知数の数と等しい場合にのみ使用できます。レーベンバーグ・マルカート法では、方程式系が合致している必要はありません。
ヒント
大規模な問題、つまり数千を超える変数が含まれる問題の場合、
Algorithm
オプションを'trust-region'
、SubproblemAlgorithm
オプションを'cg'
に設定することにより、メモリを節約できます (場合によっては時間を短縮できます)。
アルゴリズム
レーベンバーグ・マルカート法および信頼領域法は、lsqnonlin
にも使用される非線形最小二乗アルゴリズムに基づいています。システムが 0 をもたない可能性がある場合、これらの方法の 1 つを使用してください。アルゴリズムは、残差が小さいところの点を戻します。しかし、システムのヤコビアンが特異な場合、アルゴリズムが方程式系の解ではない点に収束する可能性があります (制限 を参照)。
既定の設定では
fsolve
は Trust-region-dogleg 法アルゴリズムを選択します。アルゴリズムは [8] で説明される Powell dogleg method を変形したものです。これは [7] で実装したアルゴリズムと似た性質をもちます。詳細は、Trust-region-dogleg 法アルゴリズムを参照してください。この信頼領域法アルゴリズムは部分空間の信頼領域法であり、[1] と [2] で説明する interior-reflective ニュートン法に基づいています。各反復は、前処理付き共役勾配 (PCG) 法を使用する大型線形システムの近似解を伴います。詳細は、信頼領域法アルゴリズムを参照してください。
レーベンバーグ・マルカート法は [4]、[5]、[6] の参考文献で説明されています。詳細は、レーベンバーグ・マルカート法を参照してください。
代替機能
アプリ
[最適化] ライブ エディター タスクが fsolve
にビジュアル インターフェイスを提供します。
参照
[1] Coleman, T.F. and Y. Li, “An Interior, Trust Region Approach for Nonlinear Minimization Subject to Bounds,” SIAM Journal on Optimization, Vol. 6, pp. 418-445, 1996.
[2] Coleman, T.F. and Y. Li, “On the Convergence of Reflective Newton Methods for Large-Scale Nonlinear Minimization Subject to Bounds,” Mathematical Programming, Vol. 67, Number 2, pp. 189-224, 1994.
[3] Dennis, J. E. Jr., “Nonlinear Least-Squares,” State of the Art in Numerical Analysis, ed. D. Jacobs, Academic Press, pp. 269-312.
[4] Levenberg, K., “A Method for the Solution of Certain Problems in Least-Squares,” Quarterly Applied Mathematics 2, pp. 164-168, 1944.
[5] Marquardt, D., “An Algorithm for Least-squares Estimation of Nonlinear Parameters,” SIAM Journal Applied Mathematics, Vol. 11, pp. 431-441, 1963.
[6] Moré, J. J., “The Levenberg-Marquardt Algorithm: Implementation and Theory,” Numerical Analysis, ed. G. A. Watson, Lecture Notes in Mathematics 630, Springer Verlag, pp. 105-116, 1977.
[7] Moré, J. J., B. S. Garbow, and K. E. Hillstrom, User Guide for MINPACK 1, Argonne National Laboratory, Rept. ANL-80-74, 1980.
[8] Powell, M. J. D., “A Fortran Subroutine for Solving Systems of Nonlinear Algebraic Equations,” Numerical Methods for Nonlinear Algebraic Equations, P. Rabinowitz, ed., Ch.7, 1970.
拡張機能
バージョン履歴
R2006a より前に導入