查看: 455|回复: 1|关注: 0

[已解决] MATLAB带约束范围的目标函数画图

[复制链接]

新手

9 麦片

财富积分


050


2

主题

2

帖子

0

最佳答案
clc
clear
V=39.800;
a=100.668;
b=30.912;
c=2.331;
d=3.139;

x=-a:a;
y=
[x y]=meshgrid(x,y);  %meshgrid用于生成网格采样点的函数
z =   @(x,y) V*(((1-x.*x/a^2).^(c-1))+eps).*((1-y.^2./(b^2*(1-x.*x/a^2))).^(d-1)+eps);

figure(1)
colormap('jet');
mesh(x,y,z(x,y)); %绘制三维网格
colorbar('YTickLabel',{'0','5','10',...
    '15','20','25','30','35','40'})  %添加色标
shading interp;  %平滑处理
xlabel('x/mm','FontSize',12);
ylabel('y/mm','FontSize',12);
zlabel('涂层厚度d/um','FontSize',12);

要求

要求
回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

247 麦片

财富积分


50500


1

主题

119

帖子

26

最佳答案
  • 关注者: 1
发表于 2020-2-18 14:22:05 | 显示全部楼层 |此回复为最佳答案
X=-a:0.1:a;
Y=-b:0.1:b;
[x, y]=meshgrid(X,Y);  %meshgrid用于生成网格采样点的函数
y(y<(-b*sqrt(1-x.*x/(a*a))))=NaN;
y(y>(b*sqrt(1-x.*x/(a*a))))=NaN;
z =V*(((1-x.*x/a^2).^(c-1))+eps).*((1-y.^2./(b^2*(1-x.*x/a^2))).^(d-1)+eps);
mesh(x,y,z); %绘制三维网格
colormap('jet');
colorbar('YTickLabel',{'0','5','10',...
    '15','20','25','30','35','40'})  %添加色标
shading interp;  %平滑处理
xlabel('x/mm','FontSize',12);
ylabel('y/mm','FontSize',12);
zlabel('涂层厚度d/um','FontSize',12);


图1.png
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表