作业帮 > 综合 > 作业

怎么把MATLAB绘制出来的二维曲线图的所有波峰波谷找出来呢?要求标明清楚峰谷处的坐标.

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/23 07:25:25
怎么把MATLAB绘制出来的二维曲线图的所有波峰波谷找出来呢?要求标明清楚峰谷处的坐标.
(绘制的原图像程序如下)>> syms a x;
y=[];
n=1;
a=10;
for x=-50:0.1:50
y(n)=vpa((1/sqrt(a^2+(a+x)^2))+(1/sqrt(a^2+(a-x)^2)));
n=n+1;
end
x=-50:0.1:50;
plot(x,y)
set(gca,'XTick',[-50:5:50])
怎么把MATLAB绘制出来的二维曲线图的所有波峰波谷找出来呢?要求标明清楚峰谷处的坐标.
a = 10;
x = -50:0.1:50;
y = 1./sqrt(a^2+(a+x).^2)+1./sqrt(a^2+(a-x).^2);
plot(x,y);
grid on;
yy = diff(y);
yy(yy<0) = -1;
yy(yy>0) = 1;
yyy = diff(yy);
mv = yyy(yyy~=0);
id = find(yyy~=0);
x0 = x(id);
y0 = y(id);
hold on;
for k = 1:length(id);
    plot(x0(k),y0(k),'r.');
    if mv(k)<0
        s = '峰:';
    else
        s = '谷:';
    end;
    s = [s num2str(x0(k)) ',' num2str(y0(k))];
    text(x0(k),y0(k),s);
end;
hold off;