问题标签 [fminsearch]
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 - fminsearch 审查的 MATLAB
编辑我发现脚本中的 y(c) 给出了这个错误:
但在示例脚本中,y(c) 打印 y 被审查的值。
我正在尝试使用我找到的脚本来分析审查数据。该脚本本身工作正常,但是当我尝试将它与我自己的数据一起使用时,我得到了一个错误。
这是示例代码:
这是我的代码:
错误是:
我试图调试它,但 p 似乎在定义之前就被调用了。我发现nloglik是一个带有输入参数p的函数。
我的脚本如何给出此错误,而不是示例脚本?我该如何克服这个错误?
matlab - 拟合复杂函数
我必须找到一个适合实验数据的模型。问题是模型是一个复杂的函数。
我必须最小化模型和实验数据之间的误差,无论是实部还是虚部。我正在使用 fminsearch 来查找使错误最小化的函数的参数。为了使用该功能,我将实部和虚部分开。
我的问题是我不知道我必须使用的错误功能。
到目前为止我已经使用
但是得到的模型根本不满足实验数据,至少虚部是这样。我已经多次更改初始条件,不可能提高虚部的拟合度。虚部的大小比实部小几倍。这可能是原因吗?
matlab - 使用 fminsearch 查找局部最小值和该值处的最小值
我在使用时遇到问题fminsearch
:收到错误,即我的函数没有足够的输入参数。
我的功能有问题吗?每当我想将它用作任何其他命令的输入函数时,我都会不断收到错误。
matlab - matlab fmincon 错误“求解器过早停止”
对于给定的结,我有一个 6 DOF 机械手的给定路径。路径(自由度,结)
我在每个关节之间生成了三次样条曲线,每个时间间隔被定义为 h(i),我试图找到最小的 h 值,即h(1)+h(2)+h(3)+h(4)+h(5)
.
为了解决这个问题,我写了一个代码:
当我运行代码时,它说:
求解器过早停止。fmincon 停止,因为它超出了迭代限制,options.MaxIter = 1000(选定值)。
第 5 次迭代后 f(x) 值不变,结果:
我不知道它背后的原因是什么。请你帮助我好吗?
matlab - Finding optimal waveform overlap in Matlab
I'm trying to see some examples of how to find the optimal overlap between two waveforms. Here is some example data.
Note the waveforms have different x
-values and ranges for x
-values. Specifically, I'd like to ONLY modify x2
and y2
. The x
values must maintain their relative spacing (ie, the distance between any two consecutive x-values (in the above x2
example, that's 1
) must be the same, but in finding the optimal overlap, that new distance can be different from the original distance). In other words, the "shape" of the 2nd waveform must remain the same.
Generally, two steps need to be taken:
- Assign new
x2
-values - Scale the
y2
-values by some global factor
I'd like to define optimal overlap as the minimized subtraction between the two waveforms. That is, from the first x
-value (lowest of x1
and x2
) to the last x
-value (highest of x1
and x2
), the subtraction of the two waveforms is a minimum. Note that the waveforms can be subtracted even if they have different x
-values by interpolating between points. Where data is nonexistent, the subtraction should basically just include a 0
for one wave or the other.
Any ideas? Thanks in advance!
matlab - Matlab fmincon 初始猜测麻烦
我正在尝试计算具有多个变量的函数的最小值,我唯一的约束是变量的上限和下限。我遇到的问题是它fmincon
不会改变我给它的初始猜测值的输入值。
这是我得到的输出:
初始点是满足约束的局部最小值。
优化完成是因为在初始点,目标函数在可行方向上不递减到函数容差的选定值内,并且约束满足在约束容差的选定值内。
我尝试了多个初始猜测并且发生了同样的事情,请帮助不确定如何解决这个问题。
编辑****
matlab - 找到一个向量的位移,使与另一个向量的差异最小化
如果之前有人问过类似的问题,我很抱歉。我有两个50 xn的向量,并且想要找到第一个向量的偏移,它提供与第二个向量最接近的匹配。我已经尝试过fminsearch
,circshift
但是在 Matlab 中,无法完全找到在这种情况下如何使用它们。
我也看到了这里的讨论,但是,我不需要有代表性的函数或插值来匹配这两个向量。相反,我只想要一个配置文件的最佳转换,从而最大限度地减少沿配置文件的差异。如果你能指导我,我会很高兴。另外,我可以fminsearch
用来解决这个问题吗?
matlab - fminsearch 错误:DOUBLE 无法将输入表达式转换为双精度数组
我在优化练习期间遇到问题。我正在尝试在 matlab 中使用 fminsearch() 来解决它。运行代码时会产生以下错误:
从 sym 转换为 double 时发生以下错误:使用 symengine 时出错(第 59 行) DOUBLE 无法将输入表达式转换为双精度数组。如果输入表达式包含符号变量,请使用 VPA。
fminsearch 中的错误(第 190 行) fv(:,1) = funfcn(x,varargin{:});
优化错误(第 22 行) sol2 = fminsearch(J, x0);
我使用的脚本如下所示。f 是最小化问题,其中 g1 和 g2 是约束。p 在那里,以便我以后可以将其转换为 for 循环。
这个 Stackoverflowpost 有同样的问题,但从另一个角度来看。根据这篇文章,以有效方式分配可能是一个问题。我尝试了几种不同的方法来解决我的问题。我试过 matlabFunction() 并将函数放在一个单独的文件中。
在此先感谢您的帮助。
matlab - 保存在函数中为 fminsearch 的每次迭代计算的值
我想找到一个函数的最小值
现在对于每个迭代步骤,我希望将函数“esm6”计算的一些值保存在数组中。我尝试了以下方法:在我写的函数的第一行
有一个迭代变量计算 fminsearch 的迭代步数。后来为了捕捉我需要的值,我使用了
并确保我在下一个函数调用中使用了 identi-struct 的新值,我在函数末尾写了这个:
现在不幸的是,它没有做我想做的事。谁能帮我这个?
编辑:
我再次尝试使用输出功能。我像这样扩展我的选项:
但现在的问题是我不知道把这个玩笑放在哪里。看起来像这样:
现在的问题是,我不能把它放在我调用 fminsearch 的文件中,因为那是一个脚本。如果我将 outputfunction 放入单独的 .m-function 文件中,则无法访问 esm6 函数的变量。如果我将它添加到 esm6-function 文件中,matlab 找不到该函数并说
???对“struct”类型的输入参数使用 ==> feval 未定义函数或方法“outfun”时出错。
matlab - 获取每次迭代的 fminsearch 的函数调用次数
此代码将找到我的 esm6 函数的本地最小值,并且由于“显示”选项,它将输出这样的字符串
迭代函数计数 min f(x) 过程
0 1 36.9193
1 5 35.9815 初始单纯形
2 7 35.4924 内部合约
3 9 35.4924 内部合约
4 11 33.0085 展开
所以在命令窗口中,我得到了每个迭代步骤的函数计数。由 fminsearch 创建的结构output
中只有 func-count 的总量。有没有办法接收在命令窗口中输出的所有信息,也在输出结构中?
编辑:
我认为我非常接近解决方案。我写了这个输出函数:
由于http://de.mathworks.com/help/matlab/math/output-functions.html这应该可以工作,但事实上,matlab 告诉我,
???引用不存在的字段“funcCount”。
任何想法,为什么会发生这种情况?