作业帮 > 数学 > 作业

急需matlab求函数最大值

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/07/07 13:53:04
急需matlab求函数最大值
小弟刚学matlab,需求 f = (200+5*x)*(0.65-x*0.01)-x*0.45; x>0的最大值
楼上的方法也行,但不是很通用,需要确定搜索范围,而我们一般也不知道极值点在哪个范围,因此有一定的缺陷.楼上的方法偏向于数值迭代计算,工程上使用较多,特别适于没有解析解的情况.
syms x
f=(200+5*x)*(0.65-x*0.01)-x*0.45;
s=diff(f);%一阶导数
s2=diff(f,2);%二阶导数
h=double(solve(s));%一阶导数为零的点可能就是极值点,注意是可能,详情请见高数课本
for i=1:length(h)
if subs(s2,x,h(i))0
disp(['函数在' num2str(h(i)) '处取得极小值,极小值为' num2str(subs(f,x,h(i)))])
else
disp(['函数在' num2str(h(i)) '处二阶导数也为0,故在该点处函数可能有极大值、极小值或无极值'])%%%详情见高数课本
end
end