hjc421421 发表于 2008-11-4 15:35

最小二乘法求Beta分布参数的问题。

以下是M文件中定义的内容:
function F = myfun(x)
c=;
m=;
k = 1:10;
F=log(m(k)/betainc(c(k),x(1),x(2)));
——————————————————————————————————————————————————————————
以下是调用最小二乘法求参数x(1),x(2)的语句:
x0=
= lsqnonlin(@myfun,x0)
——————————————————————————————————————————————————————————
为什么总是返回错误,代码如下:
Warning: Large-scale method requires at least as many equations as variables;
switching to line-search method instead.Upper and lower bounds will be ignored.
> In optim\private\lsqncommon at 160
In lsqnonlin at 147
??? Error using ==> betainc
Z must be real and nonnegative.

Error in ==> myfun at 8
F=log(m(k)/betainc(c(k),x(1),x(2)));

Error in ==> optim\private\nlsq at 337
            CostFunction = feval(funfcn{3},x,varargin{:});

Error in ==> optim\private\lsqncommon at 216
    = ...

Error in ==> lsqnonlin at 147
= ...
——————————————————————————————————————————————————————————————————————
如果我把M文件中的log去掉就能返回结果。不知道这错误代码说的是什么?请高手帮我看看。
我不知道是我不会用log函数呢。还是我的M文件中有其它的错误。


[ 本帖最后由 hjc421421 于 2008-11-4 15:38 编辑 ]

hjc421421 发表于 2008-11-4 15:41

我又试了试,用不同的初始向量x0代入好像可以正常运行了,估计应该是x0的选取问题。
页: [1]
查看完整版本: 最小二乘法求Beta分布参数的问题。