lsqcurvefit
解决最小二乘意义上的非线性曲线拟合(数据拟合)问题
语法
描述
非线性最小二乘求解器
找到系数x解决了问题
给定输入数据xdata,和观测到的输出ydata,在那里xdata而且ydata矩阵还是向量F(x,xdata)是与的大小相同的矩阵值或向量值函数ydata.
的组件可选x有上界和下界吗磅,乌兰巴托.的参数x,磅,乌兰巴托可以是向量或矩阵;看到矩阵的参数.
的lsqcurvefit
函数使用相同的算法lsqnonlin
.lsqcurvefit
简单地为数据拟合问题提供了一个方便的接口。
与其计算平方和,lsqcurvefit
要求用户定义函数来计算向量价值函数
例子
输入参数
输出参数
限制
信赖域反射算法不能求解欠定系统;它要求方程的个数,即的行维数F,至少与变量的数量一样多。在欠定情况下,
lsqcurvefit
使用Levenberg-Marquardt算法。lsqcurvefit
可以直接解决复值问题。注意,绑定约束对于复杂值没有意义。对于有约束的复杂问题,将变量分成实部和虚部。看到复值数据的模型拟合.信赖域反射法的预条件共轭梯度部分采用预条件计算JTJ(J为雅可比矩阵),然后计算预条件。因此,一行J有很多非零,结果是一个接近密集的乘积JTJ,会导致大问题的解决过程成本高昂。
如果x没有上限(或下限),
lsqcurvefit
的相应成分乌兰巴托
(或磅
)被设置为正
(或负
对于下界),而不是任意但非常大的正数(或对于下界为负数)。
中可以使用信赖域反射算法lsqnonlin
,lsqcurvefit
,fsolve
在不计算雅可比矩阵的情况下解决中小规模的问题有趣的
或者提供雅可比稀疏模式。(这也适用于使用fmincon
或fminunc
无需计算黑森或提供黑森稀疏模式。)中小规模有多小?没有绝对的答案,因为这取决于计算机系统配置中的虚拟内存数量。
假设你的问题是米
方程和n
未知数。如果命令J =稀疏(ones(m,n))
导致一个内存不足
在您的机器上出现错误,那么这肯定是一个太大的问题。如果它没有导致错误,则问题可能仍然太大。您可以通过运行MATLAB并查看MATLAB是否在系统上可用的虚拟内存范围内运行来找到答案。
算法
Levenberg-Marquardt方法和信赖区域反射方法是基于非线性最小二乘算法fsolve
.
默认的信任区域反射算法是一种子空间信任区域方法,基于中描述的内反射牛顿方法[1]而且[2].每次迭代都涉及使用预处理共轭梯度(PCG)方法求解大型线性系统的近似解。看到信任区域反射最小二乘.
Levenberg-Marquardt方法在参考文献中有描述[4],[5],[6].看到Levenberg-Marquardt方法.
选择功能
应用程序
的优化活动编辑器任务提供了一个可视化界面lsqcurvefit
.
参考文献
[1]科尔曼,T.F.和李颖。有边界的非线性极小化的内部信赖域方法。SIAM优化期刊, Vol. 6, 1996, pp. 418-445。
[2]科尔曼,T.F.和李颖。大尺度非线性有界极小化问题的反射牛顿方法的收敛性数学规划,第67卷第2期,1994年,第189-224页。
[3] Dennis, J. E. Jr. <非线性最小二乘>。数值分析的最新进展, D.雅各布斯编,学术出版社,269-312页。
[4] Levenberg, K.“最小二乘中求解某些问题的方法”。应用数学季刊2, 1944,第164-168页。
[5] Marquardt, D.“非线性参数的最小二乘估计算法”。应用数学杂志,卷11,1963,第431-441页。
[6] Moré, J. J.“Levenberg-Marquardt算法:实现和理论。”数值分析华森主编,《数学讲稿》630,施普林格Verlag出版社,1977年,第105-116页。
[7] Moré, J. J., B. S. Garbow和K. E. Hillstrom。MINPACK用户指南.阿贡国家实验室,报告。退火- 80 - 74,1980。
M. J. D. <求解非线性代数方程组的Fortran子程序>非线性代数方程的数值方法, P. Rabinowitz主编,Ch.7, 1970。
扩展功能
版本历史
R2006a之前介绍