使用函数fminbnd来确定最大值?

时间:2013-12-31 02:53:16

标签: matlab max

我试图通过在fminbnd中取消我的函数的负数来找到最大值出现的x值。但是,我一直遇到错误。有人可以请更正我的语法或给出正确的语法来解决这个问题吗?这是一个例子:

>> func

func = 

    @(x)(x)^3+2*(x)^2

我试过

>> xmax = fminbnd('-func',1,3)
>> xmax = fminbnd('-func(x)',1,3)
>> xmax = fminbnd(-func,1,3)

和其他各种人,但我仍然得到一个错误。

由于

2 个答案:

答案 0 :(得分:3)

尝试:

fminbnd(@(x) -func(x),1,3)

答案 1 :(得分:1)

最低:使用

fminbnd(func, 1, 3)

在此语法中,funcfunction handle(正如您在示例中定义的那样)。

或者,您可以使用temporary function handle to an anonymous function直接在fminbnd内定义该功能:

fminbnd(@(x)(x)^3+2*(x)^2, 1, 3)

对于最大值:直接在fminbnd中定义临时函数:

fminbnd(@(x)-func(x), 1, 3)