【例1】在长为350cm、宽为260cm的长方形不锈钢板的四角各剪去一个小正方形,做成一个无盖的储水箱,试确定正方形的边长,使储水箱的容积最大。
假设剪去的正方形的边长为x,则的取值范围为0~130cm,水槽的容积为
\[f\left( x \right)=x\left( 350-2x \right)\left( 260-2x \right)\]
现在要求在区间(0,130)上确定一个x,使\(f(x)\)最大化。因为MATLAB最优化工具箱中要求目标函数最小化,所以需要对目标函数进行转换,即要求\(-f(x)\)最小化。
首先编写M文件fminbndtest.m:
code.matlab
function f = myfun(x)
f = - x*(350-2*x)*(260-2*x);
然后在命令窗口调用fminbnd函数:
code.matlab
>> [x,fval]=fminbnd(@fminbndtest,0,130)
得到问题的解:
code.matlab
x =
49.1997
fval =
-2.0004e+06
即当剪掉的正方形的边长为49.1997cm时,水槽的容积最大,为2.0004e+06cm3。