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)
,它为您提供 x1
和 x2
范围内的函数句柄 fun
的最小值。要获得最大值,您可以使用函数句柄的负数。
您的函数可能如下所示:
function [min, max] = fminmax(f, lowerbound, upperbound)
min = fminbnd(f, lowerbound, upperbound);
max = fminbnd(@(x) -f(x), lowerbound, upperbound);
end
我正在尝试编写一个 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)
,它为您提供 x1
和 x2
范围内的函数句柄 fun
的最小值。要获得最大值,您可以使用函数句柄的负数。
您的函数可能如下所示:
function [min, max] = fminmax(f, lowerbound, upperbound)
min = fminbnd(f, lowerbound, upperbound);
max = fminbnd(@(x) -f(x), lowerbound, upperbound);
end