学习MATLAB请关注这里:MATLAB实例系列教程

问题:在线,急需matlab求函数最大值_

问题描述:小弟刚学matlab,很多不会。需求 f = (200+5*x)*(0.65-

x*0.01)-x*0.45; x;0的最大值一定要用matlab哦,步骤详细点哦,谢

谢啦!!

答案1:: 楼上的方法也行,但不是很通用,需要确定搜索范围,而

我们一般也不知道极值点在哪个范围,因此有一定的缺陷。楼上的方

法偏向于数值迭代计算,工程上使用较多,特别适于没有解析解的情

况。

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)))])

elseif subs(s2,x,h(i));0

disp(['函数在' num2str(h(i)) '处取得极小值,极小值为'

num2str(subs(f,x,h(i)))])

else

disp(['函数在' num2str(h(i)) '处二阶导数也为0,故在该

点处函数可能有极大值、极小值或无极值'])%%%详情见高数课本

end

end

提问者的评价:谢谢啊!!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐