首先将问题转化,求体积的最大值转化为求体积倒数的最小值,然后利用matlab库函数 fminbnd求解,具体代码如下
%p可以随便定义,只要大于0就行
p = 2;
[x v] = fminbnd(@(x) 1/(pi*x^2)/(2*p-x),0,2*p);
y = 2*p-x;
%下面是对p归一化
x = x/p;
y = y/p;
v = 1/v/p/p/p;
%结果显示
disp(['x = ',num2str(x),'p'])
disp(['y = ',num2str(y),'p'])
disp(['v = ',num2str(v),'p^3'])