如何用2个常数参数找到变量函数的最大值?

时间:2015-06-27 21:14:48

标签: matlab

我正在尝试使用fminbnd找到函数的最大值。我使用了f(x) = x^2+2*x这样的简单函数,所以要找到fminbnd(f,-10,10)的最小值。要找到最大值,我只需fminbnd(-f,-10,10)

现在我有另外一个带有3个变量的函数,但我希望它们中的2个是常量:

f(Q,m,Fx) = (Fx^2*(m-1))/sqrt( (m*Fx^2-1)^2 + (Fx^2*(Fx^2-1)^2*(m-1)^2*Q^2) )

我目前正在使用ezplot(f(q,m,Fx), [0 8 0 3]) qm常量值来绘制它。如果尝试使用fminbnd(-f(q,m,Fx),0,8)获取最大值,则会给我一个错误。

如何找到此功能的最大值?

1 个答案:

答案 0 :(得分:1)

您可以将函数定义为函数句柄,然后在 // click dropdown to show popup $(".dropdown-select .select-toggle").click(function(){ if($(this).parent().find(".select-menu").hasClass("hide")) { $(this).parent().find(".select-menu").removeClass("hide"); $(this).parent().find(".select-menu").prev().addClass("shadow"); } else { $(this).parent().find(".select-menu").addClass("hide"); $(this).parent().find(".select-menu").prev().removeClass("shadow"); } }); ezplot的调用中使用匿名函数。这可以将您的问题减少到只有一个变量,因此可以适当地处理它并且不会产生任何错误。

fminbnd

给出以下结果:

result