我尝试编写一个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)
然后我会用什么?我已经谷歌搜索了一段时间,我找不到任何有用的东西。请帮忙!
答案 0 :(得分:2)
您可以使用现有的函数x = fminbnd(fun, x1, x2)
,它为fun
和x1
范围内的函数句柄x2
提供最小值。要获得最大值,您可以使用函数句柄的负数。
您的功能可能如下所示:
function [min, max] = fminmax(f, lowerbound, upperbound)
min = fminbnd(f, lowerbound, upperbound);
max = fminbnd(@(x) -f(x), lowerbound, upperbound);
end