问题标签 [levenberg-marquardt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6983 浏览

matlab - 在 lsqcurvefit 中使用选项

我想在lsqcurvefit命令中使用 Levenberg Marquardt 算法。我做了以下事情:

我收到以下错误:

??? Error using ==> optim\private\lsqncommon
LSQCURVEFIT only accepts inputs of data type double.

Error in ==> lsqcurvefit at 149
[x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...

我该如何克服这个错误?

0 投票
3 回答
6721 浏览

matlab - levenberg marquardt 曲线拟合 MATLAB

在此处输入图像描述我不知道如何在 MATLAB 中选择lbandub以及如何将我的函数与数据相匹配,我的意思是我有一些输出,但它们不正确,lsqcurvefitx0

这是我的数据:

然后我将 myfunc 放在一个单独的 m 文件中:

我有x(1)x(2),我想在拟合我的数据后估计未知,并且我知道 kx(2)不会是负值。

所以我这样设置lsqcurvefit

这是结果:

x = 1.5000 -0.4945
resnorm = 52.1739

它显示了一个负值x(2)

请你帮助我好吗?

非常感谢您回答我的问题,现在在命令计算了 x 和 resnorm 之后,我在函数中使用了结果,这意味着我使用了 x(1)=92.8054 x(2)=0.7427

所以;

F=92.8054*(1-(0.7427)^2)./((1-0.7427)^2+2*(0.7427)*cosd(xdata)).^1.5;

现在我有向量 F ,当我绘制我的数据和结果时, plot(xdata, ydata, 'o', xdata, F, '*')

我不明白为什么 y 轴的范围如此不同!也许我需要将 x(3) 添加到我的函数中。

我附上了图。在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
6835 浏览

matlab - 具有多个参数的 levenberg marquardt 曲线拟合 MATLAB

我正在尝试使用 Matlab 中的 levenberg-Marquardt 最小二乘法将具有四个未知参数的巨大函数拟合到我的数据中。我使用了这个命令:

这意味着我有兴趣限制第三个参数。但我面临这个问题:

我认为这个错误表明我的数据很小,因为它们是 36 个点,或者可能有太多未知参数,但我认为四个未知参数拟合就可以了!

那么,你怎么看?这是否意味着 MATLAB 无法将我的函数拟合到这 36 点数据?

我会很感激任何评论。

0 投票
0 回答
447 浏览

curve-fitting - 非线性拟合

我有一些实验数据,我想使用最小二乘法(Levenberg-Marquardt)拟合它们以获得我的参数。

我正在使用两个非线性方程,并且正在使用一些计算程序(Origin 和 Matlab)。

第一个是:

带参数的非线性方程 (Alfa1,Alfa2,Alfa3,Alfa4,Alfa5)

第二个拟合方程是:

有理函数,即分子上的二次函数和分母上的第四多项式函数

我想使用这两个方程来拟合,但我不知道该怎么做。如果有人想要实验数据,我可以在这里发布。

非常感谢,

爱德华多

0 投票
2 回答
387 浏览

c++ - 寻找相机之间的外在因素

我处于需要根据图像对应关系找到两个/或多个摄像头之间的相对摄像头姿势的情况(因此摄像头不在同一点)。为了解决这个问题,我尝试了与这里描述的相同的方法(下面的代码)。

但在我的大多数情况下,我得到的结果非常奇怪。所以我的下一个想法是使用一个成熟的捆绑调节器(它应该做我正在寻找的东西?!)。目前我唯一的大依赖是 OpenCV,他们只有一个未记录的捆绑调整实现。

所以问题是:

  • 是否有没有依赖关系并使用允许商业使用的许可证的捆绑调节器?
  • 还有其他简单的方法可以找到外在因素吗?
  • 与相机距离非常不同的物体是否有问题?(大视差)

提前致谢

0 投票
1 回答
5701 浏览

opencv - OpenCV CvLevMarq( ) 类

我是 OpenCV 的新手,我必须执行一些相机校准功能。谁能告诉我CvLevMarq()OpenCV中类的用途是什么以及如何使用它?

0 投票
2 回答
1468 浏览

matlab - 在 lsqcurvefit 中使用选项

我将选项设置为

然后lsqcurvefit像下面这样使用,

但问题是我现在不知道为什么我会得到输出:

输出 =

这是否意味着 Matlab 没有使用 Levenberg Marquardt 算法?

但我确实将我的选项设置为 levenberg Marquardt 算法!!!

我会很感激任何帮助。

0 投票
1 回答
1842 浏览

java - Java 中的 Levenberg-Marquardt 最小化

我通常在 MATLAB 中编写代码,但由于某些原因,我决定改用 JAVA 方法。

这个问题很简单:我想了解如何将以下 MATLAB 代码转换为可工作的 JAVA 代码。

在 MATLAB 中,我有一个名为的目标函数findZ0

然后我称之为:

我知道Fortran包已经用 Java 导入,但我真的不知道如何通过应用上述工具来实现我的目标。因此,我欢迎任何关于如何克服这个问题的建议。

0 投票
1 回答
914 浏览

c++ - 为神经网络上的 Levenberg-Marquardt 算法选择起始参数

我目前正在从事一个使用 ANN 的项目。对于训练算法,我选择了 LMA,因为它相当快且用途广泛,并且我阅读了一篇论文,认为它是我们用例的最佳训练算法。然而,在写完之后,我开始担心 SSE(误差平方和除以 2)在使用具有 2 个输入、1 个隐藏层和 2 个节点的网络的简单 XOR 问题上仅从 2.05 降低到 1.00,并且1 个输出。我以为我在某个地方编程出错了,但是当我尝试更改 PRNG 种子值时,SSE 突然收敛到 2.63e-09。然而,与可能的编程错误相比,这更加令人不安,因为对于这样一个简单的问题,我不认为算法的性能会受到随机机会的影响这么大。

PRNG 根据模式 0.8 和 -0.8 的双峰分布生成偏差和权重,并且概率分布在 0 附近下降到接近 0,所以希望我不应该从一开始就用非常小的参数来损害算法,但是在那里生成良好起始值的任何其他提示?我将 tanh 用于我的 sigmoid 函数,如果这有所作为的话。我在想,也许使用更大的值可能会产生影响,但我同样担心这也会产生不利影响。

我知道 LMA 只收敛到局部最小值,但肯定有一些方法可以避免这些问题。我只是因为我的种子价值不走运吗?每次卡住时,我是否应该简单地使用新的种子值重复训练?我应该完全寻找另一种训练算法吗?

ANN 将首先在一些历史数据上进行预训练,然后定期使用更新的数据进行更新,所以虽然我可能有能力在必要时重复训练几次,但种子值的数量是有实际限制的可以尝试。此外,虽然这个初始测试只有 9 个参数,但我们最终将处理接近 10,000 个,并且可能不止一个隐藏层。我的直觉是,这会加剧局部最小值的问题,但增加问题规模是否可能实际上是有益的?

0 投票
2 回答
6318 浏览

r - R - Levenberg Marquardt 中的非线性最小二乘法拟合 Heligman Pollard 模型参数

我正在尝试重现 Kostakis 的论文解决方案。在本文中,使用 de Heligman-Pollard 模型将简化的死亡率表扩展为完整的生命表。该模型有 8 个必须拟合的参数。作者使用了修改后的 Gauss-Newton 算法;该算法 (E04FDF) 是 NAG 计算机程序库的一部分。Levenberg Marquardt 不应该产生相同的参数集吗?我的代码或 LM 算法的应用有什么问题?