24小时热门版块排行榜    

查看: 6899  |  回复: 4

feitian1234

木虫 (正式写手)

[求助] 画线性规划图形(可行域),需要在三维空间画出,把区域用颜色标出来 已有1人参与

画线性规划图形(可行域),需要在三维空间画出,把区域用颜色标出来:
x>=0,
y>=0,
z>=0,
0.0197x+0.0247y+0.0264z-0.2162<0.

做出的图应该是个三棱锥围成的区域。谢谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
feitian1234: 金币+50, ★★★★★最佳答案 2016-12-09 14:41:03
CODE:
[x,y] = meshgrid(0:0.1:15,0:0.1:15);
z = arrayfun(@(x,y)(0.2162-0.0197.*x-0.0247.*y)/0.2162,x,y);
z(z<0)=nan;
surf(x,y,z,ones(size(z)))
colormap([1 0 0])
shading flat
hold on
x0 = 0; y0 = 0;z0 = 0;
x1 = 10.9; y1 = 0; z1 = 0.0068;
x2 = 0; y2 = 0;z2 = 1;
x3 = 0; y3 = 8.7; z3 = 0.0061;
X = [x0 x1 x2 x3]; Y = [y0 y1 y2 y3]; Z = [z0 z1 z2 z3];
fill3(X,Y,Z,'red')

没有极限,只有超越!
2楼2016-12-08 15:31:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feitian1234

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 512095518 at 2016-12-08 15:31:36
= meshgrid(0:0.1:15,0:0.1:15);
z = arrayfun(@(x,y)(0.2162-0.0197.*x-0.0247.*y)/0.2162,x,y);
z(z<0)=nan;
surf(x,y,z,ones(size(z)))
colormap()
shading flat
hold on
x0 = 0; y0 = 0;z0 = 0;
...

非常感谢您的答案!先把金币送给您。运行时出现一点小问题,如下,请指教,会追加您20金币。谢谢!
??? Undefined command/function 'arrayfun'.

Error in ==> Untitled6 at 2
z = arrayfun(@(x,y)(0.2162-0.0197.*x-0.0247.*y)/0.2162,x,y);
3楼2016-12-09 14:39:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

引用回帖:
3楼: Originally posted by feitian1234 at 2016-12-09 14:39:45
非常感谢您的答案!先把金币送给您。运行时出现一点小问题,如下,请指教,会追加您20金币。谢谢!
??? Undefined command/function 'arrayfun'.

Error in ==> Untitled6 at 2
z = arrayfun(@(x,y)(0.2162 ...

你的这句报错意思是没有定义“arrayfun”这个函数命令,但是这个函数是matlab内置的函数,应该是不应该报错不存在才对。
排查方法:
1、确认你的MATLAB软件内有没有这个函数,用help arrayfun来查就行,这句直接打到命令框内,如果调出这个函数的说明,那就证明这个函数存在,反正提示不存在。
2、证明函数存在以后,你再运行代码前,先用clear命令把变量框中的变量都清除,再运行试试。

我的代码应该没有问题,附件给你图看
画线性规划图形(可行域),需要在三维空间画出,把区域用颜色标出来
代码运行结果

没有极限,只有超越!
4楼2016-12-09 16:38:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feitian1234

木虫 (正式写手)

引用回帖:
4楼: Originally posted by 512095518 at 2016-12-09 16:38:52
你的这句报错意思是没有定义“arrayfun”这个函数命令,但是这个函数是matlab内置的函数,应该是不应该报错不存在才对。
排查方法:
1、确认你的MATLAB软件内有没有这个函数,用help arrayfun来查就行,这句直接 ...

非常感谢!您的图形非常标准,正是我想要的。我的MATLAB里面确实没有这个函数。再赠您20金币。
5楼2016-12-09 17:04:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 feitian1234 的主题更新
信息提示
请填处理意见