为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕码人8056858 2019-02-06 09:07:42
请问用matlab怎样求一个函数的最大值
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

用matlab求函数最大值的步骤如下:

1.

打开matlab软件,清空桌面环境;

clear

clc

2.

定义一个符号变量:

syms t

3.

定义一个函数:

y=t/(1+t*t);

再通过以下函数来查看上面的函数图像;

ezplot(y);

4.

查看该函数的图像可知,函数在0到2之间有一个极值,本例求解该最大值为例;

5.

输入以下的指令可以求得该函数最大值;

max(subs(y,t,[0:0.00001:2]));

其中0.00001是精度,求得最大值为0.5000



查看完整回答
反对 回复 2019-03-16
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

求极值:
syms x y
>> y=x^3+x^2+1
>> diff(y)

ans =

3*x^2 + 2*x
>> solve(ans)

ans =

-2/3
0
极值有两点。

求最大值,既求-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 354
Optimization terminated: relative infinity-norm of gradient less than options.TolFun.

x =

-0.6667
>> f(x)

ans =

-1.1481
在规定范围内的最大值是1.1481
由于函数的局限性,求出的极值可能是局部最小(大)值。
求全局最值要用遗传算法。
上面简单的函数可以自己估计出来:最大值为inf
至于遗传算法,以后提个复杂的问题再回答。



查看完整回答
反对 回复 2019-03-16
  • 2 回答
  • 0 关注
  • 6959 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信