- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Matlab 中的 levenberg-Marquardt 最小二乘法将具有四个未知参数的巨大函数拟合到我的数据中。我使用了这个命令:
[x, resnorm]=lsqcurvefit(@myfun1,[-100:100], xdata, ydata, ...
[-inf, -inf, -1.5, -inf], [inf, inf, 1.5, inf], options)
这意味着我有兴趣限制第三个参数。但是我遇到了这个问题:
??? Error using ==> lsqncommon at 102
Levenberg-Marquardt and Gauss-Newton algorithms do not handle bound constraints and trust-region-reflective algorithm
requires at least as many equations as variables; aborting.
Error in ==> lsqcurvefit at 258
[xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
我认为这个错误表明我的数据很小,因为它们是 36 个点,或者可能有太多未知参数,但我认为四个未知参数用于拟合就可以了!
那么,你怎么看?这是否意味着 MATLAB 无法将我的函数拟合到这 36 个点的数据?
如有任何意见,我将不胜感激。
最佳答案
根据这个http://www.mathworks.co.uk/help/toolbox/optim/ug/lsqcurvefit.html第二个参数是您希望优化的参数的起始值。你正在传递
[-100:100]
(除非自从我上次使用它以来 matlab 发生了很大变化)它是一个包含 201 个参数的向量,因此您似乎要求 matlab 优化超过 201 个参数。正如@Dan 在下面的评论中指出的那样,您只有 36 个数据点,因此您的要求是不合理的。您只想优化 4 个参数,因此您应该只输入 4 个起始值。您正在为限制选项传递长度为 4 的向量,因此此处存在不一致。
我建议只为您的参数输入一个包含 4 个起始值的向量作为第二个参数,看看它是否会产生您期望的结果。
关于matlab - 具有多个参数的 levenberg marquardt 曲线拟合 MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12070044/
我正在使用 Levenberg-Marquardt algorithm最小化 6 个参数的非线性函数。每次最小化我有大约 50 个数据点,但我没有得到足够准确的结果。我的参数彼此相差几个数量级这一事实
我有一些代码可以使理论预测与实验数据相吻合,我想运行 LMA(Levenberg-Marquardt 算法)以使理论与实验相吻合。然而,计算是非常重要的,每个模型在单个处理器上需要大约 10-30 分
我是一名程序员,想了解 Levenberg–Marquardt 曲线拟合算法的工作原理,以便自己实现。是否有任何好的教程可以详细解释它是如何与作为程序员而不是数学家的读者一起工作的。 我的目标是在 o
问题:我最近的任务是设计一个非线性求解器,但我的求解器没有收敛到正确的解。 **预期**:“最小化(x)”方法应该将我的参数 vector x 减少到最小值。 观察到:在我调用“最小化(x)”之后,我
我尝试基于 Numerical Optimization using the Levenberg-Marquardt Algorithm 在 Julia 上实现用于求解非线性方程的 levenberg
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我通常使用 MATLAB 编写代码,但出于某些原因我决定改用 JAVA 方法。 问题很简单:我想了解如何将以下 MATLAB 代码转换为有效的 JAVA 代码。 在 MATLAB 中,我有一个名为 f
我能够使用 peak-o-mat 将曲线拟合到 x/y 数据集, 如下所示。那是线性背景和 10 条洛伦兹曲线。 因为我需要拟合许多相似的曲线,所以我使用 mpfit.py 编写了一个脚本化的拟合例程
我正在将 Matlab 中使用 Levenberg-Marquardt 训练算法的神经网络代码移植到 Python。我正在使用 Neurolab,我相信 Levenberg-Marquardt 训练算
我正在尝试使用 Matlab 中的 levenberg-Marquardt 最小二乘法将具有四个未知参数的巨大函数拟合到我的数据中。我使用了这个命令: [x, resnorm]=lsqcurvefit
我有一个关于如何在 Python 中使用 Levenberg-Marquardt 优化方法的问题。 SCIPY库里有很多optimization methods . 我尝试了两种方法(Nelder-M
我正在尝试将 Levenberg-Marquardt 算法实现为 Keras 优化器,如所述 here但我有几个问题,最大的一个是这个错误 TypeError: Tensor objects are
我正在尝试用 Java 编写 levenberg marquardt,这是我的代码: while (iter <= 10 || mse < 0.0001) { call.cal
我成功地使用了 Eigen 的 Levenberg-Marquart 类,示例来自:http://techblog.rga.com/determining-indoor-position-using-
我正在尝试最小化以下示例函数: F(x) = f[0]^2(x[0],...,x[n-1]) + ... + f[m-1]^2(x[0],...,x[n-1]) 最小化这种函数的一般方法是 Leven
在相机校准中,我使用 calibrateCamera() 从校准图案的多个 View 中查找相机参数。它恰恰做了两件事: 1) 假设镜头畸变为零,估计封闭形式的初始相机参数。 2) 运行全局 Leve
我正在尝试根据 Manolis Lourakis ( Available here) ) 用 C 语言编写的 Levenberg-Marquardt 算法构建 mex 文件。我已经做了很多搜索,但还没
我在最小化 python 中的复杂非线性函数时遇到了麻烦。该函数实际上是用于拟合实验数据的拟合模型的卡方。为了获得全局最小值,我使用 scipy 中的 basshopping 函数。该函数是 mini
我正在使用 Matlab 中的 lsqcurvefit 函数对一些实验数据进行建模。数据采用特定形状,因此算法只是调整该形状的系数以改变其振幅等。 该模型运行良好并且拟合良好(我计算了卡方)。 Lev
我是一名优秀的程序员,十分优秀!