Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab查找函数的最小值/最大值_Matlab_Function_Max_Min - Fatal编程技术网

Matlab查找函数的最小值/最大值

Matlab查找函数的最小值/最大值,matlab,function,max,min,Matlab,Function,Max,Min,我试图编写一个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) 那我用什么呢?我在谷歌上搜索了一段时间,找不到任何有用的东西。请帮忙 您可以

我试图编写一个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)
,该函数为
x1
x2
范围内的函数句柄
fun
提供最小值。要获得最大值,可以使用函数句柄的负数

您的函数可以如下所示:

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

您可以使用已经存在的函数
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

当我尝试此操作时,Matlab会发出错误消息。它表示“function_handle”类型的输入参数为“Undefined operator'*”@Marcus my bad。函数句柄不是数值,因此不能与-1相乘。我编辑了我的答案。这应该可以做到。当我尝试这一点时,Matlab会发出一条错误消息。它表示“function_handle”类型的输入参数为“Undefined operator'*”@Marcus my bad。函数句柄不是数值,因此不能与-1相乘。我编辑了我的答案。这应该能奏效。是我在谷歌上搜索你的问题标题时的第一个热门话题。是我在谷歌上搜索你的问题标题时的第一个热门话题。