【数值计算】一元多值函数求极值——利用fminbnd和图形观察

一元多值函数求极值在实际科研中具有很重要的作用,其中求最大值和求最小值又有相似的地方,只要可以求出两者中的一者,对函数加一个负号就可以求出另一个最值。

下面是一个利用fminbnd函数,结合图形观察得出最小值的人工求解方法。fminbnd函数的功能是求非线性函数极小值点,但注意求解的是某个区间内的其中一个极小值点,不一定会是该区间的最小值点。下面是fminbnd函数使用格式:

[xmin,ymin,exitflag]=fminbnd(f,x,y);

%f为这个函数的句柄,x,y为搜索的范围,xmin,ymin为搜索到的其中一个极小值点的坐标,exitflag为1表示极小值点搜索成功,为0表示没有找到极小值点。exitflag可以缺省。
实例:下面演示非线性函数在[-50,5]内求极小值。主要演示fminbnd只能求函数的极小值点;利用图形,观察函数在指定区间中的整体形态,来求解最小值;ezplot命令要求匿名函数采用数组运算。

解:

1)在整个指定区间采用优化算法求极小值

x1=-50;
x2=5;
yx=@(x)(sin(x).^2.*exp(-0.1*x)-0.5*sin(x).*(x+0.1)); %函数句柄结构
[xc0,fc0,exitflag]=fminbnd(yx,x1,x2) %在指定区间搜索极小值
xc0 =

   -8.4867


fc0 =

   -1.8621


exitf

你可能感兴趣的:(【数值计算】一元多值函数求极值——利用fminbnd和图形观察)