作业帮 > 综合 > 作业

matlab问题~如何在已给出方程的等高线图(contour)中标出peak,hollow和pass?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 16:08:59
matlab问题~如何在已给出方程的等高线图(contour)中标出peak,hollow和pass?
如题,方程式已给出,
要求画出该方程的等高线图(contour),并且在图中标出peak(峰值),hollow(最低点)和pass(鞍值)
嗯.是在方程式已经给出的情况下,比方说是z=x^2+sin(x+y)*sinx
要求画等高线图,然后在图中用个小三角什么的标出peak,hollow和pass这几个点.
因为我记得[x,y,z]=peaks(50)给出的是一个random matrix.
还有.能不能用clabel做.
不好意思.我能问一句最后一步plot里面'bv'跟[0,0,因为我们老师要求画的图中心不在(0,0,0),而是在一个其它的点.
[x,y,z]=peaks(50);
>> contour(x,y,z,20)
>> hold on
>> minz=min(min(z));
>> [i,j]=find(z==minz);
>> minx=x(i,j);
>> miny=y(i,j);
>> plot(minx,miny,'bo','MarkerFaceColor',[0,0,0],'MarkerSize',12)
上面是做最小值,最大值也是一样的.
将上述的min(min(z))换成max(max(z))即可
至于鞍值,可能得费点尽(但只要你找到那个点.画图不是问题)
修改后大致用能.我只做最小值,最大值等,自己做吧.
>> [x,y]=meshgrid(-pi:0.05:pi);
>> z=x.^2+sin(x+y).*sin(x);
>> [zc,h] = contour(x,y,z,12); clabel(zc,h)
hold on
minz=min(min(z));
[i,j]=find(z==minz);
minx=x(i,j);
miny=y(i,j);
plot(minx,miny,'bv','MarkerFaceColor',[0,0,0],'MarkerSize',10)