用matlab编写用试验法求一个函数在某个区间中的最小值的子程序。

2024-12-14 17:20:18
推荐回答(1个)
回答1:

【试验法求最小值】函数如下:

function [y, x0] = findmin(fun, a, b, steplen)
if(nargin<4), steplen = 0.01; end
if(a > b),
x = a : -steplen : b;
else
x = a : steplen : b;
end

[y, id] = min(fun(x));
x0 = x(id);

【计算结果】
>> fun = @(x) x.^2-5*x-4;
>> [y, x0] = findmin(fun, -5, 5, 0.001)
y = -10.2500
x0 = 2.5000
【注】第一个参数是函数,利用句柄形式,第二三个参数是区间两端,最后一个参数是试验步长,其实也就是等价于精确度。输入函数和区间,要保证有意义,否则会报错。