请问用matlab怎样求一个函数的最大值?

请问用matlab怎样求一个函数的最大值


慕码人8056858
浏览 6977回答 2
2回答

三国纷争

用matlab求函数最大值的步骤如下:1.打开matlab软件,清空桌面环境;clearclc2.定义一个符号变量:syms t3.定义一个函数:y=t/(1+t*t);再通过以下函数来查看上面的函数图像;ezplot(y);4.查看该函数的图像可知,函数在0到2之间有一个极值,本例求解该最大值为例;5.输入以下的指令可以求得该函数最大值;max(subs(y,t,[0:0.00001:2]));其中0.00001是精度,求得最大值为0.5000

蛊毒传说

求极值:syms x y>> y=x^3+x^2+1>> diff(y)ans =3*x^2 + 2*x>> solve(ans)ans =-2/30极值有两点。求最大值,既求-y的最小值:>> f=@(x)(-x^3-x^2-1)f =@(x)(-x^3-x^2-1)>> x=fminunc(f,-3,3)% 在-3;-3范围内找Warning: Gradient must be provided for trust-region method;using line-search method instead.> In fminunc at 354Optimization terminated: relative infinity-norm of gradient less than options.TolFun.x =-0.6667>> f(x)ans =-1.1481在规定范围内的最大值是1.1481由于函数的局限性,求出的极值可能是局部最小(大)值。求全局最值要用遗传算法。上面简单的函数可以自己估计出来:最大值为inf至于遗传算法,以后提个复杂的问题再回答。
打开App,查看更多内容
随时随地看视频慕课网APP