matlab怎么在找出图中极值的纵横坐标

比如sin(x)/x函数的图像。找出每个极值点的坐标值。不要手点的那种data curse,不精确。求指导。用syms定义的函数,怎么没法用[ymax,tp]=max(y)啊,提示Undefined function 'max' for input arguments of type 'sym'.

不能用是因为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)
剩下的点楼主自己编程找找,这样印象才深刻
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-19
函数在极值点的导数为0,你可以用diff()这个函数求出一阶导数,然后找出为0的坐标就很容易了
相似回答