k=0
while k<0.5
c=[0,0,0,0,0,1];
A=[-0.05,-0.27,-0.19,-0.185,-0.185,0;
0,0.025 ,0,0 0,-1;
0,0,0.015,0,0,-1;
0,0,0,0.055.0,-1;
0,0,0,0,0.026,-1];
b=[-k,0,0,0,0];
aeq=[1,1.01,1.02,1.045,1.065,0];
beq=[1];
vlb=[0;0;0;0;0;0];
vub=[ ];
[x,val]=linprog(c,A,b,aeq,beq,vlb,vub);
q=val;
plot(k,q,'.');
axis([0 0.1 0 0.5]);
hold on
k=k+0.001;
end
xlabel('k'),ylabel('q')
刚开始学matlab,现在学到线性规划这里,我想问下各位,我上面的这个代码一运行他就说我plot向量长度必须相同,我到底错在哪儿了,应该怎么改呢,谢谢各位了
这个是楼主的代码:
k=0
while k<0.5
c=[0,0,0,0,0,1];
A=[
-0.05,-0.27,-0.19,-0.185,-0.185,0;
0,0.025 ,0,0 0,-1;
0,0,0.015,0,0,-1;
0,0,0,0.055,0,-1;
0,0,0,0,0.026,-1
];
b=[-k,0,0,0,0];
aeq=[1,1.01,1.02,1.045,1.065,0];
beq=[1];
vlb=[0;0;0;0;0;0];
vub=[ ];
[x,val]=linprog(c,A,b,aeq,beq,vlb,vub);
q=val;
plot(k,q,'.');
axis([0 0.1 0 0.5]);
hold on
k=k+0.001;
end
xlabel('k'),ylabel('q')
运行的结果是这样:
这里面plot(k,q,'.');中,k和q只是一个值
这里面补了一个X和Y用来存储k和p的值,运行结果如下,楼主看看是不是你想要的结果。
k=0
X = [];
Y = [];
while k<0.5
c=[0,0,0,0,0,1];
A=[
-0.05,-0.27,-0.19,-0.185,-0.185,0;
0,0.025 ,0,0 0,-1;
0,0,0.015,0,0,-1;
0,0,0,0.055,0,-1;
0,0,0,0,0.026,-1
];
b=[-k,0,0,0,0];
aeq=[1,1.01,1.02,1.045,1.065,0];
beq=[1];
vlb=[0;0;0;0;0;0];
vub=[ ];
[x,val]=linprog(c,A,b,aeq,beq,vlb,vub);
q=val;
plot(k,q,'.');
X = [X, k];
Y = [Y, q];
axis([0 0.1 0 0.5]);
hold on
k=k+0.001;
end
xlabel('k'),ylabel('q')
figure(2);
plot(X, Y, '.');
xlabel('k'),ylabel('q')
你这程序求出来的q为空,k有值,肯定画不出来啊