Matlab找到函数的最小值/最大值

时间:2017-09-30 23:46:03

标签: matlab function max min

我尝试编写一个M文件,在给定一定范围的情况下找到函数的最大值/最小值。

我们说我在命令窗口中定义了一个方程式,如下所示:

> y = @(x) -1*x^2 + 3
y =

  function_handle with value:

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

让我们说我想要的范围从-3到3 ......所以我会用

开始我的M档案
function fminmax = input(f, lowerbound, upperbound)

然后我会用什么?我已经谷歌搜索了一段时间,我找不到任何有用的东西。请帮忙!

1 个答案:

答案 0 :(得分:2)

您可以使用现有的函数x = fminbnd(fun, x1, x2),它为funx1范围内的函数句柄x2提供最小值。要获得最大值,您可以使用函数句柄的负数。

您的功能可能如下所示:

function [min, max] = fminmax(f, lowerbound, upperbound)
    min = fminbnd(f, lowerbound, upperbound);
    max = fminbnd(@(x) -f(x), lowerbound, upperbound);
end