• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

用蒙特卡罗方法解非线性规划MATLAB

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

共需要三个M文件,主程序为randlp.m

randlp.m:

function [sol,r1,r2]=randlp(a,b,n)          %随机模拟解非线性规划
debug=1;
a=0;                                          %试验点下界
b=10;                                         %试验点上界
n=1000;                                      %试验点个数               
r1=unifrnd(a,b,n,1);                    %nx1阶的[a,b]均匀分布随机数矩阵
r2=unifrnd(a,b,n,1);    
sol=[r1(1) r2(1)];
z0=inf;

for i=1:n
   x1=r1(i);
   x2=r2(i);
   lpc=lpconst([x1 x2]);
   if lpc==1
      z=mylp([x1 x2]);
      if z<z0
         z0=z;
         sol=[x1 x2];
      end
   end
end
z=z0

  mypl.m:

function z=mylp(x)          
z=2*x(1)^2+x(2)^2-x(1)*x(2)-8*x(1)-3*x(2);

  lpconst.m:

function lpc=lpconst(x)
if 3*x(1)+x(2)-10<=0.5 & 3*x(1)+x(2)-10>=-0.5
   lpc=1;
else
   lpc=0;
end 

 结果:x1=2.524,x2=2.8397,z=15.0735


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi 之 编辑框控件(TEdit)发布时间:2022-07-18
下一篇:
Delphi 常用控件之TlistView总结发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap