Matlab最大化功能

时间:2016-09-04 14:18:17

标签: matlab maximize

我有一个函数,它给了我一个我想要最大化的可能性。问题是我需要提供我需要估计的4个参数。我有这个功能:

[likelihood, z0, z1, z2, z3]= myfun(g, g1, g2, x1, g3, x2, x3) 

在输出中给出了可能性如何最大化它?我知道所有g,但我不知道x,我应该通过最大化可能性来估计它们。此外,我也不知道z

我想我应该做fminsearch,但我找不到像这样的参数估计文档。

1 个答案:

答案 0 :(得分:1)

fminsearch似乎在这里做得很好 - 你只需要输入以函数期望的方式抽象搜索问题。在这里,我认为这意味着创建一个函数:

  1. 将未知参数作为单个数组参数
  2. 返回要最小化的值,而不是最大化
  3. 假设0是所有x参数的合理初始值,这看起来像这样:

    x = fminsearch(@(x) -myfun(g, g1, g2, x(1), g3, x(2), x(3)), [0,0,0]);
    x1 = x(1);
    x2 = x(2);
    x3 = x(3);
    

    要从返回的搜索结果中找出z值和结果likelihood,您只需将结果放回myfun

    [likelihood, z0, z1, z2, z3] = myfun(g, g1, g2, x1, g3, x2, x3)