如何在 MATLAB R2014b 中使用 ezsurf 绘制带约束的曲面?
How to plot surface with constraints using ezsurf in MATLAB R2014b?
我想绘制函数的曲面f=((x1+1.5)^2+5*(x2-1.7)^2)*((x1-1.4)^2+0.6*(x2-0.5)^2);
有限制:
-x1<0
-x2<0
3*x1-x1*x2+4*x2-7<0
2*x1+x2-3<0
3*x1-4*x2^2-4*x2<0
在 MATLAB R2014b 中。
我只能使用 ezsurf
绘制 f
但我不知道如何定义约束。如何用约束绘制 f
?
syms x1 x2;
f=((x1+1.5)^2+5*(x2-1.7)^2)*((x1-1.4)^2+0.6*(x2-0.5)^2);
ezsurf(f);
hold on;
附录:
正如@Ander Biguri 的评论,我尝试将代码编写如下:
x=0:0.1:2;
y=0:0.1:2;
[X1,X2]=meshgrid(x,y);
constraint1 = -X1<=0;
constraint2 = -X2<=0;
constraint3 = 3*X1-X1*X2+4*X2-7<=0;
constraint4 = 2*X1+X2-3<=0;
constraint5 = 3*X1-4*X2^2-4*X2<=0;
X1(~constraint1) = NaN;
X2(~constraint1) = NaN;
X1(~constraint2) = NaN;
X2(~constraint2) = NaN;
X1(~constraint3) = NaN;
X2(~constraint3) = NaN;
X1(~constraint4) = NaN;
X2(~constraint4) = NaN;
X1(~constraint5) = NaN;
X2(~constraint5) = NaN;
f=((X1+1.5).^2+5*(X2-1.7).^2)*((X1-1.4).^2+0.6*(X2-0.5).^2);
surf(X1,X2,f);
但是图中什么也没有出现
我的错误是什么?
你的第二个版本(数值型)的问题很典型:使用元素运算而不是矩阵运算:
f=((X1+1.5).^2+5*(X2-1.7).^2).*((X1-1.4).^2+0.6*(X2-0.5).^2);
我想绘制函数的曲面f=((x1+1.5)^2+5*(x2-1.7)^2)*((x1-1.4)^2+0.6*(x2-0.5)^2);
有限制:
-x1<0
-x2<0
3*x1-x1*x2+4*x2-7<0
2*x1+x2-3<0
3*x1-4*x2^2-4*x2<0
在 MATLAB R2014b 中。
我只能使用 ezsurf
绘制 f
但我不知道如何定义约束。如何用约束绘制 f
?
syms x1 x2;
f=((x1+1.5)^2+5*(x2-1.7)^2)*((x1-1.4)^2+0.6*(x2-0.5)^2);
ezsurf(f);
hold on;
附录: 正如@Ander Biguri 的评论,我尝试将代码编写如下:
x=0:0.1:2;
y=0:0.1:2;
[X1,X2]=meshgrid(x,y);
constraint1 = -X1<=0;
constraint2 = -X2<=0;
constraint3 = 3*X1-X1*X2+4*X2-7<=0;
constraint4 = 2*X1+X2-3<=0;
constraint5 = 3*X1-4*X2^2-4*X2<=0;
X1(~constraint1) = NaN;
X2(~constraint1) = NaN;
X1(~constraint2) = NaN;
X2(~constraint2) = NaN;
X1(~constraint3) = NaN;
X2(~constraint3) = NaN;
X1(~constraint4) = NaN;
X2(~constraint4) = NaN;
X1(~constraint5) = NaN;
X2(~constraint5) = NaN;
f=((X1+1.5).^2+5*(X2-1.7).^2)*((X1-1.4).^2+0.6*(X2-0.5).^2);
surf(X1,X2,f);
但是图中什么也没有出现
我的错误是什么?
你的第二个版本(数值型)的问题很典型:使用元素运算而不是矩阵运算:
f=((X1+1.5).^2+5*(X2-1.7).^2).*((X1-1.4).^2+0.6*(X2-0.5).^2);