我有一个函数有三个参数和一些我想要适合的数据 . 我怎样才能做到最佳?我甚至不确定等式中三个参数的范围 .
该函数具有自由参数 alpha
, beta
和 gamma
,由下式给出
y = (1 - alpha + alpha./sqrt(1 + 2*beta*(gamma*x).^2./alpha)).^(-1) - 1;
我有 x
和 y
数据点(每组大约50个点)的数组,我希望使用任何 alpha
, beta
和 gamma
找到最合适的数据点(定义为最小化最小化方程) .
在线解决方案推荐曲线拟合工具箱,我的机器上没有这个工具箱,无法安装 . 我只有准系统MATLAB 2015b版本 .
1 回答
您需要一个平滑的
R^n -> R
函数的优化算法 . 由于您只能访问准系统Matlab,因此最好从文件交换中获取算法 . 为了说明,我选择LMFnlsq,这应该足够了,因为你有一个小问题,虽然它似乎更一般,这里有点矫枉过正 .下载LMFnlsq并添加到您的Matlab路径 .
Example
为方便起见,创建一个名为
regr_fun
的函数:曲线拟合(与
regr_fun
在同一文件夹中):Note
虽然
matlab.codetools.requiredFilesAndProducts
也列出了符号工具箱,但是对于这个问题它不需要,并且该函数也应该在没有它的情况下运行 .