matlab 拉格朗日,使用拉格朗日优化,但Matlab 运行不出结果来 - 数学 - 小木虫 - 学术 科研 互动社区...

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 (这是非线性问题,并不保证存在唯一解),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值