[英]Matlab find min/max of function
我正在嘗試編寫一個找到給定范圍的函數的最大值/最小值的M文件。
假設我在命令窗口中定義了一個方程,如下所示:
> y = @(x) -1*x^2 + 3
y =
function_handle with value:
@(x)-1*x^2+3
假設我的期望范圍是-3到3 ...所以我將以
function fminmax = input(f, lowerbound, upperbound)
但是那我要用什么呢? 我搜索了一段時間,找不到任何有用的信息。 請幫忙!
你可以使用已經存在的功能, 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.