matlab 如何用随机投点法求一元函数在闭区间上的最值?

如题所述

第1个回答  2016-03-14
以对勾函数为例,闭区间为[a,b],a=0.001,b=20为例;
注:由于随机因素的影响,每次结果略有差异,当N足够大时,差异可以忽略。
f=@(x) x+1./x;
a=0.001;
b=20;
N=10000;%随机投点个数
rnd=rand(N,1)*(b-a)+a;
rndValue=f(rnd);
[maxValue,maxInd]=max(rndValue);
maxX=rnd(maxInd);
[minValue,minInd]=min(rndValue);
minX=rnd(minInd);
maxValue,maxX,minValue,minX本回答被提问者和网友采纳
相似回答