syms P M r
%Parameters
W=21; C=10; a=500; b=10; Ss=40; Sr=20; hrs=3; Ir=0.13; Is=0.1;
A=800; K=3;
P1 = hrs+W*Ir;
P2 = r*b*W*Ir/C/Is; % LM: -(a-bP)CIs+rbWIr = 0
LP=-b*(W-C)+b*Ss*sqrt(P1/72/Sr/P2)+b*hrs*(2-P2/A)*sqrt(Sr/8/P1/P2)-...
hrs*b/A*sqrt(P2*Sr/2/P1)+b*M*C*Is-r*(-2*b+b^2/4/P2^2)*sqrt(2*Sr*P1*P2);
Constraint = r*b*W*Ir/C/Is*2-a+b*W-b*M*W*Ir+b*sqrt(Sr*P1/2/P2);
f = subs(LP,'M',solve(Constraint,M));
rvalue = solve(f);
Pvalue = a/b-rvalue*W*Ir/C/Is
这题目居然有解析解。 你试下这个吧。
我是把LP的变量都统一了(用约束条件=0跟LM=0)
如果你硬要保持LP,LM,Constraint这样的格式的话(约束可能是不等式)。 那么请参考动态规划,我实在是懒得编程用个比较方便的 (这个问题是没办法做成线性规划的,因为有非线性元素的存在,不然的话,直接解线性矩阵就好了)。
(下回麻烦你把MATLAB的code也贴上来吧,码code好累的)
结果: P值是50 +/- 0.7 (这是非线性问题,并不保证存在唯一解),