数值求解伽玛参数估计

时间:2017-02-07 15:03:21

标签: matlab numerical

我试图在Matlab中使用fzero数值求解方程式。这是一个更大的练习的一部分。我没有在这里张贴太多,所以不确定你需要多少关于这个练习的背景信息,所以会尽量保持简短。

这是我的代码:

fun = @(a)log(a/xBar) + (1/n) * log(dataProd) + diff(gamma(a))/gamma(a);
x0 = 0.8014;
x = fzero(fun,x0)

这些是值: n = 209 xBar是0.6078 dataProd = 3.1554e-77

我在Matlab中收到以下错误消息:

  

操作数到||和&&运营商必须可以转换为逻辑   标量值。

     

fzero中的错误(第306行)

     

elseif~isfinite(fx)|| 〜伊斯雷尔(FX)

我知道为什么会收到此错误消息?

1 个答案:

答案 0 :(得分:0)

我猜想,在搜索解决方案时,fzero会尝试在= 0处评估您的函数,从而导致无穷大。要检查是否是这种情况,请查看是否可以设置优化参数' display'您的Matlab版本中的“类似”或类似内容。否则,您只需将函数移动到单独的m文件中,然后在第一行调用disp(a)。通过这种方式,您将能够看到fzero正在做什么以及a的哪个值导致问题。