标签: nlm

优化错误:无法在初始参数处评估功能

因此,我在R中遇到了这个奇怪的错误。我有一个简单的函数,当比较实际价格和模拟价格时会返回错误项hestondifferences()

当我尝试通过以下方式找到本地最小值时:

 res<-optim(fn=hestondifferences, par = c(vT=vT, rho=rho, k=k, sigma=sigma))
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

optim中的误差(fn = hestondifferences,par = c(vT = vT,rho = rho,k = k,:无法在初始参数处评估函数

令我感到困惑的是,直接使用初始参数调用该函数会hestondifferences(vT, rho, k, sigma)返回正确的值。

该函数hestondifferences()以某种方式编写:只要无法对某些参数集进行仿真,它将返回NAoptim()期望相符的结果。

r nlm nonlinear-functions nonlinear-optimization

5
推荐指数
1
解决办法
1万
查看次数

R: mixdist 包中的 mix() 返回错误

我已经在 R 中安装了 mixdist 包来组合发行版。具体来说,我正在使用该mix()功能。请参阅文档。 基本上,我得到

Error in nlm(mixlike, lmixdat = mixdat, lmixpar = fitpar, ldist = dist, : missing value in parameter

我用谷歌搜索了错误消息,但没有弹出任何有用的结果。

我的第一个参数mix()是一个名为 data.df 的数据框。它的格式与内置数据集 pike65 完全相同。我也这么做了data.df <- as.mixdata(data.df)

我的第二个参数有两行。它是一个名为 datapar 的数据框,其格式与 pikepar 完全相同。我的pi值是0.5和0.5。我的mu值为 250 和 463(基于我的数据集)。我的sigma值是0.5和1。

我的电话mix()看起来像:
fitdata <- mix(data.df, datapar, "norm", constr = mixconstr(consigma="CCV"), emsteps = 3, print.level = 2)

打印显示我的pi值在第一次迭代后从 0.5 变为 NaN,并且我的梯度变为 0。

如果您能帮助解决此错误,我将不胜感激。

谢谢,

r normal-distribution nlm mixed-models

4
推荐指数
2
解决办法
1600
查看次数

注册NLM事件(INetworkListManager,Advise,Sink等)

在我的Delphi应用程序中,我想使用Microsoft Windows网络列表管理器API(NLM)了解网络更改:http://msdn.microsoft.com/library/ee264321

我查看了链接的"如何注册NLM事件"示例并将其翻译为Delphi.但是,我不知道如何继续这样做.

var
    pNLM: INetworkListManager;
    pCpc: IConnectionPointContainer;
    pConnectionPoint: IConnectionPoint;
    pSink: IUnknown;
    dwCookie: LongInt;
const
    IID_IConnectionPointContainer: TGUID = '{B196B284-BAB4-101A-B69C-00AA00341D07}';
    IID_IUnknown: TGUID = '{00000000-0000-0000-C000-000000000046}';
begin
    if Succeeded(CoCreateInstance(CLASS_NetworkListManager, nil, CLSCTX_ALL, IID_INetworkListManager, pNLM)) then
    begin
        if Succeeded(pNLM.QueryInterface(IID_IConnectionPointContainer, pCpc)) then
        begin
            if Succeeded(pCpc.FindConnectionPoint(IID_INetworkEvents, pConnectionPoint)) then
            begin
                if Succeeded(pCpc.QueryInterface(IID_IUnknown, pSink)) then
                begin
                    pConnectionPoint.Advise(pSink, dwCookie);
                end;
            end;
        end;
    end;
end;
Run Code Online (Sandbox Code Playgroud)

文章sais:

"您已创建的INetworkListManager对象后以上你会从该点向前接收INetworkEvents通知.pSink实现INetworkEvent接口包括那些事件处理方法,例如NetworkAdded,NetworkDeleted,NetworkConnectivityChanged,和NetworkPropertyChanged".

不幸的是我不知道该怎么做.没有进一步的说明,所以我希望这里有人可以指导我/提供一个示例,为这些事件调用自定义程序.谢谢.

delphi winapi nlm

2
推荐指数
1
解决办法
1200
查看次数