Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math fminsearch似然用法_Math_Matlab - Fatal编程技术网

Math fminsearch似然用法

Math fminsearch似然用法,math,matlab,Math,Matlab,我为给定的数据编写了下面的代码。我可能写嵌套函数时出错了。谁能告诉我这个错误吗?我很乐意得到任何回答 clear; t=[1 3 6 9 12 18]';%time y=[.94 .77 .40 .26 .24 .16]';%probability n=100;%trial x=y.*n;%correct replies p=rand(2,1);%starting parameters f=@(t)p(1,1).*t.^(-p(2,1));

我为给定的数据编写了下面的代码。我可能写嵌套函数时出错了。谁能告诉我这个错误吗?我很乐意得到任何回答

    clear;
    t=[1 3 6 9 12 18]';%time
    y=[.94 .77 .40 .26 .24 .16]';%probability
    n=100;%trial
    x=y.*n;%correct replies
    p=rand(2,1);%starting parameters
    f=@(t)p(1,1).*t.^(-p(2,1));%model function
%%%%%%%%%%%%%%%%%%%%%%%
    ff=@(p)sum(x.*log(-f)+(n-x(i).*log(-1+f)));%sum of the -loglikelihood
    ffmin1=fminsearch(ff,p(1,1))
    ffmin2=fminsearch(ff,p(2,1))

代码中有许多错误。逐行:

您的模型函数应该接受您的参数

f=@(t,p) p(1,1).*t.^(-p(2,1));%model function
您的目标函数不能在没有参数的情况下调用
f
,也不能通过
i
索引
x
,这是未定义的

ff= @(p) sum(x.*log(-f(t,p))+((n-x).*log(-1+f(t,p))));
fminsearch
将同时解决所有变量的最小化问题,而不是一次一个

ffmin=fminsearch(ff,p)

这并不能解释模型中可能出现的错误,但至少应该运行代码

非常感谢您的回答,@jonnat。我已经尝试让代码运行,但不幸的是我收到了一条错误消息。你对此有什么想法吗?非常感谢,我弄错了fminsearch是一个矩阵值,我应该写这样的东西:{[p fvalue]=fminsearch(ff,p)}@user1018331 maxiter警告表明
fminsearch
在允许的迭代次数内收敛到最小值时遇到问题,可能是由于问题是无界的。在我的回答中,我对代码做了一些小改动,这产生了一个有界问题,但我无法知道模型是否正确。