如何使用Matlab在图中标出极值点坐标

一条曲线z=-2*x.^2+4+sin(2*pi*x),在窗口中划出,并加上极值点的标注。

求大神指导程序应该怎么写?

我就是不会在图中加上极值点标注。最好详细点

1、首先打开软件,然后进行下一步操作。

2、通过plot命令,画出一个图像。

3、此时发现系统根据数据,绘画一个图像。

4、然后在上方找到“data cursor” 这就是坐标指针。

5、然后将鼠标移动到所画的数据上,鼠标指针会发生变化。

6、这里一次只能识别一个坐标,如果需要识别多个坐标,可以使用s=input(n)   然后鼠标点击图像上坐标来获取。就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-20

1、如图所示,假设需要获取椭圆圈内的最大极值点的坐标。

2、显然,该函数图像上点的分布十分密集,为了能够拾取到正确的点,需要放大图像。使用放大图像按钮,框选需要放大的区域。

3、继续放大函数图像,到各点可清晰分辨为止,如图所示。

4、使用数据游标按钮,在最大极值点上或其附近点击,便拾取到了该最大极值点,其坐标也自动显示出来。本实例的最大极值点坐标为(4,2.22*10^9)。

5、如果放大图像时,框选区域设置的不合理,可以通过平移按钮,将最大极值点拖至图像中央。

6、最后若要获取更精确的坐标数值,可以在所拾取点的右键菜单中,选择将游标数据导出到工作区中再查看。

本回答被网友采纳
第2个回答  推荐于2017-12-16

先画出导数的曲线,根据其零点判断有几个极点,然后对各极点分别指定适当的初值,利用fsolve求出准确的零点位置,再绘图即可。

参考代码如下:

syms x
f=-2*x.^2+4+sin(2*pi*x);
df=diff(f);
ezplot(df,[-3 3])
x0=[-1.8 -1.3 -0.8 0.5 0.2 0.5 1.2];
x0=fsolve(inline(char(df)),x0,optimset('fsolve'));
hold on
plot(xlim,[0 0],'--c')
plot(x0,subs(df,x0),'ro')

 

figure(2)
ezplot(f,[-3 3])
hold on
plot(x0,subs(f,x0),'ro')

 

 

本回答被网友采纳
第3个回答  2013-10-14

%   导数为 0 的点 函数 fzero

x=-10:.1:10;
z=-2*x.^2+4+sin(2*pi*x);

figure,plot(x,z),grid on,hold on

 x=fzero(@(x)-4*x+2*pi*cos(2*pi*x),0) % 找到极值点
 %%
 x0=x;
z0=-2*x.^2+4+sin(2*pi*x);
plot(x0,z0,'ro')
text(x0,z0,'\leftarrow 极值点','FontSize',18)
 

第4个回答  2013-10-14
%导数为零:-4*x+2*pi*cos(2*pi*x)=0

fzero(@(x)-4*x+2*pi*cos(2*pi*x),0)

x=-0.2784
z=2.8609

text(-0.2784,2.8609,'\leftarrow 极值点','FontSize',18)
相似回答