matlab怎么在找出图中极值的纵横坐标比如sin(x)/x函数的图像.找出每个极值点的坐标值.不要手点的那种data curse,不精确.求指导.用syms定义的函数,怎么没法用[ymax,tp]=max(y)啊,提示Undefined function
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/27 14:39:06
matlab怎么在找出图中极值的纵横坐标比如sin(x)/x函数的图像.找出每个极值点的坐标值.不要手点的那种data curse,不精确.求指导.用syms定义的函数,怎么没法用[ymax,tp]=max(y)啊,提示Undefined function
matlab怎么在找出图中极值的纵横坐标
比如sin(x)/x函数的图像.找出每个极值点的坐标值.不要手点的那种data curse,不精确.求指导.用syms定义的函数,怎么没法用[ymax,tp]=max(y)啊,提示Undefined function 'max' for input arguments of type 'sym'.
matlab怎么在找出图中极值的纵横坐标比如sin(x)/x函数的图像.找出每个极值点的坐标值.不要手点的那种data curse,不精确.求指导.用syms定义的函数,怎么没法用[ymax,tp]=max(y)啊,提示Undefined function
不能用是因为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的坐标就很容易了