fsolve
对非线性方程组求解
语法
说明
示例
输入参数
输出参量
局限性
要求解的函数必须为连续的。
成功求解后,
fsolve
只给出一个根。仅当方程组为方阵(即方程的数目等于未知数的数目)时,才使用默认的信赖域 dogleg 方法。如使用莱文贝格-马夸特方法,方程组不必为方阵。
提示
对于大型问题,即变量数以千计、甚至更多的问题,将
Algorithm
选项设置为'trust-region'
并将SubproblemAlgorithm
选项设置为'cg'
以节省内存(同时也可能节省时间)。
算法
莱文贝格-马夸特和信赖域方法基于非线性最小二乘算法,该算法在 lsqnonlin
中也有使用。如果方程组不能包含零,请使用这些方法之一。该算法仍返回残差很小的点。然而,如果方程组的雅可比矩阵是奇异的,则算法收敛到的点可能并非方程组的解(请参阅局限性)。
默认情况下,
fsolve
选择信赖域 dogleg 算法。该算法是 [8] 中所述的鲍威尔 dogleg 方法的变体。它在本质上类似于在 [7] 中实现的算法。请参阅信赖域 dogleg 算法。信赖域算法是一种子空间信赖域方法,基于 [1] 和 [2] 中所述的内部反射牛顿法。每次迭代都涉及使用预条件共轭梯度法 (PCG) 来近似求解大型线性系统。请参阅信赖域算法。
参考文献 [4]、[5] 和 [6] 中描述了莱文贝格-马夸特方法。请参阅莱文贝格-马夸特方法。
替代功能
App
优化实时编辑器任务为 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.