Matlab 找到 min/max 的函数

Matlab find min/max of function

我正在尝试编写一个 M 文件,在给定一定范围的情况下查找函数的 max/min。

假设我在命令 window 中定义了一个等式,如下所示:

> 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)

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

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

您的函数可能如下所示:

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