问题标签 [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.
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] = ...
我该如何克服这个错误?
matlab - levenberg marquardt 曲线拟合 MATLAB
在此处输入图像描述我不知道如何在 MATLAB 中选择lb
andub
以及如何将我的函数与数据相匹配,我的意思是我有一些输出,但它们不正确,lsqcurvefit
x0
这是我的数据:
然后我将 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) 添加到我的函数中。
我附上了图。
matlab - 具有多个参数的 levenberg marquardt 曲线拟合 MATLAB
我正在尝试使用 Matlab 中的 levenberg-Marquardt 最小二乘法将具有四个未知参数的巨大函数拟合到我的数据中。我使用了这个命令:
这意味着我有兴趣限制第三个参数。但我面临这个问题:
我认为这个错误表明我的数据很小,因为它们是 36 个点,或者可能有太多未知参数,但我认为四个未知参数拟合就可以了!
那么,你怎么看?这是否意味着 MATLAB 无法将我的函数拟合到这 36 点数据?
我会很感激任何评论。
curve-fitting - 非线性拟合
我有一些实验数据,我想使用最小二乘法(Levenberg-Marquardt)拟合它们以获得我的参数。
我正在使用两个非线性方程,并且正在使用一些计算程序(Origin 和 Matlab)。
第一个是:
带参数的非线性方程 (Alfa1,Alfa2,Alfa3,Alfa4,Alfa5)
第二个拟合方程是:
有理函数,即分子上的二次函数和分母上的第四多项式函数
我想使用这两个方程来拟合,但我不知道该怎么做。如果有人想要实验数据,我可以在这里发布。
非常感谢,
爱德华多
c++ - 寻找相机之间的外在因素
我处于需要根据图像对应关系找到两个/或多个摄像头之间的相对摄像头姿势的情况(因此摄像头不在同一点)。为了解决这个问题,我尝试了与这里描述的相同的方法(下面的代码)。
但在我的大多数情况下,我得到的结果非常奇怪。所以我的下一个想法是使用一个成熟的捆绑调节器(它应该做我正在寻找的东西?!)。目前我唯一的大依赖是 OpenCV,他们只有一个未记录的捆绑调整实现。
所以问题是:
- 是否有没有依赖关系并使用允许商业使用的许可证的捆绑调节器?
- 还有其他简单的方法可以找到外在因素吗?
- 与相机距离非常不同的物体是否有问题?(大视差)
提前致谢
opencv - OpenCV CvLevMarq( ) 类
我是 OpenCV 的新手,我必须执行一些相机校准功能。谁能告诉我CvLevMarq()
OpenCV中类的用途是什么以及如何使用它?
matlab - 在 lsqcurvefit 中使用选项
我将选项设置为
然后lsqcurvefit
像下面这样使用,
但问题是我现在不知道为什么我会得到输出:
输出 =
这是否意味着 Matlab 没有使用 Levenberg Marquardt 算法?
但我确实将我的选项设置为 levenberg Marquardt 算法!!!
我会很感激任何帮助。
java - Java 中的 Levenberg-Marquardt 最小化
我通常在 MATLAB 中编写代码,但由于某些原因,我决定改用 JAVA 方法。
这个问题很简单:我想了解如何将以下 MATLAB 代码转换为可工作的 JAVA 代码。
在 MATLAB 中,我有一个名为的目标函数findZ0
:
然后我称之为:
我知道Fortran
包已经用 Java 导入,但我真的不知道如何通过应用上述工具来实现我的目标。因此,我欢迎任何关于如何克服这个问题的建议。
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 个,并且可能不止一个隐藏层。我的直觉是,这会加剧局部最小值的问题,但增加问题规模是否可能实际上是有益的?
r - R - Levenberg Marquardt 中的非线性最小二乘法拟合 Heligman Pollard 模型参数
我正在尝试重现 Kostakis 的论文解决方案。在本文中,使用 de Heligman-Pollard 模型将简化的死亡率表扩展为完整的生命表。该模型有 8 个必须拟合的参数。作者使用了修改后的 Gauss-Newton 算法;该算法 (E04FDF) 是 NAG 计算机程序库的一部分。Levenberg Marquardt 不应该产生相同的参数集吗?我的代码或 LM 算法的应用有什么问题?