不能用是因为sym不支持max,y不是一系列的离散点
找极值有三种方法:
导数为0求极值、优化算法(运用函数)、绘图观察
其中有2个函数:(都是找极小值的函数,极大值可以用其相反数查找)
[x,feal,exitflag,output]=fminbnd(fun,x1,x2,options)
[x,feal,exitflag,output]=fminsearch(fun,x0,options)
%若exitflag给出数大于0,则成功找到极值点,x,fval分别是极值点和对应的目标函数极值
找0点的程序:
x1=-2;x2=2;
yx=@(x)-(sin(x)/x); %找极大值要用相反数找极小值
[xn0,fval,exitflag,output]=fminbnd(yx,x1,x2)
xn0 =
1.6653e-016 @可以视为0
fval =
-1
exitflag =
1
output =
iterations: 5
funcCount: 6
algorithm: 'golden section search, parabolic interpolation'
message: [1x112 char]
从而所以极大值为(0,1)
剩下的点楼主自己编程找找,这样印象才深刻
函数在极值点的导数为0,你可以用diff()这个函数求出一阶导数,然后找出为0的坐标就很容易了