簡體   English   中英

Matlab查找功能的最小/最大

[英]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的范圍x1x2 要獲得最大值,您可以使用函數句柄的負數。

您的函數可能如下所示:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM